Hallo Wissende!
Ich habe ein kleines Programm, in dem bestimmte Bilder angezeigt und geladen werden sollen. Wenn man das Projekt läd, öffne ich ein extra Fenster, welches das Vorhandensein der Bild prüft.
Je nach Zustand wird in den Listview etwas reingeschrieben. Komischerweise wird aber die Listview beim 2. Aufruf, also wenn man ein anderes Projekt läd irgendwie resetet. Ich benutze nur eine Spalte und die hat beim ersten mal eine Breite von 100% und beim 2 Aufruf nur noch 100px. Hier mein Code
Delphi-Quellcode:
procedure Tautocheck.DoAutoCheck;
var
i,ErrCount:integer;
myList:TListItem;
begin
list_log.Clear; // hier lösche ich den vorherigen inhalt
ErrCount:=0;
for i:=0 to Form1.list_pics.Count-1 do // in dieser liste stehen die bildpfade
begin
myList:=list_log.Items.Add;
if FileExists(form1.list_pics.items[i]) then
begin
myList.Caption:=form1.list_pics.items[i]+' vorhanden...';
myList.ImageIndex:=12;
end
else
begin
myList.Caption:=form1.list_pics.items[i]+' nicht vorhanden!';
myList.ImageIndex:=13;
Inc(ErrCount);
end;
end;
lbl_info.Caption:='Es wurden '+inttostr(ErrCount)+' Fehler gefunden!';
end;
Was mache ich da falsch?
Und wenn es genehmigt ist noch eine dazugehörende Frage. Die Procedure rufe ich im FormShow auf, sehe das Formular aber erst, wenn die komplette Prüfroutine beendet ist...Warum nur???
Delphi-Quellcode:
procedure Tautocheck.FormShow(Sender: TObject);
begin
CenterForm(self);
if autocheck.Visible=true then DoAutoCheck;
end;