Delphi-PRAXiS
Seite 1 von 2  1 2      

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 OnClick bei Listbox (https://www.delphipraxis.net/39523-onclick-bei-listbox.html)

Hansa 3. Feb 2005 20:44


OnClick bei Listbox
 
Hi,

was passiert mit dem OnClick bei einer Listbox ? Ich habe eine Listbox und will Werte durch anklicken in ein Label übertragen. In der Listbox passiert beim anklicken aber nichts. Nicht mal eine showmessage wird angezeigt. Was ist das ? :shock:

Markus 3. Feb 2005 20:49

Re: OnClick bei Listbox
 
Also wenn ich bei mir ein Item anklicke, wird das Event schon ausgelöst. Es passiert nur nichts, wenn ich ins "leere" klicke...

Hansa 3. Feb 2005 21:00

Re: OnClick bei Listbox
 
Klasse Hinweis. :thumb: Obwohl ? Das "Leere" wäre auch noch zu überlegen. :mrgreen: Wenn also einer nur die richtige Zeile erwischt. Wenn das das angesprochene Leere sein sollte. :zwinker:

Markus 3. Feb 2005 21:11

Re: OnClick bei Listbox
 
Hallo,

also im Moment verstehe ich nicht ganz was du willst. Ich dachte, dass bei dir das onClick-Event nicht richtig ausgelöst wird, deshalb auch meine Antwort.

Wenn ich den angeklickten Wert in einer Listbox in ein Label übertragen will, dann mache ich das so:

Delphi-Quellcode:
procedure TForm1.ListBox1Click(Sender: TObject);
var i: integer;
begin
  for i := 0 to ListBox1.Count - 1 do
    if ListBox1.Selected[i] then label1.Caption := Listbox1.Items[i];
end;

Muetze1 3. Feb 2005 21:30

Re: OnClick bei Listbox
 
Moin!

Der o.g. Code ist MultiSelect tauglich und zeigt dabei nur das letzte selektierte Element in dem Label an. Wenn du kein MultiSelect verwendest, dann reicht es auch ItemIndex zu nutzen....

Delphi-Quellcode:
Procedure TForm1.ListBox1Click(Sender: TObject);
Begin
  If ( ListBox1.ItemIndex > -1 ) Then
    Label1.Caption := ListBox1.Items[ ListBox1.ItemIndex ];
End;
MfG
Muetze1

Hansa 3. Feb 2005 22:53

Re: OnClick bei Listbox
 
Es geht darum, daß eben überhaupt nichts geschieht. Siehe hier :

Delphi-Quellcode:
procedure Tfrm.lbDblClick(Sender: TObject);
begin
showmessage ('ÄÖÄÖÄ');
  inherited;
  edNr.Text := copy (lb.Items [lb.itemindex],1,5);
  lblBez.Caption := '('+copy (lb.Items [lb.itemindex],8,25)+')';
  lb.Hide;
  btnZeige.Hide;
  edNr.SetFocus;
end;
Warum kommt die showmessage nicht ? Darum gehts. Das drumrum ist egal.

Minz 4. Feb 2005 00:20

Re: OnClick bei Listbox
 
Check doch mal das OnClick-Ereignis...

da kommt bestimmt was...

Hansa 4. Feb 2005 00:37

Re: OnClick bei Listbox
 
Was habe ich denn sonst gemacht ? Das dblClick in dem Beispiel hat nichts zu sagen. Wahrscheinlich weiß eh keiner, was das ist inkl. mir. :mrgreen:

Thorben86 4. Feb 2005 01:33

Re: OnClick bei Listbox
 
Also ich habe mal deinen code bei mir getestet in d7, und bei mir hat alles geklappt.
Hast du noch was bei einfachem klick? Vielleicht behindert das das ausführen, oder das sonst irgendeine andere aktion bei irgend einer aktion auf er listbox etwas ausführt, wodurch dein code übergangen wird (z.b. es nie zu einem doppelklick sondern immer nur zu einem einfachen klick kommt.) Ich weis nicht, ob du denen code schon mal in den Teil geschrieben hast, der bei einfachem klick ausgelöst wird also unter:
Code:
procedure TForm1.lbClick(Sender: TObject);
Aber dann könnteste testen, ob das nur bei doppelklick nicht klappt, ob die klick-aktion insgesammt übergangen wird.

Hansa 4. Feb 2005 02:15

Re: OnClick bei Listbox
 
Zitat:

Zitat von Thorben86
Aber dann könnteste testen, ob das nur bei doppelklick nicht klappt, ob die
klick-aktion insgesammt übergangen wird.

Der Doppelklick kam dadurch ins Spiel, weil der einfache nicht geklappt hat. Das ist alles. Effekt war aber derselbe, also keine Reaktion. Das ganze kommt aber an einer Stelle, die wirklich jetzt sehr komplex ist und sehr tief im Programm drin steckt und somit sehr schwer zu lokalisieren.

Wie es aussieht läuft das auf einen bloßen Tipfehler hinaus. Deshalb habe ich kurzerhand alles gelöscht, was im Zusammenhang steht. Leider betrifft es 3 Listboxen und und. Die erste ist wieder fertig und geht auch. Ist halt viel Handarbeit, aber es nützt ja sonst nichts.

Jetzt ist allerdings noch ein Nebeneffekt aufgetaucht und ich traue mich nicht, wieder da rumzufummeln. Never change a running System. :mrgreen: Titel paßt auch immer noch. :P

Ist die Listbox geöffnet und hat den Focus (oder hat die keinen ?), dann geht es doch, einen Anfangsbuchstaben einzugeben, um einen Eintrag zu selektieren. Wenn ich also einen Eintrag mit 8 anklicke, dann müßte man doch mit 88 einen anderen auswählen können, oder ?


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:46 Uhr.
Seite 1 von 2  1 2      

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