Stian89 Skrevet 20. juni 2004 Del Skrevet 20. juni 2004 (endret) Dagen, jeg er HELT N00B i delphi, (begynnte for 2dager siden). Så for å øve satte jeg igang med å lage en enkel tekst editor. Problemet oppstår da jeg skal lage en hotkey til save\new\open o.l...Dette er sikkert helt parkert laaangt bak må å spørre om, men hvordan gjøres det. Jeg har sett noen guider på nettet, men tør ikke påstå at jeg fatter dem helt. Så hvis noen kunne forklare meg, hadde det vært flott... (Tok ikke delphi hjelpe filen heller) (kjører Delphi 7 Enterprise, hvis det har noe å si) Endret 22. juni 2004 av Stian89 Lenke til kommentar
Tr1llobite Skrevet 20. juni 2004 Del Skrevet 20. juni 2004 (endret) Hvis new/open/save er en action, så har den en property som heter shortcut. Dette gjelder også hvis det er en menu item. Hvis det er en TToolButton har du et problem. Da bør du heller gå over til actions. EDIT: Ingen skam å være N008 Endret 20. juni 2004 av kr1570ffz0r Lenke til kommentar
Stian89 Skrevet 20. juni 2004 Forfatter Del Skrevet 20. juni 2004 (endret) Takk skal du ha, fungerte med det der shortcut greiene. Ikke for å mase, men jeg lurer også på hvordan jeg legger til klokkeslett og dato? Slik som i notepad liksom, må jeg legge til noe komponent? eller er det bare kode? edit: Dette blir mye mas, meeen: Når jeg har skrevet noe i dokumentet og trykker på krysset, registreres det ikke noen endringer, og man blir ikke bedt om å lagre. Hvrodan få til dette? Endret 20. juni 2004 av Stian89 Lenke til kommentar
Stian89 Skrevet 20. juni 2004 Forfatter Del Skrevet 20. juni 2004 (endret) Beklager *bumben... Problemet er at når jeg lagrer et dokument får det ikke noe filetternavn link til bildet Hva er galt? Filter editoren er for savedialogen, ja.. Endret 20. juni 2004 av Stian89 Lenke til kommentar
Tr1llobite Skrevet 21. juni 2004 Del Skrevet 21. juni 2004 (endret) Hehe, jeg kan ikke si du maser så mye i forhold til hvordan jeg har gjort det i C++ forumet (Hei, søppel! ) Jeg vet hvordan du gjør dette, men jeg skal dobbeltsjekke så det blir riktig. Editer denne posten når det er gjort. EDIT: Slik gjøres det: var svdlg: TSaveDialog; FName: TFileName; //samme som string begin svdlg := TSaveDialog.Create(Self); if (svdlg.Execute) then begin FName := ChangeFileExt(svdlg.FileName, '<din extension>'); { Kode til å lagre filen her } end else { Kode hvis du trykker på Avbryt/Cancel } end; Du finner ut hvilken extension brukeren har valgt ved å sjekke svdlg.FilterIndex. EDIT2: Husk at du bruker din egen TSaveDialog istedenfor svdlg. Den som jeg laget i denne kodesnutten her inneholder ingen info om filter og andre properties. Endret 21. juni 2004 av kr1570ffz0r Lenke til kommentar
Stian89 Skrevet 21. juni 2004 Forfatter Del Skrevet 21. juni 2004 Nå virker jeg sikkert dum, men på de 2 dagene jeg har holdt på, har jeg ikke forstått nok, til å forstå heelt hvor man skal plasere den koden.......:| Lenke til kommentar
Stian89 Skrevet 21. juni 2004 Forfatter Del Skrevet 21. juni 2004 (endret) Hehe, jeg kan ikke si du maser så mye i forhold til hvordan jeg har gjort det i C++ forumet (Hei, søppel! ) Jeg vet hvordan du gjør dette, men jeg skal dobbeltsjekke så det blir riktig. Editer denne posten når det er gjort. EDIT: Slik gjøres det: var svdlg: TSaveDialog; FName: TFileName; //samme som string begin svdlg := TSaveDialog.Create(Self); if (svdlg.Execute) then begin FName := ChangeFileExt(svdlg.FileName, '<din extension>'); { Kode til å lagre filen her } end else { Kode hvis du trykker på Avbryt/Cancel } end; Du finner ut hvilken extension brukeren har valgt ved å sjekke svdlg.FilterIndex. EDIT2: Husk at du bruker din egen TSaveDialog istedenfor svdlg. Den som jeg laget i denne kodesnutten her inneholder ingen info om filter og andre properties. beklgaer bumben..... Hvis jeg gir deg kildekoden til texteditoren, kan du sette inn koden du laget da? plz....sånn at jeg kan se hvordan det skal bli gjordt...... source går det? edit: skal koden gå her? private { Private declarations } public { Public declarations } end; var Form1: TForm1; HER!!!!SKAL KODEN GÅ HER!?!?! edit: har prøvd å plassere den litt omkring, hver gang får jeg feil på alle procedure'ne (new\Open\Save buttonene)....hva er galt? Fatter ikke helt hvor koden skal gå... Endret 21. juni 2004 av Stian89 Lenke til kommentar
Format71 Skrevet 21. juni 2004 Del Skrevet 21. juni 2004 Bytt ut koden i dette eventet: procedure TForm1.Save1Click(Sender: TObject); begin if savedialog1.execute then memo1.Lines.SaveToFile(savedialog1.FileName); end; med noe slikt som: procedure TForm1.Save1Click(Sender: TObject); var fname: string; begin if savedialog1.execute then begin fname := savedialog1.filename; if ExtractFileExt(fname) = '' then ChangeFileExt(fname, '.txt'); memo1.lines.saveToFile(fname); end; end; Tror det skulle gjøre susen... Et annet alternativ er jo å sette savedialog1 sin DefaultExt-property til 'txt': Specifies a default file extension. property DefaultExt: string; Description DefaultExt specifies a file extension that is appended automatically to the selected file name, unless the selected file name already includes a registered extension. If the user selects a file name with an extension that is unregistered, DefaultExt is appended to the unregistered extension. Extensions longer than three characters are not supported. Do not include the period (.) that divides the file name and its extension. -Vegar Lenke til kommentar
Stian89 Skrevet 21. juni 2004 Forfatter Del Skrevet 21. juni 2004 Bytt ut koden i dette eventet: procedure TForm1.Save1Click(Sender: TObject); begin if savedialog1.execute then memo1.Lines.SaveToFile(savedialog1.FileName); end; med noe slikt som: procedure TForm1.Save1Click(Sender: TObject); var fname: string; begin if savedialog1.execute then begin fname := savedialog1.filename; if ExtractFileExt(fname) = '' then ChangeFileExt(fname, '.txt'); memo1.lines.saveToFile(fname); end; end; Tror det skulle gjøre susen... Et annet alternativ er jo å sette savedialog1 sin DefaultExt-property til 'txt': Specifies a default file extension. property DefaultExt: string; Description DefaultExt specifies a file extension that is appended automatically to the selected file name, unless the selected file name already includes a registered extension. If the user selects a file name with an extension that is unregistered, DefaultExt is appended to the unregistered extension. Extensions longer than three characters are not supported. Do not include the period (.) that divides the file name and its extension. -Vegar Det går ikke, fremdeles ingen fil extension, hva er galt??! Lenke til kommentar
Format71 Skrevet 22. juni 2004 Del Skrevet 22. juni 2004 Nei - det er jeg som har tulla litt... ChangeFileExt( ) er en funksjon som tar inn gammelt filnavn + ny extention inkludert '.' og returnerer det nye filnavnet. Riktig kode blir således: procedure TForm1.Save1Click(Sender: TObject); var fname: string; begin if savedialog1.execute then begin fname := savedialog1.filename; if ExtractFileExt(fname) = '' then fname := ChangeFileExt(fname, '.txt'); memo1.lines.saveToFile(fname); end; end; Og denne gangen har jeg tatt meg bryet og teste koden så nå skal den funke ;-) -Vegar Lenke til kommentar
Stian89 Skrevet 22. juni 2004 Forfatter Del Skrevet 22. juni 2004 (endret) Hvordan lage en hotkey (CTRL+A) slik at all tekst i teksteditioren blir merket? edti: hvordan få printdialogen til å printe ut memo1? Endret 22. juni 2004 av Stian89 Lenke til kommentar
ChrML Skrevet 28. juni 2004 Del Skrevet 28. juni 2004 Extensionen er ikke automatisk lagt til (Delphi skal jo tross alt ikke gjørra masse drit bakom ryggen på programmereren ), hvis du er veldig usikker på åssen stringene dine ser ut, bruk ShowMessages, tekstfiler, eller noe for å debugge det. Bare spør meg på MSN hvis du lurer på noe. Lenke til kommentar
ChrML Skrevet 28. juni 2004 Del Skrevet 28. juni 2004 (endret) Oh, btw, sjøl om mange på forumet ikke er helt enig med meg, er funksjoner og kode bedre enn å proppe formen full av komponenter (ikke minst raskere). Det å hive sammen drøssevis av komponenter, å kalle noen av funksjonene dems er virkelig ikke det Delphi er ment til (use it's hidden powers ). Endret 28. juni 2004 av chrml Lenke til kommentar
john_h Skrevet 28. juni 2004 Del Skrevet 28. juni 2004 Hvis du har Select all/Merk alt i en meny, f.eks. edit-meny, er det ikke verre enn å sette dennes shortcut-property til ctrl+a, og legge til: Memo1.SelectAll; i onclick-eventen.. Å printe har jeg svært liten erfaring med, men etter det jeg kan sei hjelpefilene, må du bruke en RichEdit i stedet for en Memo.. Deretter er det bare å kjøre [RichEdit1/Memo1].Print(<title>); hvor <title> er det det skal stå i lista over utskriftsjobber.. Et alternativ er å kjøre Print på form'en din, men da skriver du ut hele formen, med alt som er på den.. chrml: dette er vel ikke det første han burde kaste seg ut på...? Lenke til kommentar
ChrML Skrevet 28. juni 2004 Del Skrevet 28. juni 2004 LOL!!!! Jeg trudde du var en kamerat av meg (ettersom han alltid kaller seg Stian89), LOL!! Tok visst feil , fant ut at det var ikke han som er Stian89 på dette forumet. Sorry meg . Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå