Waarom kan een TEdit wel readonly zijn en TCheckbox niet?
Waarom kan een TEdit wel readonly zijn en TCheckbox niet?
Delphi is great. Lazarus is more powerfull
Omdat TCheckBox niet inherited is van iets dat je op ReadOnly kan zetten (wat TEdit wel is).
Maar waarom zou je een TCheckBox op ReadOnly willen zetten?
Lijkt mij uiterst verwarrend in een GUI. Zet hem dan op Enabled := false;
Dan is het ook duidelijk dat je hem niet kunt toggelen.
Daar kwam ik ook achter. Ik wil het best enabled zetten, maar dan wordt die grijs en dat wil ik nu net niet.
Delphi is great. Lazarus is more powerfull
Je kunt hem natuurlijk in de OnClick gelijk weer terugzetten:
Delphi Code:
procedure TForm1.ReadOnlyCheckBoxClick(Sender: TObject); begin ReadOnlyCheckBox.Checked := CheckBox1.Checked; end;
Maar persoonlijk vind ik dat nogal verwarrend want je hebt een checkbox maar die kun je niet aanklikken. Hoe moet de gebruiker weten dat deze readonly is?
Je kunt ook een nieuw component maken: (gevonden op internet)
(override de Toggle-event)
Delphi Code:
procedure TMyCheckBox.Toggle; begin if not(FReadOnly)then case State of cbUnchecked: if AllowGrayed then State:=cbGrayed else State:=cbChecked; cbChecked: State:=cbUnchecked; cbGrayed : State:=cbChecked; end; end;
Ik zat wel in die richting te kijken maar kreeg het niet zo gauw voor elkaar. Maar ik heb het anders opgelost door gebruik te maken van TEdit te gebruiken en property readonly te gebruiken.
Eigenlijk is het info wat wordt getoond, maar de focus wordt op de verkeerde component gezet. Vandaar TEdit, die wel focus heeft. Maar door een Tcheckbox te gebruiken had ik al standaard een boolean en tevens een component dat aangaf of de waarde wel in niet aanwezig is.
Maar we komen er wel. Is het niet linksom dan wel rechstom
Delphi is great. Lazarus is more powerfull
Een readonly edit kan je nog wel gebruiken om uit te selecteren. Bij een checkbox heeft dat niet zoveel zin.
1+1=b
There are currently 1 users browsing this thread. (0 members and 1 guests)
Bookmarks