![]() |
AW: Hä? Warum ist das Ändern von Checked ein Click?
Also wenn ich im Code versuche, bei einer TCheckBox eine Property oder Methode mit "click" zu finden bekomme ich nur "OnClick" , kein "ClicksDisabled"...
|
AW: Hä? Warum ist das Ändern von Checked ein Click?
Zitat:
Zitat:
Delphi-Quellcode:
type
TMyCheckBox = class(TCheckBox) end; ... TMyCheckBox(CheckBox1).ClicksDisabled := True; |
AW: Hä? Warum ist das Ändern von Checked ein Click?
Zitat:
Delphi-Quellcode:
Eigenschaft in 'nem Nachfahren veröffentlichen?
...
TButtonControl = class(TWinControl) private FClicksDisabled: Boolean; ... protected ... property ClicksDisabled: Boolean read FClicksDisabled write FClicksDisabled; ... TCustomCheckBox = class(TButtonControl) ... TCheckBox = class(TCustomCheckBox) ...
Delphi-Quellcode:
type
TMyCheckBox = class(TCheckBox) published property ClicksDisabled: Boolean; end; |
AW: Hä? Warum ist das Ändern von Checked ein Click?
Click ist nur Protected, also aus "deinem" Code auch nicht zugänglich.
Bei TButton dagegen wurde es nach Puplic verschoben, somit kann dort direkt aufgerufen werden. |
AW: Hä? Warum ist das Ändern von Checked ein Click?
Delphi-Quellcode:
Ich glaube so ein Konstrukt hab ich in meinem Vierteljahrhundert Delphi erst einmal benutzt/benutzen müssen. Das ist mir einfach nicht mehr eingefallen...
type
TMyCheckBox = class(TCheckBox) end; ... TMyCheckBox(CheckBox1).ClicksDisabled := True; 3 x Danke! |
AW: Hä? Warum ist das Ändern von Checked ein Click?
Viele nennen sowas
Delphi-Quellcode:
,
type THackedCheckBox = class(TCheckBox);
aber Einige haben sich angewöhnt es netter zu benennen
Delphi-Quellcode:
.
type TCheckBoxAccess = class(TCheckBox);
(das END ist optional, wenn ansonsten nichts verändert wird) Es ginge auch ohne es Umzubennen
Delphi-Quellcode:
type TCheckBox = class(StdCtrls.TCheckBox); // bzw. (Vcl.StdCtrls.TCheckBox)
Oberhalb das Form kann man damit auch lokal Komponenten "umbauen", welche so dann auch direkt auf der Form laden. (zur Laufzeit, nicht im FormDesigner) PS, siehe ![]() |
AW: Hä? Warum ist das Ändern von Checked ein Click?
Ja, es geht auch ohne anders genannten Typ. Das mache ich allerdings ungern, denn wenn man den Code dann kopiert, wundert man sich, dass er anderswo nicht funktioniert. Oder man postet ihn hier im Forum, ohne dran zu denken... :lol:
|
AW: Hä? Warum ist das Ändern von Checked ein Click?
Zitat:
|
AW: Hä? Warum ist das Ändern von Checked ein Click?
Liste der Anhänge anzeigen (Anzahl: 2)
Sehr gut ist auch TComboBox. Das hat die Ereignisse OnSelect und OnClick. Beide sind komplett identisch. So gibt es kein Ereignis fürs Klicken in die ComboBox, dafür aber eins fürs Drücken der Pfeiltasten: OnClick.
Ebenfalls gut: TListView.Items.Add verhält sich komplett anders, je nach dem Wert von Checkboxes. Ist Checkboxes False, passiert schlicht nichts. Ist Checkboxes True, werden gleich drei Ereignisse ausgelöst. Oder du klickst links auf das StateImage eines ListViews. Du erhältst einmal MouseDown und zweimal MouseUp, weil du das erste MouseUp bereits vorm Loslassen kriegst. Ich habe euch mal meine gesammelten Worst-Ofs der Delphi-Logik angehängt. |
AW: Hä? Warum ist das Ändern von Checked ein Click?
@Redeemer
Das abschließende #13#10 beim TStrings.Text ist eigentlich ein sLineBreak, bzw. ganz genau das ![]() Merkst du, wenn nicht für Windows kompiliert wird und die Unixoiden bloß ein #10 haben. Und dafür gibt es auch schon eine Lösung: ![]() [add] ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:13 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