Onderstaande code heeft altijd goed gewerkt met een gesequenste applicatie (gevirtualiseeerd). Tenminste zolang hij op een XP machine draaide.
Na opstarten via Citrix (of eigenlijk draaien in een Win2003 schil) valt hij ineens over de laatste Free opdracht.
Volgens mij maakt het voor Free niet uit of het object bestaat of niet.
Is win2003 ineens anders geworden met afhandeling van objceten?
Code:
try
F_PrinterInfoRecord := TPrinterInfoRecord(ComboBox_Printers.Items.Objects[ComboBox_Printers.ItemIndex]);
if (F_PrinterInfoRecord.PrinterName = '') then
begin //print to screen
Label_UsedSystemPrinter.Caption := '-';
Label_SystemPrinterStatus.Caption := '-';
end
else
begin
Label_UsedSystemPrinter.Caption := F_PrinterInfoRecord.PrinterName;
Label_SystemPrinterStatus.Caption := '-';
Printer.PrinterIndex := Printer.Printers.IndexOf(F_PrinterInfoRecord.PrinterName);
ComboBox_PaperBins.Clear;
F_StringList := TStringList.Create;
GetBinNames(Printer, F_StringList);
ComboBox_PaperBins.Items.Assign(F_StringList);
ComboBox_PaperBins.ItemIndex :=
GetIndexOfBin(ComboBox_PaperBins.Items, F_PrinterInfoRecord.PaperBin);
end;
finally
F_StringList.Free;
end;
Bookmarks