Einzelnen Beitrag anzeigen

Benutzerbild von Jens Hartmann
Jens Hartmann

Registriert seit: 11. Jan 2009
Ort: Wilnsdorf
1.439 Beiträge
 
Delphi XE2 Professional
 
#16

Re: Immer mehrere CheckBoxen = true

  Alt 24. Jan 2010, 18:34
Hallo nochmal,

so ich habe das jetzt noch etwas verändert, in dem ich die möglichen Zustände vorher über den ItemIndex der einzelnen Komponenten berechnen. Ich denke das das so schon ganz gut ist. Entweder werft mir Kommentare entgegen, oder Verbesserungsvorschläge. Da es ein doch recht Aufwendiges Thema war, ist der folgenden Code etwas länger.

Ich hoffe die Lust verlässt Euch trotzdem nicht.
Delphi-Quellcode:
{Suchfubktion über Edit 1 und Edit in Verbindung aller Möglichkeiten}
procedure TFDatenauswertung.btnFilterClick(Sender: TObject);
var
  Callback : integer;
begin
case cbLinking.ItemIndex of
0:case cbLinkingAfterwards.ItemIndex of
  0: Callback := cbSearchOne.ItemIndex;
  1: Callback := cbSearchOne.ItemIndex+3;
  2: Callback := cbSearchOne.ItemIndex+6;
  end;
1:case cbLinkingAfterwards.ItemIndex of
  0: case cbSearchOne.ItemIndex of
     1: Callback := cbSearchTwo.ItemIndex+10;
     2: Callback := cbSearchTwo.ItemIndex+12;
     3: Callback := cbSearchTwo.ItemIndex+14;
     end;
  1: case cbSearchOne.ItemIndex of
     1: Callback := cbSearchTwo.ItemIndex+16;
     2: Callback := cbSearchTwo.ItemIndex+18;
     3: Callback := cbSearchTwo.ItemIndex+20;
     end;
  2: case cbSearchOne.ItemIndex of
     1: Callback := cbSearchTwo.ItemIndex+22;
     2: Callback := cbSearchTwo.ItemIndex+24;
     3: Callback := cbSearchTwo.ItemIndex+26;
     end;
  end;
2:case cbLinkingAfterwards.ItemIndex of
  0: case cbSearchOne.ItemIndex of
     1: Callback := cbSearchTwo.ItemIndex+28;
     2: Callback := cbSearchTwo.ItemIndex+30;
     3: Callback := cbSearchTwo.ItemIndex+32;
     end;
  1: case cbSearchOne.ItemIndex of
     1: Callback := cbSearchTwo.ItemIndex+34;
     2: Callback := cbSearchTwo.ItemIndex+36;
     3: Callback := cbSearchTwo.ItemIndex+38;
     end;
  2: case cbSearchOne.ItemIndex of
     1: Callback := cbSearchTwo.ItemIndex+40;
     2: Callback := cbSearchTwo.ItemIndex+42;
     3: Callback := cbSearchTwo.ItemIndex+44;
     end;
  end;
end;

