Einzelnen Beitrag anzeigen

Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.186 Beiträge
 
Delphi 11 Alexandria
 
#1

Abfrage scheint nicht zu funktionieren

  Alt 30. Mär 2017, 16:15
Delphi-Version: XE8
Hi zusammen
Ich habe folgendes Konsttrukt:
Delphi-Quellcode:
    if CmbxCategorys.Items.Objects[0] <> nil then
      ApplicationManager.CategoryKey := Integer(CmbxCategorys.Items.Objects[0]);
Der Sinn ist, den (lesenden) Zugriff auf die Compobox nur zuzulassen, wenn da auch wirklich was drinsteht, weil es sonst eine AV gibt - aber genau diese gibt es (Listenindex ausserhalb...).
Wieso das? Abfragen, ob ein Objekt nil ist, laufen sonst meiner Erinnerung nach immer ohne AV durch...

Etwas nachdenken bringt oft "Wunder", und so habe ich die Zeilen etwas abgeändert:
Delphi-Quellcode:
    if CmbxCategorys.Items.Count > 0 then
    begin
      ApplicationManager.Category := CmbxCategorys.Items[0];
      if CmbxCategorys.Items.Objects[0] <> nil then
        ApplicationManager.CategoryKey := Integer(CmbxCategorys.Items.Objects[0]);
    end;
In dieser Compobox werden die in der DB vorhandenen Kategorien mit ihren Primärschlüsselwerten aufgelistet, sofern die entsprechende Tabelle auch solche enthält.
Das ist um Beispiel beim ersten Programmstart nicht so.

Trotzdem erstaunt mich die Reaktion - grundsätzlich könnten ja items vorhandensein, die zusätzlichen Objekte aber nicht...

Des weiteren könnte ein Programm - wie meines zum Bleistift - eine Auswahlbox zur Verfügung stellen, die erstmal leer ist und erst im weiteren Programmverlauf mit Daten gefüllt wird.

Gruss
Delbor
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat