Entwickler-Ecke

Sonstiges (Delphi) - Boolschen Wert aus Integer beziehen


mexx - Di 10.07.07 13:26
Titel: Boolschen Wert aus Integer beziehen
Ich hole mir aus einer Datenbank Integerwerte, die nur 1 oder 0 sein können. Diese Werte sollen als Angabe für ein Visible false oder true einer Elementes dienen. Hier der Code!


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
  with MainData do begin
   if AppDatabase.Connected = true then begin
    QuerySuchMaske.ParamByName('FORM_ID').AsInteger := AppForm.Tag;
    QuerySuchMaske.Open;
    for i:=1 to QuerySuchMaske.Fields.Count do begin
     SearchDataMenu.Items[i].Visible := QuerySuchMaske.Fields[1].AsBoolean; //<-- Marker
    end;
    QuerySuchMaske.Close;
    end;
  end;


An markierter Stelle erhalte ich die Meldung, dass der Intergerwert nicht als boolscher Wert interpetiert werden kann. Nun habe ich wage in Erinnerung, dass eine Funktion gab, die mir bei Eingabe eines Integerwertes wie 0 oder 1, false oder true ausliefert. Wie hieß diese Funktion?

Alternativ könnte ich den Interwert prüfen und darauf hin, true oder false setzen, aber so ist es schöner!


Logikmensch - Di 10.07.07 13:35

Hallo,

schreib doch einfach:


Delphi-Quelltext
1:
SearchDataMenu.Items[i].Visible := QuerySuchMaske.Fields[1].AsInteger=1;                    


Das sollte dann doch gehen, d.h. falls Fields[1] tatsächlich einen Integer enthält.


Logikmensch - Di 10.07.07 13:37

Besser ist vielleicht auch


Delphi-Quelltext
1:
SearchDataMenu.Items[i].Visible := QuerySuchMaske.Fields[1].AsBoolean <> 0;                    


Ist aber (fast) nur Kosmetik.


mexx - Di 10.07.07 13:37

Ach genau, das liefert ja auch true oder false. Thanks für den Gedächtnisschups!