case Callback of
1:vst.IterateSubtree(nil,SucheCallbackEdit1,nil);
2:vst.IterateSubtree(nil,SucheCallbackEdit2,nil);
3:vst.IterateSubtree(nil,SucheCallbackEdit3,nil);
4:vst.IterateSubtree(nil,SucheCallbackEdit4,nil);
5:vst.IterateSubtree(nil,SucheCallbackEdit5,nil);
6:vst.IterateSubtree(nil,SucheCallbackEdit6,nil);
7:vst.IterateSubtree(nil,SucheCallbackEdit7,nil);
8:vst.IterateSubtree(nil,SucheCallbackEdit8,nil);
9:vst.IterateSubtree(nil,SucheCallbackEdit9,nil);
10:vst.IterateSubtree(nil,SucheCallbackEdit10,nil);
11:vst.IterateSubtree(nil,SucheCallbackEdit11,nil);
12:vst.IterateSubtree(nil,SucheCallbackEdit10,nil);
13:vst.IterateSubtree(nil,SucheCallbackEdit12,nil);
14:vst.IterateSubtree(nil,SucheCallbackEdit11,nil);
15:vst.IterateSubtree(nil,SucheCallbackEdit12,nil);
16:vst.IterateSubtree(nil,SucheCallbackEdit13,nil);
17:vst.IterateSubtree(nil,SucheCallbackEdit14,nil);
18:vst.IterateSubtree(nil,SucheCallbackEdit13,nil);
19:vst.IterateSubtree(nil,SucheCallbackEdit15,nil);
20:vst.IterateSubtree(nil,SucheCallbackEdit14,nil);
21:vst.IterateSubtree(nil,SucheCallbackEdit15,nil);
22:vst.IterateSubtree(nil,SucheCallbackEdit16,nil);
23:vst.IterateSubtree(nil,SucheCallbackEdit17,nil);
24:vst.IterateSubtree(nil,SucheCallbackEdit16,nil);
25:vst.IterateSubtree(nil,SucheCallbackEdit18,nil);
26:vst.IterateSubtree(nil,SucheCallbackEdit17,nil);
27:vst.IterateSubtree(nil,SucheCallbackEdit18,nil);
28:vst.IterateSubtree(nil,SucheCallbackEdit19,nil);
29:vst.IterateSubtree(nil,SucheCallbackEdit20,nil);
30:vst.IterateSubtree(nil,SucheCallbackEdit19,nil);
31:vst.IterateSubtree(nil,SucheCallbackEdit21,nil);
32:vst.IterateSubtree(nil,SucheCallbackEdit20,nil);
33:vst.IterateSubtree(nil,SucheCallbackEdit21,nil);
34:vst.IterateSubtree(nil,SucheCallbackEdit22,nil);
35:vst.IterateSubtree(nil,SucheCallbackEdit23,nil);
36:vst.IterateSubtree(nil,SucheCallbackEdit22,nil);
37:vst.IterateSubtree(nil,SucheCallbackEdit24,nil);
38:vst.IterateSubtree(nil,SucheCallbackEdit23,nil);
39:vst.IterateSubtree(nil,SucheCallbackEdit24,nil);
40:vst.IterateSubtree(nil,SucheCallbackEdit25,nil);
41:vst.IterateSubtree(nil,SucheCallbackEdit26,nil);
42:vst.IterateSubtree(nil,SucheCallbackEdit25,nil);
43:vst.IterateSubtree(nil,SucheCallbackEdit27,nil);
44:vst.IterateSubtree(nil,SucheCallbackEdit26,nil);
45:vst.IterateSubtree(nil,SucheCallbackEdit27,nil);
end;
  btnReset.Enabled := true;
end;

procedure TFDatenauswertung.btnResetClick(Sender: TObject);
begin
  vst.IterateSubtree(nil,SucheCallbackEditReset,nil);
  btnReset.Enabled := false;
end;
//Suche Zurücksetzten und alle geladenen Daten Anzeigen
procedure TFDatenauswertung.SucheCallbackEditReset(Sender: TBaseVirtualTree; Node: PVirtualNode; Data: Pointer; var Abort: Boolean);
var
  DatenMB : TOMBSerie;
begin
  DatenMB := TOMBSerie(VST.GetNodeData(Node)^);
  VST.IsVisible[Node] := true;
  PBFortschritt.Position := PBFortschritt.Position +1;
  if PBFortschritt.Position = PBFortschritt.Max then
    PBFortschritt.Position := 0;
end;
//Suche in Spalte Ereignis nach Text Edit 1
procedure TFDatenauswertung.SucheCallbackEdit1(Sender: TBaseVirtualTree; Node: PVirtualNode; Data: Pointer; var Abort: Boolean);
var
  DatenMB : TOMBSerie;
begin
  DatenMB := TOMBSerie(VST.GetNodeData(Node)^);
  VST.IsVisible[Node] := (EDManFilter1.Text='') or (Pos(LowerCase(EDManFilter1.Text), LowerCase(DatenMB.Ereignis))>0);
  PBFortschritt.Position := PBFortschritt.Position +1;
  if PBFortschritt.Position = PBFortschritt.Max then
    PBFortschritt.Position := 0;
end;
//Suche in Spalte Teilnehmer nach Text Edit 1
procedure TFDatenauswertung.SucheCallbackEdit2(Sender: TBaseVirtualTree; Node: PVirtualNode; Data: Pointer; var Abort: Boolean);
var
  DatenMB : TOMBSerie;
