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 2 von 3     12 3      
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.475 Beiträge
 
Delphi 12 Athens
 
#11

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

  Alt 2. Jul 2023, 12:38
Besonders bei älteren Delphi-Versionen.
Damit meinst du älter als Delphi 5?
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

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

  Alt 2. Jul 2023, 12:40
if ... = True then gehört sowieso in garkeine Delphiversion rein.
$2B or not $2B
  Mit Zitat antworten Zitat
klaus schaaff

Registriert seit: 25. Jul 2009
24 Beiträge
 
#13

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

  Alt 2. Jul 2023, 22:14
Hallo,

@Uwe Rabe:
Zitat:
Damit meinst du älter als Delphi 5?
Alles was <= Delphi 7 ist.

@himitsu
Zitat:
if ... = True then gehört sowieso in garkeine Delphiversion rein.
Ja, ich habe hier schon öfter Diskurse dazu hier gelesen. Die Beispiele dazu habe ich nachkompiliert und konnte bei <= Delphi 7 keine Fehler nach produzieren. Einzig die unterschiedlichen Boolean-Größen, da muss man aufpassen. Aber was du schreibst, sollte in neueren Delphi-Versionen der Sicherheit wegen beachtet werden, sicher.

Liebe Grüße
Klaus Schaaff
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

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

  Alt 2. Jul 2023, 22:22
Minimierte Beispiele, sind eben nicht immer naturgeträu.
z.B. BOOL aus WinAPIs ist 32 Bit / 4 Byte groß und wird dann auf das 1 Byte (Boolean) umgebrochen, was aber eben im Delphi auch nicht ganz genau dem ByteBool entspricht.
Unter Windows ist die Konstante "True" z.B. -1, aber im Pascal bzw. Delphi ist es +1.

Boolean ist nunmal eben nicht 1 Bit, was wirklich ausschließlich 0 und 1 kennen würde.

Außerdem kann ein Boolean eben aus anderen Werten gekastet generiert sein
in C-Sprachen und z.B. Javascript geht auch ein
if (i) , wobei I = Integer ... alles <> 0 ist nunmal "True".

Delphi-Quellcode:
var B: Boolean;

//B := Boolean(0); // immer False (aber geht auch nicht anders)
B := Boolean(2); // eigentlich "True", aber eben nicht genau das "eine" True

if B = True then
  ShowMessage('True')
else if B = False then
  ShowMessage('False')
else
  ShowMessage('auch True');

if B then
  ShowMessage('True')
else if not B then
  ShowMessage('False')
else
  ShowMessage('nie');
$2B or not $2B

