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