begin
  DatenMB := TOMBSerie(VST.GetNodeData(Node)^);
  VST.IsVisible[Node] := (EDManFilter1.Text='') or (Pos(LowerCase(EDManFilter1.Text), LowerCase(DatenMB.Teilnehmer))>0);
  PBFortschritt.Position := PBFortschritt.Position +1;
  if PBFortschritt.Position = PBFortschritt.Max then
    PBFortschritt.Position := 0;
end;
//Suche in Spalte Bereich nach Text Edit 1
procedure TFDatenauswertung.SucheCallbackEdit3(Sender: TBaseVirtualTree; Node: PVirtualNode; Data: Pointer; var Abort: Boolean);
var
  DatenMB : TOMBSerie;
begin
  DatenMB := TOMBSerie(VST.GetNodeData(Node)^);
  VST.IsVisible[Node] := (EDManFilter1.Text='') or (Pos(LowerCase(EDManFilter1.Text), LowerCase(DatenMB.Bereich))>0);
  PBFortschritt.Position := PBFortschritt.Position +1;
  if PBFortschritt.Position = PBFortschritt.Max then
    PBFortschritt.Position := 0;
end;
//Suche in Spalte Ereignis nach Text Edit 1 OR Text Edit 2
procedure TFDatenauswertung.SucheCallbackEdit4(Sender: TBaseVirtualTree; Node: PVirtualNode; Data: Pointer; var Abort: Boolean);
var
  DatenMB : TOMBSerie;
begin
  DatenMB := TOMBSerie(VST.GetNodeData(Node)^);
  VST.IsVisible[Node] := ((EDManFilter1.Text='') and (EDManFilter2.Text='')) or
                         (Pos(LowerCase(EDManFilter1.Text), LowerCase(DatenMB.Ereignis))>0) or
                         (Pos(LowerCase(EDManFilter2.Text), LowerCase(DatenMB.Ereignis))>0);
  PBFortschritt.Position := PBFortschritt.Position +1;
  if PBFortschritt.Position = PBFortschritt.Max then
    PBFortschritt.Position := 0;
end;
//Suche in Spalte Teilnehmer nach Text Edit 1 OR Text Edit 2
procedure TFDatenauswertung.SucheCallbackEdit5(Sender: TBaseVirtualTree; Node: PVirtualNode; Data: Pointer; var Abort: Boolean);
var
  DatenMB : TOMBSerie;
begin
  DatenMB := TOMBSerie(VST.GetNodeData(Node)^);
  VST.IsVisible[Node] := ((EDManFilter1.Text='') and (EDManFilter2.Text='')) or
                         (Pos(LowerCase(EDManFilter1.Text), LowerCase(DatenMB.Teilnehmer))>0) or
                         (Pos(LowerCase(EDManFilter2.Text), LowerCase(DatenMB.Teilnehmer))>0);
  PBFortschritt.Position := PBFortschritt.Position +1;
  if PBFortschritt.Position = PBFortschritt.Max then
    PBFortschritt.Position := 0;
end;
//Suche in Spalte Bereich nach Text Edit 1 OR Text Edit 2
procedure TFDatenauswertung.SucheCallbackEdit6(Sender: TBaseVirtualTree; Node: PVirtualNode; Data: Pointer; var Abort: Boolean);
var
  DatenMB : TOMBSerie;
begin
  DatenMB := TOMBSerie(VST.GetNodeData(Node)^);
  VST.IsVisible[Node] := ((EDManFilter1.Text='') and (EDManFilter2.Text='')) or
                         (Pos(LowerCase(EDManFilter1.Text), LowerCase(DatenMB.Bereich))>0) or
                         (Pos(LowerCase(EDManFilter2.Text), LowerCase(DatenMB.Bereich))>0);
  PBFortschritt.Position := PBFortschritt.Position +1;
  if PBFortschritt.Position = PBFortschritt.Max then
    PBFortschritt.Position := 0;
end;
//Suche in Spalte Ereignis nach Text Edit 1 AND Text Edit 2
procedure TFDatenauswertung.SucheCallbackEdit7(Sender: TBaseVirtualTree; Node: PVirtualNode; Data: Pointer; var Abort: Boolean);
var
  DatenMB : TOMBSerie;
