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/)
-   -   TListBox zeigt seltsames Verhalten (https://www.delphipraxis.net/205485-tlistbox-zeigt-seltsames-verhalten.html)

magstripe 15. Sep 2020 14:32

TListBox zeigt seltsames Verhalten
 
Hallo,

in einem Programm an dem ich gerade arbeite setze ich eine Listbox ein. (FMX Delphi 10.4.1)
In dieser Listbox stehen Namen von Geräten zu denen man sich verbinden kann. Also ich klicke auf einen Eintrag, es wird abgefragt ob ich mich dahin verbinden möchte und bei "Ja" wird die Verbindung hergestellt.
Das funktioniert auch ohne Probleme. Aber... Wenn ich einmal in die Listbox geklickt habe und zu einem anderen Gerät gewechselt bin, wird das onChange Event jedesmal wenn ich den Mauszeige über die Listbox bewege, aufgerufen. Erst wenn ich auf eine leere Stelle oder ein anderes Control geklickt habe, hört das auf.

Ist das ein Bug in der TListbox oder mache ich was falsch?

VG Frank

Rollo62 15. Sep 2020 15:03

AW: TListBox zeigt seltsames Verhalten
 
Zitat:

Zitat von magstripe (Beitrag 1473620)
Hallo,

in einem Programm an dem ich gerade arbeite setze ich eine Listbox ein. (FMX Delphi 10.4.1)
In dieser Listbox stehen Namen von Geräten zu denen man sich verbinden kann. Also ich klicke auf einen Eintrag, es wird abgefragt ob ich mich dahin verbinden möchte und bei "Ja" wird die Verbindung hergestellt.
Das funktioniert auch ohne Probleme. Aber... Wenn ich einmal in die Listbox geklickt habe und zu einem anderen Gerät gewechselt bin, wird das onChange Event jedesmal wenn ich den Mauszeige über die Listbox bewege, aufgerufen. Erst wenn ich auf eine leere Stelle oder ein anderes Control geklickt habe, hört das auf.

Ist das ein Bug in der TListbox oder mache ich was falsch?

VG Frank

Versuch mal deine OnClick Routine zu entkoppeln,
damit TListBox vor dem Verbinden zurückkehren kann
Delphi-Quellcode:

procedure TForm1.ListBoxOnClick( Sender : TObject );
begin
    TThread.ForceQueue(
        nil,
        procedure
        begin
            DoConnectionStart;
        end );
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:30 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