Einzelnen Beitrag anzeigen

Delphi Code Anfänger

Registriert seit: 30. Jan 2008
72 Beiträge
 
#9

Re: Checkbox - Problem mit der Reihenfolge

  Alt 1. Feb 2008, 15:55
Danke!

Ich habe nur ein Problem.

Ich kann den Code nicht in meinen einbauen. Ich weiß nicht so recht wie ich das umbauen soll.

Die Codestelle die ich benutze habe ich irgendwo aus diesem Forum. Weiß leider nicht mehr genau woher.

Das ist der Code:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
const InitialText = 'SELECT * FROM tabelle WHERE ';
var Boxes: array[0..20] of TCheckbox;
    sText: string;
    i: integer;
    s: TStrings // hier habe ich es definiert
begin
  Boxes[0] := wert1;
  Boxes[1] := wert2;
  Boxes[2] := wert3;
  Boxes[3] := wert4;
  .....

sText := InitialText;
  for i := Low(Boxes) to High(Boxes) do
    if Boxes[i].Checked then
      sText := sText + 'wert LIKE ' + QuotedStr('%' + Boxes[i].Name + '%') +
              ' AND ';
    if Length(sText) > Length(InitialText) then
    begin
      Delete(sText,Length(sText) - 4, Length(sText));
      Query.SQL.Text := sText;
      Query.Open;
  end;
end;
So habe ich das jetzt gemacht:

Delphi-Quellcode:
sText := InitialText;
  for i := 0 to Pred(MAX_BOXES) do
    s.Add(Format('%s wert %s LIKE %s', [
      IfThen(s.Count = 1, ' AND'),
      IfThen(not Boxes[i].Checked, 'NOT'),
      QuotedStr('%' + Boxes[i].Name + '%')
    ]));
  sText := sText + s.Text;
  s.Free;
    if Length(sText) > Length(InitialText) then
    begin
      Delete(sText,Length(sText) - 4, Length(sText));
      Query.SQL.Text := sText;
      Query.Open;
  end;
end;
Hm ich glaube da habe ich einen kompletten Denkfehler drinn.

Ich glaube das geht so gar nicht.

Sorry ich hätte schon am Anfang den ganzen Code schreiben sollen.
  Mit Zitat antworten Zitat