Geändert von himitsu ( 2. Jul 2023 um 22:53 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.475 Beiträge
 
Delphi 12 Athens
 
#15

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

  Alt 2. Jul 2023, 22:24
Alles was <= Delphi 7 ist.
Ich meinte nur, weil es das ClicksDisabled auch schon in Delphi 5 gab. Ältere Versionen habe ich aktuell nicht mehr greifbar. Daher kann ich nicht sagen, in welcher Version das eingeführt wurde.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

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

  Alt 2. Jul 2023, 23:04
Nja, bissl blöd lief wohl, dass es normal "unsichtbar" ist und es somit auch kaum jemand sah.

Gerade bei der CheckBox spräche ja nichts dagegen, dass endlich mal published zu machen.

https://quality.embarcadero.com/brow...ClicksDisabled
Uwe
$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
 
#17

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

  Alt 3. Jul 2023, 07:22
Ich fände es auch gut, wenn es eine passende globale Einstellung gäbe. Allerdings könnte die natürlich auch zu Irritationen führen.

Ich meinte nur, weil es das ClicksDisabled auch schon in Delphi 5 gab. Ältere Versionen habe ich aktuell nicht mehr greifbar. Daher kann ich nicht sagen, in welcher Version das eingeführt wurde.
Das gibt es seit Delphi 4.

Ja, ich habe hier schon öfter Diskurse dazu hier gelesen. Die Beispiele dazu habe ich nachkompiliert und konnte bei <= Delphi 7 keine Fehler nach produzieren.
Weil es nicht zum Thema gehört nur kurz:
Sagst du denn dann auch im echten Leben: Wenn "das Wetter ist schön" wahr ist, gehe ich zum Fußballspielen.
Wenn nicht, was macht es dann für einen Sinn, das im Quelltext so verklausuliert zu schreiben, unabhängig von den möglichen Fehlern?

Beispiel getestet mit Delphi 1 (mit zusätzlich BoolToStr, das es dort noch nicht gibt) bis 7:
Delphi-Quellcode:
function Example(const AValue: string): Boolean;
begin
  Result := Boolean(CompareStr(AValue, 'Test'));
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  ShowMessage('Echter Wert: ' + BoolToStr(Example('TestNix'), True)
    + sLineBreak + 'Manuelle Auswertung: ' + BoolToStr(Example('TestNix') = True, True));
end;
Sebastian Jänicke
AppCentral

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

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

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

  Alt 3. Jul 2023, 10:06
Ich fände es auch gut, wenn es eine passende globale Einstellung gäbe. Allerdings könnte die natürlich auch zu Irritationen führen.
Es muß ja nicht gleich global sein.
Ein sichtbares, bzw. wirklich nutzbares Property an den CheckBoxen wäre schon nett.

Aber joar, vielleicht eine Einstellung in den IDE-Settings und Projekt-Settings, wo man das Default festlegen kann, für neue CheckBoxen.
$2B or not $2B

Geändert von himitsu ( 3. Jul 2023 um 16:23 Uhr)
  Mit Zitat antworten Zitat
klaus schaaff

Registriert seit: 25. Jul 2009
24 Beiträge
 
#19

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

  Alt 3. Jul 2023, 15:11
Hallo,

@Uwe Raabe
@jaenicke

ich habe StdCtrls.pas in allen Versionen von Delphi 5 bis Delphi 10 duchsuchen lassen nach 'ClicksDisabled' und 'FClicksDisabled'. Keine der Versionen von TCustomCheckBox enthält diese property. Eine Frage bleibt offen, die ich nicht exakt beantworten kann. Hatten Updates dieser Delphi Versionen vielleicht doch TCustomCheckBox property ClicksDisabled eingebunden?
Ich finde es schade, dass es kein offizielles Tool gibt, um diese Fragen korrekt zu bentworten.

Dagegen haben TButtonControl und TRadioButton ClicksDisabled.

Ein Kuriosum gibt es dennoch:

Delphi-Quellcode:
procedure TCustomCheckBox.SetState(Value: TCheckBoxState);
begin
  if FState <> Value then
  begin
    FState := Value;
    if HandleAllocated then
      SendMessage(Handle, BM_SETCHECK, Integer(FState), 0);
    if not ClicksDisabled then Click; // <- Hier
  end;
end;
Das ist die einzige Stelle.

In Delphi wurden schon immer Quelltext-Dateien *.pas mit leicht verändertem Code ausgeliefert, als die complierten *.dcu. Das scheint ein solcher Fall zu sein.

Alle Versuche mit Casts TButtonControl(CheckBox1).ClicksDisabled führten zu nichts, auch Debug dcu's dazu zuschalten brachten keinen Erfolg. Vielleicht hat jemand eine Idee, wie man doch zu CheckBox1.ClicksDisabled kommt.


Liebe Grüße
Klaus Schaaff
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

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

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

  Alt 3. Jul 2023, 15:32
Dagegen haben TButtonControl und TRadioButton ClicksDisabled.
Und TCustomCheckBox ist von TButtonControl abgeleitet...

Wie schon geschrieben, die TCheckBox funktioniert mit ClicksDisabled seit Delphi 4 so.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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:34 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