Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi popup menu erzeugen (https://www.delphipraxis.net/84458-popup-menu-erzeugen.html)

Greenie 17. Jan 2007 09:18


popup menu erzeugen
 
Guten Morgen zusammen..

ich bin ja noch relativ neu hier..deswege verzeiht mir vielleicht meine doofe frage..ich hab zwar schon über die suche was versucht rauszufinden, hab aber nix gscheites gefunden.

also ich möchte auf einer listbox ein popup menu erzeugen, beim rechtsklick sollte die zeile automatisch selektiert werden. Als Menupunkt möchte ich Löschen hinzufügen. Die jeweiligen Komponenten werden dynamisch erzeugt. Ich weiß au net, wo ich was hinschreiben muss.. Ich komm in dem Bereich auch mit der Delphi hilfe net wirklich zurecht..also, ich wär euch sehr verbunden..

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);

{...}

 pumLoeschen := TPopUpMenu.Create(lbDateiListe);
       with pumLoeschen do
       begin
            parent := lbDateiListe;
       end;

       lbDateiListe := TListBox.Create(self);
        with lbDateiListe do
        begin
             parent := self;
             visible := false;
             Anchors := [akLeft,akTop,akRight,akBottom];
             top := 10;
             left := 10;
             width := Form1.Width - 33;
             height := Form1.Height - 130;
             Perform(LB_SetHorizontalExtent, 1000, Longint(0));
             PopUpMenu := pumLoeschen;
             OnMouseDown := PopUpMenuMouseDown;
        end;
{...}
end;
{...}
procedure TForm1.PopUpMenuMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
var
      mi : TMenuItem;

begin
         mi:=TMenuItem.Create(pumLoeschen);
         mi.caption:='Loeschen';
         mi.OnClick := DateiLoeschenClick;      //habe ich noch nicht geschrieben
end;
{...}
end.
Vielen Dank schon mal für eure hilfe..

yörsch 17. Jan 2007 09:36

Re: popup menu erzeugen
 
HAI Greenie, :hello:
also: egal ob dynamisch erzeugt oder nicht das muß gleich funtionieren!
-popup
1 POPUpmenu und Listbox anlegen
2 Listbox.PopupMenu := POPUpmenu

-selectieren
das mit dem selektieren mußt du seperat angehen.

es kann sein das selektieren und popup sich gegenseitig behindern,
dann muß die das im OnMouseDown ereignis machen.

Bau erst mal das ganze statisch nach und wenn alles zu deiner zufriedenheit funkt dann bau das in deine dynamischen routienen ein.

gruß
jörg

Greenie 17. Jan 2007 10:12

Re: popup menu erzeugen
 
das mit dem popup menu hab ich jetzt hinbekommen..danke für den tip mit der reihenfolge..

könnte mir jemand noch helfen wie ich das mit dem automatischen selektieren lösen könnte? ich lade mehrere Dateipfade in die listbox und mit dem rechtsklick und dem popup möchte ich einzelne einträge löschen können..dazu brauch ich doch Tlistbox.deletselected oder?? aber wie makier ich mit dem rechtsklick den jeweiligen eintrag??

vielen dank schon mal..

yörsch 17. Jan 2007 12:43

Re: popup menu erzeugen
 
Delphi-Quellcode:
// Selection mit Rechter Maustaste
procedure TTEST_Frame.ListBox1MouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
 exi  : Boolean;
 row  : integer;
 point : Tpoint;
begin
 if Button = mbRight then
   begin
     point.X := x;
     point.Y := y;
     row := ListBox1.ItemAtPos(point,exi);
     if exi and (row > -1) then ListBox1.Selected[row] := true;
   end;
end;
:feuerchen:
Gruß
Jörg

Greenie 17. Jan 2007 13:23

Re: popup menu erzeugen
 
@yörsch
vielen vielen dank für dein Beispiel..habs super einbauen können!!!!!!!!!!!!

yörsch 17. Jan 2007 14:15

Re: popup menu erzeugen
 
kein problem :-D


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:34 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz