Einzelnen Beitrag anzeigen

torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#1

Listview resetet seine Spaltenbreite

  Alt 8. Jul 2005, 14:38
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;
Danke
Tom
  Mit Zitat antworten Zitat