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/)
-   -   Ereignisse beim programmatischen Ändern von Eigenschaften zur Laufzeit (https://www.delphipraxis.net/202326-ereignisse-beim-programmatischen-aendern-von-eigenschaften-zur-laufzeit.html)

Redeemer 20. Okt 2019 20:56

Ereignisse beim programmatischen Ändern von Eigenschaften zur Laufzeit
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich finde es immer wieder verwirrend, ob Eigenschaften bei einer programmatischen Änderung zur Laufzeit ein Ereignis auslösen. Das ist auch bei nahezu identischen Komponenten sehr unterschiedlich: Eine Zuweisung an Text löst zum Beispiel bei ComboBoxEx OnChange aus, bei ComboBox aber nicht. (ComboBoxen sind sowieso seltsam. Was ist der Unterschied zwischen OnClick und OnSelect?)
Habt ihr da irgendeinen Trick, wie ihr euch das merkt oder hat sich das echt noch niemand gewundert?

Luckie 20. Okt 2019 22:58

AW: Ereignisse beim programmatischen Ändern von Eigenschaften zur Laufzeit
 
Auswählen kann man auch mit den Pfeiltasten, anklicken nur mir der Maus.

jaenicke 21. Okt 2019 05:49

AW: Ereignisse beim programmatischen Ändern von Eigenschaften zur Laufzeit
 
Ja, das ist nicht überall konsequent, weil die Komponenten nach und nach hinzu kamen und es die Entwickler vermutlich selbst nicht wussten wie sich andere bestehende Komponenten diesbezüglich verhalten.
Ein Problem hatte ich damit bisher allerdings nicht.

Übrigens: SelectNextPage ist eine Methode und keine Property.

Zitat:

Zitat von Luckie (Beitrag 1449989)
Auswählen kann man auch mit den Pfeiltasten, anklicken nur mir der Maus.

Trotzdem wird auch bei einer Auswahl per Tastatur bei einigen Komponenten ein OnClick ausgelöst.

hoika 21. Okt 2019 06:12

AW: Ereignisse beim programmatischen Ändern von Eigenschaften zur Laufzeit
 
Hallo,
Trick = Breakpoint

Redeemer 21. Okt 2019 07:54

AW: Ereignisse beim programmatischen Ändern von Eigenschaften zur Laufzeit
 
Zitat:

Zitat von hoika (Beitrag 1449993)
Hallo,
Trick = Breakpoint

Stimmt schon. Aber da man das ständig nachschauen würde, habe ich die angehängte Tabelle für Standard- und Win32-Controls gemacht.

Zitat:

Zitat von jaenicke (Beitrag 1449990)
Übrigens: SelectNextPage ist eine Methode und keine Property.

Stimmt, hätte ich kursiv setzen müssen.

Zitat:

Zitat von jaenicke (Beitrag 1449990)
Zitat:

Zitat von Luckie (Beitrag 1449989)
Auswählen kann man auch mit den Pfeiltasten, anklicken nur mir der Maus.

Trotzdem wird auch bei einer Auswahl per Tastatur bei einigen Komponenten ein OnClick ausgelöst.

Das meinte ich, und bei ComboBoxen wird, wie auch im Dokument angegeben, auch mit Pfeiltasten, sowohl OnClick und OnSelect ausgelöst. Da OnClick nicht beim Klicken im ständig sichtbaren Teil (sondern nur in der Liste) ausgelöst wird, halte ich OnClick und OnSelect bei TCustomCombo für dasselbe Event.

skoschke 21. Okt 2019 10:03

AW: Ereignisse beim programmatischen Ändern von Eigenschaften zur Laufzeit
 
Na ja, bei anderen programmtechnischen Änderungen von Eigenschaften zur Laufzeit kann man meist voraussehen, was dann abläuft...

FormMain.Width:=100;
--> da kommt mit Sicherheit ein OnResize nach...

Ciao
Stefan

Rollo62 21. Okt 2019 14:25

AW: Ereignisse beim programmatischen Ändern von Eigenschaften zur Laufzeit
 
Ich habe mir da eine Reihe von Hilfsfunktionen (class helper) gebastelt, die so ähnlich wie ChangeXyz_Silent heissen, und temporär die Events unterdrücken.

Eine generelles "Silencer" Interface habe ich auch mal ausprobiert, aber das verpacken in einzelne class helper schien mir sinnvoller, da diese auch noch andere "convenience" Funktionen machen.


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