begin
  DatenMB := TOMBSerie(VST.GetNodeData(Node)^);
  VST.IsVisible[Node] := ((EDManFilter1.Text='') and (EDManFilter2.Text='')) or
                         (Pos(LowerCase(EDManFilter1.Text), LowerCase(DatenMB.Ereignis))>0) and
                         (Pos(LowerCase(EDManFilter2.Text), LowerCase(DatenMB.Ereignis))>0);
  PBFortschritt.Position := PBFortschritt.Position +1;
  if PBFortschritt.Position = PBFortschritt.Max then
    PBFortschritt.Position := 0;
end;
//Suche in Spalte Teilnehmer nach Text Edit 1 AND Text Edit 2
procedure TFDatenauswertung.SucheCallbackEdit8(Sender: TBaseVirtualTree; Node: PVirtualNode; Data: Pointer; var Abort: Boolean);
var
  DatenMB : TOMBSerie;
begin
  DatenMB := TOMBSerie(VST.GetNodeData(Node)^);
  VST.IsVisible[Node] := ((EDManFilter1.Text='') and (EDManFilter2.Text='')) or
                         (Pos(LowerCase(EDManFilter1.Text), LowerCase(DatenMB.Teilnehmer))>0) and
                         (Pos(LowerCase(EDManFilter2.Text), LowerCase(DatenMB.Teilnehmer))>0);
  PBFortschritt.Position := PBFortschritt.Position +1;
  if PBFortschritt.Position = PBFortschritt.Max then
    PBFortschritt.Position := 0;
end;
//Suche in Spalte Bereich nach Text Edit 1 AND Text Edit 2
procedure TFDatenauswertung.SucheCallbackEdit9(Sender: TBaseVirtualTree; Node: PVirtualNode; Data: Pointer; var Abort: Boolean);
var
  DatenMB : TOMBSerie;
begin
  DatenMB := TOMBSerie(VST.GetNodeData(Node)^);
  VST.IsVisible[Node] := ((EDManFilter1.Text='') and (EDManFilter2.Text='')) or
                         (Pos(LowerCase(EDManFilter1.Text), LowerCase(DatenMB.Bereich))>0) and
                         (Pos(LowerCase(EDManFilter2.Text), LowerCase(DatenMB.Bereich))>0);
  PBFortschritt.Position := PBFortschritt.Position +1;
  if PBFortschritt.Position = PBFortschritt.Max then
    PBFortschritt.Position := 0;
end;
//Suche in Spalte Ereignis OR Teilnehmer nach Text Edit 1
procedure TFDatenauswertung.SucheCallbackEdit10(Sender: TBaseVirtualTree; Node: PVirtualNode; Data: Pointer; var Abort: Boolean);
var
  DatenMB : TOMBSerie;
begin
  DatenMB := TOMBSerie(VST.GetNodeData(Node)^);
  VST.IsVisible[Node] := (EDManFilter1.Text='') or (Pos(LowerCase(EDManFilter1.Text), LowerCase(DatenMB.Ereignis))>0)
                                                or (Pos(LowerCase(EDManFilter1.Text), LowerCase(DatenMB.Teilnehmer))>0);
  PBFortschritt.Position := PBFortschritt.Position +1;
  if PBFortschritt.Position = PBFortschritt.Max then
    PBFortschritt.Position := 0;
end;
//Suche in Spalte Ereignis OR Bereich nach Text Edit 1
procedure TFDatenauswertung.SucheCallbackEdit11(Sender: TBaseVirtualTree; Node: PVirtualNode; Data: Pointer; var Abort: Boolean);
var
  DatenMB : TOMBSerie;
begin
  DatenMB := TOMBSerie(VST.GetNodeData(Node)^);
  VST.IsVisible[Node] := (EDManFilter1.Text='') or (Pos(LowerCase(EDManFilter1.Text), LowerCase(DatenMB.Ereignis))>0)
                                                or (Pos(LowerCase(EDManFilter1.Text), LowerCase(DatenMB.Bereich))>0);
  PBFortschritt.Position := PBFortschritt.Position +1;
  if PBFortschritt.Position = PBFortschritt.Max then
    PBFortschritt.Position := 0;
end;
//Suche in Spalte Teilnehmer OR Bereich nach Text Edit 1
procedure TFDatenauswertung.SucheCallbackEdit12(Sender: TBaseVirtualTree; Node: PVirtualNode; Data: Pointer; var Abort: Boolean);
var
  DatenMB : TOMBSerie;
