[Insert]
Gleich nach unten scrollen und bitte nicht auslachen
...
[/Insert]
Ich habe eine TChecklistbox in der ist via AddObjeck Items hinzufüge ..
Delphi-Quellcode:
Procedure AddCheckItem(S:String;Checklist:TCheckListBox);
var InternalCheckbox:TCheckbox;
idx:Integer;
begin
// internes TCheckbox Object erstellen
InternalCheckbox:=TCheckbox.Create(CheckList);
// Itemindex des neuen Items ermitteln
idx:=CheckList.Items.Count;
// internes TCheckbox Object konfigurieren
InternalCheckbox.Caption:='Item '+inttostr(idx);
InternalCheckbox.AllowGrayed:=true;
// internes TCheckbox Object in CheckListbox einfügen
CheckList.Items.AddObject(inttostr(idx),InternalCheckbox);
end;
Aber wie komme ich jetzt nur wieder an die internen Checkboxen heran ?
Generell möchte ich erreíchen, das die interne Checkbox beim Checklist.onClickCheck ebenfalls auch angehakt nzw. abgehakt wird. Zusätzlich soll, wenn der Status der internen Checkbox cbGrayed ist, die Caption des Checklistbox Items modifiziert werden.
Mein bisheriger Versuch
Delphi-Quellcode:
procedure TForm1.CheckListClickCheck(Sender: TObject);
var idx:integer;
Fi:
String;
begin
Fi:='
Filter inaktiv';
idx:= CheckList.ItemIndex;
If TObject(CheckList.Items[idx])
is TCheckbox
then // << hier wird eine AV ausgelöst
With (TObject(CheckList.Items[idx])
as TCheckbox)
do // << Wenn ist die "is" Prüfung weglasse
begin // wird hier die AV ausgelöst
Case State
of
// interne CheckBox hat den Status cbGrayrd
cbGrayed:
begin
State:=cbchecked;
CheckList.Items[idx]:=Caption;
CheckList.ItemEnabled[idx]:=true;
end;
// interne CheckBox hat den Status cbChecked
cbchecked:
begin
State:=cbUnChecked;
CheckList.Items[idx]:=Caption;
CheckList.ItemEnabled[idx]:=false;
end;
// interne CheckBox hat den Status cbUnChecked
cbunchecked:
begin
State:=cbGrayed;
CheckList.Items[idx]:=Caption+'
'+Fi;
CheckList.ItemEnabled[idx]:=false;
end;
end;
// case
end;
//with
end;
Die Hilfe bringt mich nicht wirklich weiter.
Hat jemand eine Idee wie ich an das interne Objekt herankomme ?
Schöne Grüße,
Jens
EDIT
------------------------------------------------------------------
Arrgh, Augen auf ...
TChecklistbox kennt auch AllowGrayed.
Damit kann ich mit den ganzen Zauber sparen ...
------------------------------------------------------------------
Aber nur interessehalber ...
Wie komme ich generell wieder an das "interne" Objekt heran (für den nächsten Versuch ... ) ?