AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

ListBox - "OnChange" gesucht

Ein Thema von NicoleWagner · begonnen am 16. Jun 2020 · letzter Beitrag vom 17. Jun 2020
 
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.372 Beiträge
 
Delphi 12 Athens
 
#6

AW: ListBox - "OnChange" gesucht

  Alt 16. Jun 2020, 17:21
Die ListBox selber bietet keine direkten Notification hierfür, drum hat die TListBox auch kein Event.
https://docs.microsoft.com/en-us/win...-notifications

Wenn/da die ListBox ausschließlich vom eigenen Programm (Delphi) geändert wird, könntest du dich in ListBox.Items reinhängen, was ein TStrings-Nachfahre ist (quasi eine TStringList).
Bei einer ComboBox ist diese Instanz schön gekapselt und lässt sich über eine überschreibbare GetItemsClass leicht austauschen,
aber bei der ListBox ist das leider echt bescheiden implementiert und es wird nicht leicht den Constructor und darin das TListBoxStrings.Create zu ersetzen, um dort die Methoden Insert und Delete zu überschreiben und das neue Event auszulösen.


Bliebe also noch auf Messages zu lauschen.
CB_ADDSTRING und WM_DELETEITEM, wobei Bearbeiten/Ändern über Delete+Insert behandelt wird, also nur Add und Delete zu beachten sind.

Da diese Messages aber über SendMessage laufen, hilft TApplicationEvents.OnMessage nicht, da dort nur PostMessage ankommt und auch nur, wenn es über die MainLoop der VCL eintrudelt. (ist grade eine andere Message-Behandlung aktiv, wie z.B. im MSDN-Library durchsuchenMessageBox, dann geht OnMessage garnicht)
Somit läuft es hier wohl eher auf einen MessageHook hinaus.


Oder eben sich das Event selbst zu implementieren, bei seiner (einen) eigenen ListBox-Befüll-Prozedur.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (16. Jun 2020 um 18:00 Uhr)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:03 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