begin
  DatenMB := TOMBSerie(VST.GetNodeData(Node)^);
  VST.IsVisible[Node] := (EDManFilter1.Text='') or (Pos(LowerCase(EDManFilter1.Text), LowerCase(DatenMB.Teilnehmer))>0)
                                                or (Pos(LowerCase(EDManFilter1.Text), LowerCase(DatenMB.Bereich))>0);
  PBFortschritt.Position := PBFortschritt.Position +1;
  if PBFortschritt.Position = PBFortschritt.Max then
    PBFortschritt.Position := 0;
end;
//Suche in Spalte Ereignis OR Teilnehmer nach Text Edit 1 OR Edit 2
procedure TFDatenauswertung.SucheCallbackEdit13(Sender: TBaseVirtualTree; Node: PVirtualNode; Data: Pointer; var Abort: Boolean);
var
  DatenMB : TOMBSerie;
begin
  DatenMB := TOMBSerie(VST.GetNodeData(Node)^);
  VST.IsVisible[Node] := ((EDManFilter1.Text='') and (EDManFilter2.Text='')) or
                         (Pos(LowerCase(EDManFilter1.Text), LowerCase(DatenMB.Ereignis))>0) or
                         (Pos(LowerCase(EDManFilter1.Text), LowerCase(DatenMB.Teilnehmer))>0) or
                         (Pos(LowerCase(EDManFilter2.Text), LowerCase(DatenMB.Ereignis))>0) or
                         (Pos(LowerCase(EDManFilter2.Text), LowerCase(DatenMB.Teilnehmer))>0);
  PBFortschritt.Position := PBFortschritt.Position +1;
  if PBFortschritt.Position = PBFortschritt.Max then
    PBFortschritt.Position := 0;
end;
//Suche in Spalte Ereignis OR Bereich nach Text Edit 1 OR Edit 2
procedure TFDatenauswertung.SucheCallbackEdit14(Sender: TBaseVirtualTree; Node: PVirtualNode; Data: Pointer; var Abort: Boolean);
var
  DatenMB : TOMBSerie;
begin
  DatenMB := TOMBSerie(VST.GetNodeData(Node)^);
  VST.IsVisible[Node] := ((EDManFilter1.Text='') and (EDManFilter2.Text='')) or
                         (Pos(LowerCase(EDManFilter1.Text), LowerCase(DatenMB.Ereignis))>0) or
                         (Pos(LowerCase(EDManFilter1.Text), LowerCase(DatenMB.Bereich))>0) or
                         (Pos(LowerCase(EDManFilter2.Text), LowerCase(DatenMB.Ereignis))>0) or
                         (Pos(LowerCase(EDManFilter2.Text), LowerCase(DatenMB.Bereich))>0);
  PBFortschritt.Position := PBFortschritt.Position +1;
  if PBFortschritt.Position = PBFortschritt.Max then
    PBFortschritt.Position := 0;
end;
//Suche in Spalte Bereich OR Teilnehmer nach Text Edit 1 OR Edit 2
procedure TFDatenauswertung.SucheCallbackEdit15(Sender: TBaseVirtualTree; Node: PVirtualNode; Data: Pointer; var Abort: Boolean);
var
  DatenMB : TOMBSerie;
begin
  DatenMB := TOMBSerie(VST.GetNodeData(Node)^);
  VST.IsVisible[Node] := ((EDManFilter1.Text='') and (EDManFilter2.Text='')) or
                         (Pos(LowerCase(EDManFilter1.Text), LowerCase(DatenMB.Bereich))>0) or
                         (Pos(LowerCase(EDManFilter1.Text), LowerCase(DatenMB.Teilnehmer))>0) or
                         (Pos(LowerCase(EDManFilter2.Text), LowerCase(DatenMB.Bereich))>0) or
                         (Pos(LowerCase(EDManFilter2.Text), LowerCase(DatenMB.Teilnehmer))>0);
  PBFortschritt.Position := PBFortschritt.Position +1;
  if PBFortschritt.Position = PBFortschritt.Max then
    PBFortschritt.Position := 0;
end;
//Suche in Spalte Ereignis OR Teilnehmer nach Text Edit 1 AND Edit 2
procedure TFDatenauswertung.SucheCallbackEdit16(Sender: TBaseVirtualTree; Node: PVirtualNode; Data: Pointer; var Abort: Boolean);
var
  DatenMB : TOMBSerie;
