AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Hä? Warum ist das Ändern von Checked ein Click?
Thema durchsuchen
Ansicht
Themen-Optionen

Hä? Warum ist das Ändern von Checked ein Click?

Ein Thema von Alallart · begonnen am 29. Jun 2023 · letzter Beitrag vom 5. Jul 2023
Antwort Antwort
Seite 3 von 3     123   
freejay

Registriert seit: 26. Mai 2004
Ort: Nürnberg
272 Beiträge
 
Delphi 11 Alexandria
 
#21

AW: Hä? Warum ist das Ändern von Checked ein Click?

  Alt 3. Jul 2023, 15:40
Also wenn ich im Code versuche, bei einer TCheckBox eine Property oder Methode mit "click" zu finden bekomme ich nur "OnClick" , kein "ClicksDisabled"...
[Delphi 11.3.1 Enterprise; Win10/11; MySQL; VCL]
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.648 Beiträge
 
Delphi 11 Alexandria
 
#22

AW: Hä? Warum ist das Ändern von Checked ein Click?

  Alt 3. Jul 2023, 16:07
Also wenn ich im Code versuche, bei einer TCheckBox eine Property oder Methode mit "click" zu finden bekomme ich nur "OnClick" , kein "ClicksDisabled"...
Wie Use schon schrieb... die Property steht unter protected, ist also nur in der Klasse selbst und der Unit, in der sie deklariert ist, erreichbar.
Lösung 1 (quick-and-dirty): Du setzt das (allerdings protected) Property ClicksDisabled temporär auf True.
Delphi-Quellcode:
type
  TMyCheckBox = class(TCheckBox)
  end;

...

TMyCheckBox(CheckBox1).ClicksDisabled := True;
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.508 Beiträge
 
Delphi 7 Professional
 
#23

AW: Hä? Warum ist das Ändern von Checked ein Click?

  Alt 3. Jul 2023, 16:16
Also wenn ich im Code versuche, bei einer TCheckBox eine Property oder Methode mit "click" zu finden bekomme ich nur "OnClick" , kein "ClicksDisabled"...
Ist beim VorVorfahren von TCheckBox als Protected deklariert.
Delphi-Quellcode:
...
  TButtonControl = class(TWinControl)
  private
    FClicksDisabled: Boolean;
...
  protected
...
    property ClicksDisabled: Boolean read FClicksDisabled write FClicksDisabled;

...
  TCustomCheckBox = class(TButtonControl)
...
  TCheckBox = class(TCustomCheckBox)
...
Eigenschaft in 'nem Nachfahren veröffentlichen?
Delphi-Quellcode:
type
  TMyCheckBox = class(TCheckBox)
  published
    property ClicksDisabled: Boolean;
  end;
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Hä? Warum ist das Ändern von Checked ein Click?

  Alt 3. Jul 2023, 16:26
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.
$2B or not $2B
  Mit Zitat antworten Zitat
freejay

Registriert seit: 26. Mai 2004
Ort: Nürnberg
272 Beiträge
 
Delphi 11 Alexandria
 
#25

AW: Hä? Warum ist das Ändern von Checked ein Click?

  Alt 3. Jul 2023, 16:44
Delphi-Quellcode:
type
  TMyCheckBox = class(TCheckBox)
  end;

...

TMyCheckBox(CheckBox1).ClicksDisabled := True;
Ich glaube so ein Konstrukt hab ich in meinem Vierteljahrhundert Delphi erst einmal benutzt/benutzen müssen. Das ist mir einfach nicht mehr eingefallen...

3 x Danke!
[Delphi 11.3.1 Enterprise; Win10/11; MySQL; VCL]
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Hä? Warum ist das Ändern von Checked ein Click?

  Alt 3. Jul 2023, 17:24
Viele nennen sowas type THackedCheckBox = class(TCheckBox); ,
aber Einige haben sich angewöhnt es netter zu benennen type TCheckBoxAccess = class(TCheckBox); .
(das END ist optional, wenn ansonsten nichts verändert wird)

Es ginge auch ohne es Umzubennen
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 #16 ... da brav für voten, damit sowas hier bald nicht mehr nötig ist.
$2B or not $2B

Geändert von himitsu ( 3. Jul 2023 um 17:32 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.648 Beiträge
 
Delphi 11 Alexandria
 
#27

AW: Hä? Warum ist das Ändern von Checked ein Click?

  Alt 3. Jul 2023, 17:31
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...
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
freejay

Registriert seit: 26. Mai 2004
Ort: Nürnberg
272 Beiträge
 
Delphi 11 Alexandria
 
#28

AW: Hä? Warum ist das Ändern von Checked ein Click?

  Alt 4. Jul 2023, 11:28
...PS, siehe #16 ... da brav für voten, damit sowas hier bald nicht mehr nötig ist.
Done.
[Delphi 11.3.1 Enterprise; Win10/11; MySQL; VCL]
  Mit Zitat antworten Zitat
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.081 Beiträge
 
Delphi 2009 Professional
 
#29

AW: Hä? Warum ist das Ändern von Checked ein Click?

  Alt 5. Jul 2023, 10:16
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.
Angehängte Dateien
Dateityp: pdf Delphi programmatische Änderungen.pdf (37,8 KB, 16x aufgerufen)
Dateityp: pdf Delphi-Logik Worst-Of.pdf (74,1 KB, 15x aufgerufen)
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Hä? Warum ist das Ändern von Checked ein Click?

  Alt 5. Jul 2023, 10:41
@Redeemer
Das abschließende #13#10 beim TStrings.Text ist eigentlich ein sLineBreak, bzw. ganz genau das Delphi-Referenz durchsuchenTStrings.LineBreak.
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: Delphi-Referenz durchsuchenTStrings.TrailingLineBreak
[add] https://docwiki.embarcadero.com/Libr...ilingLineBreak
$2B or not $2B
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


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 05:32 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