Einzelnen Beitrag anzeigen

scp

Registriert seit: 31. Okt 2003
1.120 Beiträge
 
Delphi 7 Personal
 
#2

Re: Sucheergebnisse zur Laufzeit in Popupmenu übertragen

  Alt 25. Nov 2003, 23:56
Am besten durch Verschachtelung der Funktion:

Delphi-Quellcode:
procedure DirTreeToMenu(pfad : String; Parent : TMenuItem);
var
  i : integer;
  NeuesItem : TMenuItem;

  iattr : integer;
  sr : TSearchRec;
begin
  NeuesItem := TMenuItem.Create(Parent); // Neuen Eintrag mit Pfadnamen erzeugen
  Parent.Add(neuesitem);// dem Popup-Menü hinzufügen
  NeuesItem.Tag:=0;
  NeuesItem.Caption := '"' + pfad + '"' + ' auswählen';
  // NeuesItem.Enabled := false;

  NeuesItem := TMenuItem.Create(Parent); // Neuen Seperator erzeugen
  Parent.Add(neuesitem);// dem Popup-Menü hinzufügen
  NeuesItem.Tag:=0;
  NeuesItem.Caption := '-';

   i:=0;
    iattr := fadirectory;
    if FindFirst(pfad + '\*.*', iattr, sr) = 0 then
       begin
       repeat
          if (sr.Attr and iAttr) = sr.Attr then
              begin
                  inc(i);
                  if i > 2 then
                      begin
                      NeuesItem := TMenuItem.Create(Parent); // Neuen Eintrag erzeugen
                      Parent.Add(neuesitem);// dem Popup-Menü hinzufügen
                      NeuesItem.Tag:=i;
                      NeuesItem.Caption := sr.Name;

                      DirTreeToMenu(pfad + '\' + sr.Name, NeuesItem); // Nach Unterordnern suchen
                  // onclick := PopupMenuItemsClick;
                      end;
             end;
      until FindNext(sr) <> 0;
      end;
  FindClose(sr);
  end;
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var
  PopupMenu:TPopupMenu;
begin
  PopupMenu:=TPopupMenu.Create(Self);
  DirTreeToMenu('D:\source', PopupMenu.Items); // Suchanfrage starten, ohne * und ohne \ am Ende
  Form1.PopupMenu := Popupmenu;
end;
  Mit Zitat antworten Zitat