Stian Jacobsen Skrevet 21. mai 2007 Del Skrevet 21. mai 2007 Har et lite problem.. Jeg ønsker å opprette meny punkter i en submeny på "on create", for å være mer spesifikk, så ønsker jeg å hente en liste med alle filer i angitt mappe. Hvordan jeg henter filer har jeg forstått.. men hvordan får jeg dem inn i submenyen? Lenke til kommentar
Format71 Skrevet 21. mai 2007 Del Skrevet 21. mai 2007 Antar her at du har en metode GetFilenames( ) som kan fylle opp en stringlist med filnavn, og at menypunktet du ønsker å opprette undermenypunkter til heter miFiles procedure TForm1.FormCreate(Sender: TObject); var i: integer; tmpItem: TMenuItem; files: TStringList; begin files := TStringList.Create(); try GetFilenames(files); for i := 0 to files.count-1 do begin tmpItem := TmenuItem.Create(miFiles); tmpItem.Caption := files[i]; miFiles.Add(tmpItem); end; finally files.free; end; end; -Vegar Lenke til kommentar
Stian Jacobsen Skrevet 21. mai 2007 Forfatter Del Skrevet 21. mai 2007 (endret) Jeg henter filer med denne koden procedure ListFileDir(Path: string; FileList: TStrings); var SR: TSearchRec; begin if FindFirst(Path + '*.tmp', faAnyFile, SR) = 0 then begin repeat if (SR.Attr <> faDirectory) then begin FileList.Add(SR.Name); end; until FindNext(SR) <> 0; FindClose(SR); end; end; procedure TForm1.Button1Click(Sender: TObject); begin ListFileDir('C:\progdata\prosjekt1\templates', ListBox1.Items); end; Men som du ser, så legger jeg filene inn i en liste.. ikke i en undermeny (Hovedmenyen, altså den som har en submeny heter "Maler1") Endret 21. mai 2007 av MrNeeon Lenke til kommentar
Format71 Skrevet 21. mai 2007 Del Skrevet 21. mai 2007 Men som du ser, så legger jeg filene inn i en liste.. ikke i en undermeny (Hovedmenyen, altså den som har en submeny heter "Maler1") 8661501[/snapback] Så bytter du ut miFiles.Add(tmpItem); med Maler1.Add(tmpItem); og iterer over listbox'en sine items i stede for stringlista sine items så skal du være i mål. -Vegar Lenke til kommentar
Stian Jacobsen Skrevet 21. mai 2007 Forfatter Del Skrevet 21. mai 2007 (endret) Jeg får problemer med denne koden... Error på linjen som inneholder files: ListFileDir('C:\progdata\prosjekt1\templates', LTStringList); procedure ListFileDir(Path: string; FileList: TStrings); var SR: TSearchRec; begin if FindFirst(Path + '*.tmp', faAnyFile, SR) = 0 then begin repeat if (SR.Attr <> faDirectory) then begin FileList.Add(SR.Name); end; until FindNext(SR) <> 0; FindClose(SR); end; end; procedure TForm1.FormCreate(Sender: TObject); var i: integer; tmpItem: TMenuItem; files: ListFileDir('C:\progdata\prosjekt1\templates', LTStringList); begin files := TStringList.Create(); try GetFilenames(files); for i := 0 to files.count-1 do begin tmpItem := TmenuItem.Create(Maler1); tmpItem.Caption := files[i]; Maler1.Add(tmpItem); end; finally files.free; end; end; Endret 21. mai 2007 av MrNeeon Lenke til kommentar
Format71 Skrevet 21. mai 2007 Del Skrevet 21. mai 2007 (endret) Tror du har klussa litt i deklarasjonen din... procedure TForm1.FormCreate(Sender: TObject); var i: integer; tmpItem: TMenuItem; files: TStringList; begin files := TStringList.Create(); try ListFileDir('c:\whatever\', files); for i := 0 to files.count-1 do begin tmpItem := TmenuItem.Create(Maler1); tmpItem.Caption := files[i]; Maler1.Add(tmpItem); end; finally files.free; end; end; Endret 21. mai 2007 av Format71 Lenke til kommentar
Stian Jacobsen Skrevet 21. mai 2007 Forfatter Del Skrevet 21. mai 2007 (endret) Ok.. alt fungerer nå... men har 2 spørsmål 1 - Hvordan fjerner jeg filetternavnet på en fil når jeg printer den til menyen 2 - Hvordan lager jeg en onclick event?? f.eks memo1.lines.loadfromfile(filnavn) Endret 21. mai 2007 av MrNeeon Lenke til kommentar
sinnaelgen Skrevet 21. mai 2007 Del Skrevet 21. mai 2007 1: prøv disse ExtractFileDir ExtractFileDrive ExtractFileExt ExtractFileName ExtractFilePath ExtractRelativePath extrakt betyr å plukke ut. f.eks ExtractFileName plukker ut filnavnet d.v.s funksjonen returnerer med filnavnet i en strengtype . Unit SysUtils Syntax [Delphi] function ExtractFileName(const FileName: string): string; bruk hjelpefunksjonen innebygget i delphi så finner du ut mer 2: for å legge til en click events ( onclick) kan men gjøre følgende : du går til object inspector ( der men kan bestemme farge, tekst osv. på den komponenten men jobber med f eks en memo) - valg events flikken - dobbelkikk i feltet ved siden av onclik. da er det bare å skrive inn den koden som du ønsker skal bli utført når denne hendelsen utføres. får å teste : kan du bruke kommandoen "beep" da høres et lydsignal 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å