//Insert
procedure readAccessoires();
var
i : Integer;
Data : PSelectedZubehoer;
begin
//ZubehoerListe Laden
dbExecute(RsZub, 'SELECT * FROM ZubehoerSW ORDER BY ID');
BereSW.ZubListe1.Clear;
if (not RsZub.IsEmpty) then begin
RsZub.First;
while not(RsZub.EOF) do begin
Data := New(PSelectedZubehoer);
Data^.ID:= RsZub.FieldByName('ID').AsInteger;
Data^.Name:= RsZub.FieldByName(FeldD).AsString;;
Data^.Ausgewaehlt := False;
BereSW.ZubListe1.Items.AddObject(Data^.Name, TObject(Data));
RsZub.Next;
end;
end;
//Größte ID holen und von hier jezt die ID's für Selbst def. geben
dbExecute(RsZub, 'SELECT * FROM ZubehoerSW WHERE ID = (SELECT MAX(ID) FROM ZubehoerSW);');
Data := New(PSelectedZubehoer);
Data^.ID:= (RsZub.FieldByName('ID').AsInteger + 1);
//IF (RsCalc.FieldByName('Zubehoer' + (i + 1).ToString).AsString <> '') then Data^.Name:= RsCalc.FieldByName('Zubehoer' + (i + 1).ToString).AsString
{else} Data^.Name:= '...';
Data^.Ausgewaehlt := False;
BereSW.ZubListe1.Items.AddObject(Data^.Name, TObject(Data));
end;
//Insert with pre-set Values
//String is Binary (Example: 101000101) 1 for checked 0 for unchecked
procedure AccOfData(AccStr: String);
var
N, i: Integer;
Data : PSelectedZubehoer;
begin
laden:= True;
//write all items in first box
For i := 0 to BereSW.ZubListe2.Items.Count do begin
Data:= Global.ZubGetData(BereSW.ZubListe2.Items.Objects[i]);
Data^.Ausgewaehlt:= False;
Global.ZubChangeList(i, BereSW.ZubListe2, BereSW.ZubListe1);
end;
//check if some items should get into second box
for N := 0 to BereSW.ZubListe1.Items.Count - 1 do begin
if(N > AccStr.Length) or (AccStr[N + 1] = '9')then begin
laden:= False;
BereSW.ZubListeClick(Nil);
Exit;
end;
Data:= Global.ZubGetData(BereSW.ZubListe1.Items.Objects[N]);
if(AccStr[N + 1] = '1')then begin
Data^.Ausgewaehlt:= True;
Global.ZubChangeList(N, BereSW.ZubListe1, BereSW.ZubListe2);
{end else begin
Data^.Ausgewaehlt:= False;
Global.ZubChangeList(N, BereSW.ZubListe2, BereSW.ZubListe1);
}end;
end;
BereSW.ZubListeClick(Nil);
laden:= False;
end;