Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi ListBox Problem (https://www.delphipraxis.net/135027-listbox-problem.html)

d3zemb3r 3. Jun 2009 12:24


ListBox Problem
 
Hallo,
ich lade Favoriten aus einer Datei in eine Listbox.
Jetzt habe ich ein Popupmenu, wo aufrufen drinne ist. nun will ich, dass dieses Popupmenü bw das Onklick von aufrufen den aktuellen Eintrag der listbox in ein Edit Feld schreibt. Wie mache ich das mit der Funktion übergeben.

Kann mir jemand ein Bespiel zeigen?

DeddyH 3. Jun 2009 12:30

Re: ListBox Problem
 
Sry, ich verstehe nur Bahnhof. Kannst Du die Frage mal umformulieren?

d3zemb3r 3. Jun 2009 12:32

Re: ListBox Problem
 
Na klar.
Ich habe ein Listbox - aus einer Textdatei werden Favoriten in ihr Geladen.
In einem Popupmenu das der Listbox zugewiesen wurde gibt es "Aufrufen" - wenn das Aufrufen geklickt wird, soll der aktuelle Listboxeintrag in ein Edit geschrieben werden.

Wie mache ich das nun mit der Funktion, das der aktuelle Eintrag übergeben wird?

Blackheart 3. Jun 2009 12:34

Re: ListBox Problem
 
ItemIndex, Items.Strings[i]

d3zemb3r 3. Jun 2009 12:35

Re: ListBox Problem
 
Zitat:

Zitat von Blackheart
ItemIndex, Items.Strings[i]

Ja, nur wie wird das mit dem Onklick bei Aufrufen übergeben??

DeddyH 3. Jun 2009 12:47

Re: ListBox Problem
 
Ich bin nicht sicher, ob es einfacher geht, aber beim Rechtsklick der Listbox könnte man sich den Listeneintrag an der Mausposition merken.
Delphi-Quellcode:
procedure TForm1.ListBox1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var CurrIndex: integer;
begin
  if Button = mbRight then
    begin
      CurrIndex := Listbox1.ItemAtPos(Point(X,Y),true);
      if CurrIndex > -1 then
        //CurrItem ist ein privates String-Feld von Form1
        CurrItem := Listbox1.Items[CurrIndex]
      else
        CurrItem := '';
    end;
end;
[edit] Oder den entsprechenden Eintrag gleich markieren.
Delphi-Quellcode:
procedure TForm1.ListBox1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  if Button = mbRight then
    Listbox1.ItemIndex := Listbox1.ItemAtPos(Point(X,Y),true);    
end;
Anschließend dann auf ListBox.Items[ListBox.ItemIndex] zugreifen, sofern der ItemIndex > -1 ist.[/edit]

d3zemb3r 3. Jun 2009 12:50

Re: ListBox Problem
 
Zitat:

Zitat von DeddyH
Ich bin nicht sicher, ob es einfacher geht, aber beim Rechtsklick der Listbox könnte man sich den Listeneintrag an der Mausposition merken.
Delphi-Quellcode:
procedure TForm1.ListBox1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var CurrIndex: integer;
begin
  if Button = mbRight then
    begin
      CurrIndex := Listbox1.ItemAtPos(Point(X,Y),true);
      if CurrIndex > -1 then
        //CurrItem ist ein privates String-Feld von Form1
        CurrItem := Listbox1.Items[CurrIndex]
      else
        CurrItem := '';
    end;
end;

hmmm. also das ruft jetzt was auf??
Ich will folgendes.
Wenn ich im popup menu auf aufrufen klicke das der text aus dem makierten listox eintrag in ein edit geht

DeddyH 3. Jun 2009 12:53

Re: ListBox Problem
 
Nun rat mal, was in CurrItem steht ;). Oder schau Dir mein Edit oben einmal an.

Blackheart 3. Jun 2009 12:53

Re: ListBox Problem
 
Delphi-Quellcode:
procedure TForm1.Aufrufen_Click(Sender: TObject);
var
 i:Integer;
begin
  i:=ListBox1.ItemIndex;
  Edit1.Text:=ListBox1.Items.Strings[i];
end;


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

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