![]() |
Allgemeine Frage zur Verwendung von TListbox
Hi,
Ich Programmiere schon seit über 7 Jahren und benutze sehr Häufig die Klasse Tlistbox. Seit dem ersten mal mus ich jedesmal folgenden Code einfügen wenn ich Tlistbox benutzen will.
Delphi-Quellcode:
Ich weis schon was der Code macht, so ist das nicht, nur finde ich es irgendwie blöd das man das so machen mus.
Procedure TForm1.ListBox1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer); Begin ListBox1.ItemIndex := ListBox1.ItemAtPos(point(x, y), true); End; Erst vor Kurzer Zeit habe ich eine TListbox für die DelphiX Komponenten gebaut. Hier habe ich natürlich den Code direct in meine Klasse eingebaut. ( Was übrigens auch nicht besonders schwer war ) Die Frage die sich mir stellt, gibt es auch eine andere Möglichkeit den oben geschriebenen Code um zu setzen ? Das man ihn Braucht steht auser Frage. Corpsman |
Re: Allgemeine Frage zur Verwendung von TListbox
Hi,
ich versteh zwar nicht ganz, was du willst, aber der ItemIndex setzt sich von alleine, wenn man auf die ListBox klickt, da brauchst du nicht "nachhelfen". *Ein verwirrtes Spinnchen* [edit] Oh Gott, schon 3000 Beiträge, solangsam werde ich auch eine "Forennervensäge" :mrgreen: *ganz scheinheilig zu Luckie mit seinen 18000 Beiträgen rüber schaut :angel2: * [/edit] |
Re: Allgemeine Frage zur Verwendung von TListbox
Ich Programmiere mit Delphi 5 Pro
Und bei mir setzt sich das definitiv nicht von selbst. Das Stimmt nur wenn der Scrollbalken nicht sichtbar ist. |
Re: Allgemeine Frage zur Verwendung von TListbox
Es tut mir leid dir das schreiben zu müssen, aber dein D5Pro scheint defekt zu sein. Der ItemIndex passt sich bei einem Klick auf die ListBox automatisch an - wie Manuel bereits geschrieben hat. Vielleicht möchtest du ein Demo-Projekt veröffentlichen, mit dem man dein Problem nachvollziehen kann?
Grüße vom marabu |
Re: Allgemeine Frage zur Verwendung von TListbox
Wenn schon, dann ist seine DCU kaputt. Aber die Wahrscheinlichkeit ist mehr als gering, da bei einem Datendefekt ein Compilerfehler ungleich wahrscheinlicher wäre.
|
Re: Allgemeine Frage zur Verwendung von TListbox
Lol,
Ihr Habt Recht. Ich habe es grad nochmal getestet. Jetzt tut es. Ich könnte schwören das es vorher nicht getan hat. Da Frage ich mich dann immer mehr warum es die Function gibt wenn ich sie nicht brauche. |
Re: Allgemeine Frage zur Verwendung von TListbox
Zitat:
hier mal ein mögliches Beispiel. Ich habe ein PopUp-Menü (das nicht mit der Listbox verknüpft ist!) mit einem Eintrag um etwas aus der ListBox zu löschen. Ich möchte aber sicherstellen das beim klick mit der rechten Maustaste auch ein Item ausgewählt wird. Genau das kann ich mit ItemAtPos sehr schön machen.
Delphi-Quellcode:
procedure TDemoForm.Delete1Click(Sender: TObject);
begin with ListBox1 do begin if (ItemIndex > -1) then begin Items.Delete(ItemIndex); end; end; end; procedure TDemoForm.ListBox1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var NewItemIndex: Integer; MousePoint: TPoint; begin if (Button = mbRight) then begin with (Sender as TListBox) do begin MousePoint.X := X; MousePoint.Y := Y; NewItemIndex := ItemAtPos(MousePoint, TRUE); if (NewItemIndex > -1) then begin ItemIndex := NewItemIndex; MousePoint := ClientToScreen(MousePoint); PopupMenu1.Popup(MousePoint.X, MousePoint.Y); end; end; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:32 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