Autor Beitrag
Critter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 328
Erhaltene Danke: 3

Windows 7
Delphi 7 Pro.
BeitragVerfasst: Do 02.12.10 16:57 
Hallo,

Ich führe eine Liste aller (relevanten) Forms meiner Anwendung. Das erstellen ist ja erst einmal nicht schwer. Das Problem ist, das die Forms ihre eigene Caption ändern können und ich diese Änderung dann auch in meine Liste übernehmen möchte. Momentan habe ich dafür einer gemeinsamen Vorfahrklasse ein OnCaptionChange Event spendiert. Das funktioniert soweit auch, allerdings möchte ich mich nicht darauf verlassen, das in Zukunft auch jedes neue Form von dieser Basisklasse abstammt, daher würde ich gerne (zusätzlich) eine Möglichkeit finden auf die Namensänderungen jedes beliebigen von tCustomForm abgeleiteten Formulars im meiner Anwendung reagieren zu können. Nur leider habe ich keine Idee wie das am besten umzusetzen ist (außer ständig sämtliche Forms durch zu iterieren, was so unschön ist, das es nicht in Frage kommt).

Habt ihr Ideen wie man so etwas am geschicktesten implementieren kann?

critter

_________________
Diejenigen, die grundlegende Freiheiten aufgeben, um ein wenig mehr vorrübergehende Sicherheit zu erkaufen, verdienen weder Freiheit noch Sicherheit.
(Benjamin Franklin;"The Papers of Benjamin Franklin", Vol. 6, Apr. 1, 1755, through Sep. 30, 1756)
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Do 02.12.10 17:43 
Die sauberste Lösung wäre, wenn dort, wo eine Datenänderung passiert, diese auch an die relevanten Teile der Anwendung (also in der Regel die Datenklassen) weiter gegeben wird.

Ansonsten bleibt nur, dass du dich in die Botschaften einklinkst und nach WM_SETTEXT bzw. CM_TEXTCHANGED Ausschau hältst (denn die werden dann verschickt, wobei WM_SETTEXT in lParam auch die neue Caption enthält.