begin
  DatenMB := TOMBSerie(VST.GetNodeData(Node)^);
  VST.IsVisible[Node] := ((EDManFilter1.Text='') and (EDManFilter2.Text='')) or
                         (Pos(LowerCase(EDManFilter1.Text), LowerCase(DatenMB.Ereignis))>0) or
                         (Pos(LowerCase(EDManFilter1.Text), LowerCase(DatenMB.Teilnehmer))>0) and
                         (Pos(LowerCase(EDManFilter2.Text), LowerCase(DatenMB.Ereignis))>0) or
                         (Pos(LowerCase(EDManFilter2.Text), LowerCase(DatenMB.Teilnehmer))>0);
  PBFortschritt.Position := PBFortschritt.Position +1;
  if PBFortschritt.Position = PBFortschritt.Max then
    PBFortschritt.Position := 0;
end;
//Suche in Spalte Ereignis OR Bereich nach Text Edit 1 AND Edit 2
procedure TFDatenauswertung.SucheCallbackEdit17(Sender: TBaseVirtualTree; Node: PVirtualNode; Data: Pointer; var Abort: Boolean);
var
  DatenMB : TOMBSerie;
begin
  DatenMB := TOMBSerie(VST.GetNodeData(Node)^);
  VST.IsVisible[Node] := ((EDManFilter1.Text='') and (EDManFilter2.Text='')) or
                         (Pos(LowerCase(EDManFilter1.Text), LowerCase(DatenMB.Ereignis))>0) or
                         (Pos(LowerCase(EDManFilter1.Text), LowerCase(DatenMB.Bereich))>0) and
                         (Pos(LowerCase(EDManFilter2.Text), LowerCase(DatenMB.Ereignis))>0) or
                         (Pos(LowerCase(EDManFilter2.Text), LowerCase(DatenMB.Bereich))>0);
  PBFortschritt.Position := PBFortschritt.Position +1;
  if PBFortschritt.Position = PBFortschritt.Max then
    PBFortschritt.Position := 0;
end;
//Suche in Spalte Bereich OR Teilnehmer nach Text Edit 1 AND Edit 2
procedure TFDatenauswertung.SucheCallbackEdit18(Sender: TBaseVirtualTree; Node: PVirtualNode; Data: Pointer; var Abort: Boolean);
var
  DatenMB : TOMBSerie;
begin
  DatenMB := TOMBSerie(VST.GetNodeData(Node)^);
  VST.IsVisible[Node] := ((EDManFilter1.Text='') and (EDManFilter2.Text='')) or
                         (Pos(LowerCase(EDManFilter1.Text), LowerCase(DatenMB.Bereich))>0) or
                         (Pos(LowerCase(EDManFilter1.Text), LowerCase(DatenMB.Teilnehmer))>0) and
                         (Pos(LowerCase(EDManFilter2.Text), LowerCase(DatenMB.Bereich))>0) or
                         (Pos(LowerCase(EDManFilter2.Text), LowerCase(DatenMB.Teilnehmer))>0);
  PBFortschritt.Position := PBFortschritt.Position +1;
  if PBFortschritt.Position = PBFortschritt.Max then
    PBFortschritt.Position := 0;
end;
//Suche in Spalte Ereignis AND Teilnehmer nach Text Edit 1
procedure TFDatenauswertung.SucheCallbackEdit19(Sender: TBaseVirtualTree; Node: PVirtualNode; Data: Pointer; var Abort: Boolean);
var
  DatenMB : TOMBSerie;
begin
  DatenMB := TOMBSerie(VST.GetNodeData(Node)^);
  VST.IsVisible[Node] := (EDManFilter1.Text='') or (Pos(LowerCase(EDManFilter1.Text), LowerCase(DatenMB.Ereignis))>0)
                                                and (Pos(LowerCase(EDManFilter1.Text), LowerCase(DatenMB.Teilnehmer))>0);
  PBFortschritt.Position := PBFortschritt.Position +1;
  if PBFortschritt.Position = PBFortschritt.Max then
    PBFortschritt.Position := 0;
end;
//Suche in Spalte Ereignis AND Bereich nach Text Edit 1
procedure TFDatenauswertung.SucheCallbackEdit20(Sender: TBaseVirtualTree; Node: PVirtualNode; Data: Pointer; var Abort: Boolean);
var
  DatenMB : TOMBSerie;
