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/)
-   -   Delphi TCheckBox -> Click abbrechen (https://www.delphipraxis.net/101557-tcheckbox-click-abbrechen.html)

HolgerCW 15. Okt 2007 13:51


TCheckBox -> Click abbrechen
 
Hallo zusammen,

wie kann ich bei einer Checkbox, ein entfernen des Hakens unterbinden (Rückgängig machen)

Gruss

Holger

Progman 15. Okt 2007 14:02

Re: TCheckBox -> Click abbrechen
 
CheckBox1.Checked:=True; im OnClick ;)

HolgerCW 15. Okt 2007 14:06

Re: TCheckBox -> Click abbrechen
 
Hi,

habe es vielleicht falsch geschrieben.

Wollte, wenn die Checkbox.checked = TRUE ist, dass dieses so bleibt und wenn die Checkbox.checked = FALSE ist, das dieses so bleibt.

Gruss

Holger

Progman 15. Okt 2007 14:07

Re: TCheckBox -> Click abbrechen
 
achso, na einfach Enabled:=False ?

Matze 15. Okt 2007 14:08

Re: TCheckBox -> Click abbrechen
 
Hi,

dafür ist die Eigenschaft Delphi-Referenz durchsuchenEnabled vorgesehen.


Edit: Da war wohl wieder einer schneller.

HolgerCW 15. Okt 2007 14:09

Re: TCheckBox -> Click abbrechen
 
Hi,

die möchte ich aber auch nicht, da es dadurch ausgegraut wird.

Wie mache ich es dann ?

Gruss

Holger

Matze 15. Okt 2007 14:15

Re: TCheckBox -> Click abbrechen
 
Hi,

das ist zwar nicht sinnvoll, da es gegen das Standardverhalten von Windows spricht und somit Verwirrungen vorauszusehen sind, doch ein kleines Workaround: Setze deine CheckBox auf ein Panel und setze dort die Eigenschaft Enabled. Das würde mit deinem Edit übrigens auch funktionieren.

s-off 15. Okt 2007 14:17

Re: TCheckBox -> Click abbrechen
 
Oder so:
Delphi-Quellcode:
Unit Unit1;

Interface

Uses
   Windows,
   Messages,
   SysUtils,
   Variants,
   Classes,
   Graphics,
   Controls,
   Forms,
   Dialogs,
   StdCtrls;

Type
   TForm1 = Class(TForm)
      CheckBox1: TCheckBox;
      Procedure CheckBox1Click(Sender: TObject);
      Procedure CheckBox1MouseEnter(Sender: TObject);
   private
      bChecked: Boolean;
   End;

Var
   Form1: TForm1;

Implementation

{$R *.dfm}

Procedure TForm1.CheckBox1Click(Sender: TObject);
Begin
   Checkbox1.Checked := bChecked;
End;

Procedure TForm1.CheckBox1MouseEnter(Sender: TObject);
Begin
   bChecked := Checkbox1.Checked;
End;

End.
Edit: Funktioniert dann allerdings nur, wenn der Status mit der Maus verändert wird. Schön also auch nicht.

DP-Maintenance 15. Okt 2007 14:17

DP-Maintenance
 
Dieses Thema wurde von "Matze" von "Object-Pascal / Delphi-Language" nach "VCL / WinForms / Controls" verschoben.
TCheckBox -> VCL

HolgerCW 15. Okt 2007 14:28

Re: TCheckBox -> Click abbrechen
 
Hi,

danke schon mal.

1. Was nutzt Ihr denn dann für ein Objekt, um anzuzeigen, das etwas True oder False ist ?

2. Und was würdet Ihr dann benutzen, das in einer bestimmten Situation dieser Wert auch geändert werden soll ?

Gruss

Holger

Matze 15. Okt 2007 14:30

Re: TCheckBox -> Click abbrechen
 
Hi

Zitat:

Zitat von HolgerCW
1. Was nutzt Ihr denn dann für ein Objekt, um anzuzeigen, das etwas True oder False ist ?

Meistens TCheckBox oder TRadioButton

Zitat:

Zitat von HolgerCW
2. Und was würdet Ihr dann benutzen, das in einer bestimmten Situation dieser Wert auch geändert werden soll ?

Delphi-Referenz durchsuchenEnabled, da weiß jeder, was es bedeutet und man sieht auch sofort, dass man ein Control nicht bedienen kann. Nur diese Lösung finde ich persönlich sauber.

HolgerCW 15. Okt 2007 14:33

Re: TCheckBox -> Click abbrechen
 
OK,

Du hast recht,

nur wollte ich noch mit roter Schrift eine Signalwirkung schaffen, um den Fokus des Betrachters auf dieses Feld zu ziehen, auch wenn es enabled ist.
Finde da keine Lösung

Gruss

Holger

Matze 15. Okt 2007 14:35

Re: TCheckBox -> Click abbrechen
 
Wozu muss es im deaktivierten Zustand denn rot hervorstechen sollen, wenn man doch eh nichts daran ändern kann? :gruebel:

shmia 15. Okt 2007 14:43

Re: TCheckBox -> Click abbrechen
 
Zitat:

Zitat von HolgerCW
1. Was nutzt Ihr denn dann für ein Objekt, um anzuzeigen, das etwas True oder False ist ?

Wenn es mehrere Boolean Zustände sind, dann TCheckListBox.
Ansonsten kann man auch ein Label benützen, den Font auf WingDings setzen und dann die Zeichen #112 bzw. #120 zuweisen.

s-off 15. Okt 2007 15:07

Re: TCheckBox -> Click abbrechen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von HolgerCW
1. Was nutzt Ihr denn dann für ein Objekt, um anzuzeigen, das etwas True oder False ist ?
2. Und was würdet Ihr dann benutzen, das in einer bestimmten Situation dieser Wert auch geändert werden soll ?

Prinzipiell würde es genügen, die Toggle-Methode zu überschreiben.
Habe Dir das Ganze mal in eine kleine Komponente gepackt; so kannst Du die Eigenschaft 'Changeable' zur Designtime bequem über den Objektinspektor anpassen, und zur Laufzeit über Changeable := True bzw. False steuern.


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