AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

kurze Frage zu Listview und Programmabsturz

Ein Thema von RedShakal · begonnen am 11. Sep 2009 · letzter Beitrag vom 11. Sep 2009
Antwort Antwort
RedShakal
(Gast)

n/a Beiträge
 
#1

kurze Frage zu Listview und Programmabsturz

  Alt 11. Sep 2009, 18:59
Hallo, ich verwende in meinem Programm eine Listview. Immer wenn ein Eintrag angeklickt wird, wird ein Bild von einem Server geladen und in TImage angezeigt. Dabei stehe ich aber leider vor einem Problem:

Wenn ich die Procedure ListviewClick aufrufe, funktioniert zwar alles Prima, aber sobald man auf eine Leere Spalte klickt, stürzt das Programm mit einem Memory Access Fehler ab.

Wenn man das gleiche mit der Procedure OnSelectItem macht, passiert der Fehler zwar nicht wenn man in eine leere Spalte klickt, aber er kommt sobald man das 2te mal einen Eintrag auswählen will. D.h. Wenn man das erste mal Klickt funktioniert alles Super. Klickt man das 2te mal etwas an, Crasht das Programm.

Ich poste einfach mal den Codefetzen, vielleicht weiß ja irgentwer woran es liegen könnte.

Delphi-Quellcode:
procedure TForm3.MaplistSelectItem(Sender: TObject; Item: TListItem;
  Selected: Boolean);
var
  Stream : TFileStream;
begin
  Maplist.Enabled := false; // soll verhindern das geklickt wird während ein Download läuft. ( Programmabsturz )
  Stream := TFileStream.Create(Maplist.Selected.Caption+'.png', fmCreate); // Cache erstellen ( Windows Temp führt bei Vista zu Problemen ka wieso )
  Downloadstatus.Get('http://***/'+Maplist.Selected.Caption+'.png', Stream); // Dateidownload
  Stream.free;
  Minimap.Picture.LoadFromFile(Maplist.Selected.Caption+'.png'); // Cache laden
  deletefile(Maplist.Selected.Caption+'.png'); // Nach dem Laden löschen
  Maplist.Enabled := true; // Eintrag wieder freigeben
end;
Maplist = Listview
Minimap = TImage
Downloadstatus = IdHttp

Hoffe mir kann jemand helfen
  Mit Zitat antworten Zitat
TheReaper

Registriert seit: 27. Feb 2003
Ort: chemnitz
90 Beiträge
 
Delphi 2005 Personal
 
#2

Re: kurze Frage zu Listview und Programmabsturz

  Alt 11. Sep 2009, 19:53
Das ist ein Bug der ListView bei den ältern Delphiversionen. Schreib einfach in die erste Zeile deines OnClick Ereignises:
if ListView1.Selected = nil then exit; Dann dürfte das Problem umgangen sein.
  Mit Zitat antworten Zitat
RedShakal
(Gast)

n/a Beiträge
 
#3

Re: kurze Frage zu Listview und Programmabsturz

  Alt 11. Sep 2009, 20:00
Danke, das hat das Problem gelöst. Irgentwie habe ich aber das Gefühl das die Ladezeiten jetzt zu lang sind.

Bei einem Listview wechsel vergehen zwischen Bild download und Anzeigen teilweise fast 3 Sekunden

( Habe DSL 16000 und keines der PNG Bilder ist größer als 40 KB )

Woran kann das liegen?
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:53 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz