Gå til innhold

Anbefalte innlegg

Videoannonse
Annonse

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

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 av MrNeeon
Lenke til kommentar
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

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 av MrNeeon
Lenke til kommentar

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 av Format71
Lenke til kommentar

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

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...