Ich glaube, ich höre für heute auf und gehe ins Bett. Jetzt hat es doch geklappt, so wie ich es wollte, auch mit den Lokalen Variablen. Wenn man natürlich keine Schleife um die Abfrage baut, kann das auch nicht funktionieren.
Hier mal mein Code, an dem Ihr aber wahrscheinlich noch massig auszusetzten habt. Bitte lasst Euch aus. Es kann mir ja nur helfen weiterzukommen.
Delphi-Quellcode:
procedure TForm1.VSTAfterItemErase(Sender: TBaseVirtualTree;
TargetCanvas: TCanvas; Node: PVirtualNode; ItemRect: TRect);
var
DatenMB : TOMBSerie;
DatenUEZ : TOUEZ;
iRadioGroup : integer;
iCheckBox : integer;
iEdit1 : integer;
sEdit1 : String;
iEdit2 : integer;
sEdit2 : String;
iColorBox : integer;
iSchleife : integer;
begin
iRadioGroup := 1;
iCheckBox := 1;
iEdit1 := 1;
iEdit2 := 2;
sEdit1 := '';
sEdit2 := '';
iColorBox := 1;
case Zentralentyp of
0..3: begin
DatenMB := TOMBSerie(VST.GetNodeData(Node)^);
if Sender.Selected[Node] then
Exit;
for iSchleife := 0 to 14 do begin
case(AnsichtForm.FindComponent('RadioGroup' + IntToStr(iRadioGroup))as TRadioGroup).ItemIndex of
0:
begin
if (AnsichtForm.FindComponent('CheckBox' + IntToStr(iCheckBox)) as TCheckBox).Checked = true then
begin
if Pos((AnsichtForm.FindComponent('Edit' + IntToStr(iEdit1))as TEdit).Text,DatenMB.Ereignis) > 0 then
TargetCanvas.Brush.Color := (AnsichtForm.FindComponent('ColorBox' + IntToStr(iColorBox))as TColorBox).Selected;
if Pos((AnsichtForm.FindComponent('Edit' + IntToStr(iEdit2))as TEdit).Text,DatenMB.Ereignis) > 0 then
TargetCanvas.Brush.Color := (AnsichtForm.FindComponent('ColorBox' + IntToStr(iColorBox))as TColorBox).Selected;
end;
iCheckBox := iCheckBox + 1;
if (AnsichtForm.FindComponent('CheckBox' + IntToStr(iCheckBox)) as TCheckBox).Checked = true then
begin
if Pos((AnsichtForm.FindComponent('Edit' + IntToStr(iEdit1))as TEdit).Text,DatenMB.Teilnehmer) > 0 then
TargetCanvas.Brush.Color := (AnsichtForm.FindComponent('ColorBox' + IntToStr(iColorBox))as TColorBox).Selected;
if Pos((AnsichtForm.FindComponent('Edit' + IntToStr(iEdit2))as TEdit).Text,DatenMB.Teilnehmer) > 0 then
TargetCanvas.Brush.Color := (AnsichtForm.FindComponent('ColorBox' + IntToStr(iColorBox))as TColorBox).Selected;
end;
iCheckBox := iCheckBox + 1;
if (AnsichtForm.FindComponent('CheckBox' + IntToStr(iCheckBox)) as TCheckBox).Checked = true then
begin
if Pos((AnsichtForm.FindComponent('Edit' + IntToStr(iEdit1))as TEdit).Text,DatenMB.Bereich) > 0 then
TargetCanvas.Brush.Color := (AnsichtForm.FindComponent('ColorBox' + IntToStr(iColorBox))as TColorBox).Selected;
if Pos((AnsichtForm.FindComponent('Edit' + IntToStr(iEdit2))as TEdit).Text,DatenMB.Bereich) > 0 then
TargetCanvas.Brush.Color := (AnsichtForm.FindComponent('ColorBox' + IntToStr(iColorBox))as TColorBox).Selected;
end;
iEdit1 := iEdit1 + 2;
iEdit2 := iEdit2 + 2;
iColorBox := iColorBox + 2;
iRadioGroup := iRadioGroup + 1;
iCheckBox := iCheckBox + 1;
end;
1:
begin
if (AnsichtForm.FindComponent('CheckBox' + IntToStr(iCheckBox)) as TCheckBox).Checked = true then
begin
if Pos((AnsichtForm.FindComponent('Edit' + IntToStr(iEdit1))as TEdit).Text,DatenMB.Ereignis) > 0 then
begin
if Pos((AnsichtForm.FindComponent('Edit' + IntToStr(iEdit2))as TEdit).Text,DatenMB.Ereignis) > 0 then
TargetCanvas.Brush.Color := (AnsichtForm.FindComponent('ColorBox' + IntToStr(iColorBox))as TColorBox).Selected;
end;
end;
iCheckBox := iCheckBox + 1;
if (AnsichtForm.FindComponent('CheckBox' + IntToStr(iCheckBox)) as TCheckBox).Checked = true then
begin
if Pos((AnsichtForm.FindComponent('Edit' + IntToStr(iEdit1))as TEdit).Text,DatenMB.Teilnehmer) > 0 then
begin
if Pos((AnsichtForm.FindComponent('Edit' + IntToStr(iEdit2))as TEdit).Text,DatenMB.Teilnehmer) > 0 then
TargetCanvas.Brush.Color := (AnsichtForm.FindComponent('ColorBox' + IntToStr(iColorBox))as TColorBox).Selected;
end;
end;
iCheckBox := iCheckBox + 1;
if (AnsichtForm.FindComponent('CheckBox' + IntToStr(iCheckBox)) as TCheckBox).Checked = true then
begin
if Pos((AnsichtForm.FindComponent('Edit' + IntToStr(iEdit1))as TEdit).Text,DatenMB.Teilnehmer) > 0 then
begin
if Pos((AnsichtForm.FindComponent('Edit' + IntToStr(iEdit2))as TEdit).Text,DatenMB.Teilnehmer) > 0 then
TargetCanvas.Brush.Color := (AnsichtForm.FindComponent('ColorBox' + IntToStr(iColorBox))as TColorBox).Selected;
end;
end;
iEdit1 := iEdit1 + 2;
iEdit2 := iEdit2 + 2;
iColorBox := iColorBox + 2;
iRadioGroup := iRadioGroup + 1;
iCheckBox := iCheckBox + 1;
end;
end;
TargetCanvas.FillRect (ItemRect);
end;
end;
Danke für das Verständnis mit dem nervigen Jens.
Gruß Jens