begin
  DatenMB := TOMBSerie(VST.GetNodeData(Node)^);
  VST.IsVisible[Node] := (EDManFilter1.Text='') or (Pos(LowerCase(EDManFilter1.Text), LowerCase(DatenMB.Ereignis))>0)
                                                and (Pos(LowerCase(EDManFilter1.Text), LowerCase(DatenMB.Bereich))>0);
  PBFortschritt.Position := PBFortschritt.Position +1;
  if PBFortschritt.Position = PBFortschritt.Max then
    PBFortschritt.Position := 0;
end;
//Suche in Spalte Teilnehmer AND Bereich nach Text Edit 1
procedure TFDatenauswertung.SucheCallbackEdit21(Sender: TBaseVirtualTree; Node: PVirtualNode; Data: Pointer; var Abort: Boolean);
var
  DatenMB : TOMBSerie;
begin
  DatenMB := TOMBSerie(VST.GetNodeData(Node)^);
  VST.IsVisible[Node] := (EDManFilter1.Text='') or (Pos(LowerCase(EDManFilter1.Text), LowerCase(DatenMB.Teilnehmer))>0)
                                                and (Pos(LowerCase(EDManFilter1.Text), LowerCase(DatenMB.Bereich))>0);
  PBFortschritt.Position := PBFortschritt.Position +1;
  if PBFortschritt.Position = PBFortschritt.Max then
    PBFortschritt.Position := 0;
end;
//Suche in Spalte Ereignis AND Teilnehmer nach Text Edit 1 OR Text Edit 2
procedure TFDatenauswertung.SucheCallbackEdit22(Sender: TBaseVirtualTree; Node: PVirtualNode; Data: Pointer; var Abort: Boolean);
var
  DatenMB : TOMBSerie;
begin
  DatenMB := TOMBSerie(VST.GetNodeData(Node)^);
  VST.IsVisible[Node] := ((EDManFilter1.Text='') and (EDManFilter2.Text='')) or
                         (Pos(LowerCase(EDManFilter1.Text), LowerCase(DatenMB.Ereignis))>0) and
                         (Pos(LowerCase(EDManFilter1.Text), LowerCase(DatenMB.Teilnehmer))>0) or
                         (Pos(LowerCase(EDManFilter2.Text), LowerCase(DatenMB.Ereignis))>0) and
                         (Pos(LowerCase(EDManFilter2.Text), LowerCase(DatenMB.Teilnehmer))>0);
  PBFortschritt.Position := PBFortschritt.Position +1;
  if PBFortschritt.Position = PBFortschritt.Max then
    PBFortschritt.Position := 0;
end;
//Suche in Spalte Ereignis AND Bereich nach Text Edit 1 OR Text Edit 2
procedure TFDatenauswertung.SucheCallbackEdit23(Sender: TBaseVirtualTree; Node: PVirtualNode; Data: Pointer; var Abort: Boolean);
var
  DatenMB : TOMBSerie;
begin
  DatenMB := TOMBSerie(VST.GetNodeData(Node)^);
  VST.IsVisible[Node] := ((EDManFilter1.Text='') and (EDManFilter2.Text='')) or
                         (Pos(LowerCase(EDManFilter1.Text), LowerCase(DatenMB.Ereignis))>0) and
                         (Pos(LowerCase(EDManFilter1.Text), LowerCase(DatenMB.Bereich))>0) or
                         (Pos(LowerCase(EDManFilter2.Text), LowerCase(DatenMB.Ereignis))>0) and
                         (Pos(LowerCase(EDManFilter2.Text), LowerCase(DatenMB.Bereich))>0);
  PBFortschritt.Position := PBFortschritt.Position +1;
  if PBFortschritt.Position = PBFortschritt.Max then
    PBFortschritt.Position := 0;
end;
//Suche in Spalte Bereich AND Teilnehmer nach Text Edit 1 OR Text Edit 2
procedure TFDatenauswertung.SucheCallbackEdit24(Sender: TBaseVirtualTree; Node: PVirtualNode; Data: Pointer; var Abort: Boolean);
var
  DatenMB : TOMBSerie;
begin
  DatenMB := TOMBSerie(VST.GetNodeData(Node)^);
  VST.IsVisible[Node] := ((EDManFilter1.Text='') and (EDManFilter2.Text='')) or
                         (Pos(LowerCase(EDManFilter1.Text), LowerCase(DatenMB.Bereich))>0) and
                         (Pos(LowerCase(EDManFilter1.Text), LowerCase(DatenMB.Teilnehmer))>0) or
                         (Pos(LowerCase(EDManFilter2.Text), LowerCase(DatenMB.Bereich))>0) and
                         (Pos(LowerCase(EDManFilter2.Text), LowerCase(DatenMB.Teilnehmer))>0);
  PBFortschritt.Position := PBFortschritt.Position +1;
  if PBFortschritt.Position = PBFortschritt.Max then
    PBFortschritt.Position := 0;
end;
//Suche in Spalte Ereignis AND Teilnehmer nach Text Edit 1 AND Text Edit 2
procedure TFDatenauswertung.SucheCallbackEdit25(Sender: TBaseVirtualTree; Node: PVirtualNode; Data: Pointer; var Abort: Boolean);
var
  DatenMB : TOMBSerie;
begin
  DatenMB := TOMBSerie(VST.GetNodeData(Node)^);
  VST.IsVisible[Node] := ((EDManFilter1.Text='') and (EDManFilter2.Text='')) or
                         (Pos(LowerCase(EDManFilter1.Text), LowerCase(DatenMB.Ereignis))>0) and
                         (Pos(LowerCase(EDManFilter1.Text), LowerCase(DatenMB.Teilnehmer))>0) and
                         (Pos(LowerCase(EDManFilter2.Text), LowerCase(DatenMB.Ereignis))>0) and
                         (Pos(LowerCase(EDManFilter2.Text), LowerCase(DatenMB.Teilnehmer))>0);
  PBFortschritt.Position := PBFortschritt.Position +1;
  if PBFortschritt.Position = PBFortschritt.Max then
    PBFortschritt.Position := 0;
end;
//Suche in Spalte Ereignis AND Bereich nach Text Edit 1 AND Text Edit 2
procedure TFDatenauswertung.SucheCallbackEdit26(Sender: TBaseVirtualTree; Node: PVirtualNode; Data: Pointer; var Abort: Boolean);
var
  DatenMB : TOMBSerie;
begin
  DatenMB := TOMBSerie(VST.GetNodeData(Node)^);
  VST.IsVisible[Node] := ((EDManFilter1.Text='') and (EDManFilter2.Text='')) or
                         (Pos(LowerCase(EDManFilter1.Text), LowerCase(DatenMB.Ereignis))>0) and
                         (Pos(LowerCase(EDManFilter1.Text), LowerCase(DatenMB.Bereich))>0) and
                         (Pos(LowerCase(EDManFilter2.Text), LowerCase(DatenMB.Ereignis))>0) and
                         (Pos(LowerCase(EDManFilter2.Text), LowerCase(DatenMB.Bereich))>0);
  PBFortschritt.Position := PBFortschritt.Position +1;
  if PBFortschritt.Position = PBFortschritt.Max then
    PBFortschritt.Position := 0;
end;
//Suche in Spalte Bereich AND Teilnehmer nach Text Edit 1 AND Text Edit 2
procedure TFDatenauswertung.SucheCallbackEdit27(Sender: TBaseVirtualTree; Node: PVirtualNode; Data: Pointer; var Abort: Boolean);
var
  DatenMB : TOMBSerie;
begin
  DatenMB := TOMBSerie(VST.GetNodeData(Node)^);
  VST.IsVisible[Node] := ((EDManFilter1.Text='') and (EDManFilter2.Text='')) or
                         (Pos(LowerCase(EDManFilter1.Text), LowerCase(DatenMB.Bereich))>0) and
                         (Pos(LowerCase(EDManFilter1.Text), LowerCase(DatenMB.Teilnehmer))>0) and
                         (Pos(LowerCase(EDManFilter2.Text), LowerCase(DatenMB.Bereich))>0) and
                         (Pos(LowerCase(EDManFilter2.Text), LowerCase(DatenMB.Teilnehmer))>0);
  PBFortschritt.Position := PBFortschritt.Position +1;
  if PBFortschritt.Position = PBFortschritt.Max then
    PBFortschritt.Position := 0;
end;
Also Danke nochmal an alle und

Gruß Jens
Jens Hartmann
Das Leben selber ist zu kurz, also nutze jeden Tag wie er kommt.
  Mit Zitat antworten Zitat