Hallo,
ich habe folgenden Quelltext erstellt:
Delphi-Quellcode:
var StillFiles: Integer;
begin
Image.Proportional := true;
Image.Stretch := true;
FFileList := TStringList.Create;
while (FindFirst(FFilename,faAnyFile,FSearch)=0) and (StillFiles=0) do
begin
FFileList.Add(FSearch.Name);
StillFiles := FindNext(FSearch);
end;
FindClose(FSearch);
ListBox1.Items.Assign(FFileList); //Die soll zum Testen sein, ob die Dateien gelesen wurden
end;
Ich will damit eine Diashow erzeugen, indem ich die Dateinamen (Bilder) meines Verzeichnisses in eine Stringliste einlese um später per Timerereignis einen Stringlistenindex zu inkrementieren und so die einzelnen Dateien in eine TImage Komponente lade mit Image.Picture.LoadFromFile(FFileList.Strings[Index].
Leider wird mit dem obigen Quelltext keine Datei eingelesen und so bleibt die Listbox auch leer. Warum? Was mache ich falsch? Ich habe mir auch diesen Quelltext aus
http://forum.delphi-treff.de/showthr...-einer-Diashow
Delphi-Quellcode:
procedure TFHaupt.SBDiaClick(Sender: TObject);
var
sr : TSearchRec;
start : Cardinal;
begin
extension := extractfileext(OpenPictureDialog1.FileName);
if FindFirst(extractFilepath(OpenPictureDialog1.FileName)+'*'+extension,
faAnyFile, sr) = 0 then
begin
repeat
image1.Picture.LoadFromFile(sr.Name);
image1.Update;
Label1.Caption:=sr.Name;
start := GetTickCount;
repeat
application.ProcessMessages;
until GetTickCount > (start + warten);
repeat
application.ProcessMessages;
if Bruch then break;
until weiter;
if Bruch then break;
until FindNext(sr) <> 0;
FindClose(sr);
end;
end;
Hieraus habe ich mir meinen Quelltext darüber gebaut.
Weil es so leider nicht funktioniert:
Delphi-Quellcode:
procedure TBildbetrachter.SpTBXItem2Click(Sender: TObject);
var
space: String;
begin
//
space := ' ';
if FFilename='' then
begin
if PicsDialog.Execute then
begin
FFilename := PicsDialog.FileName;
Image.Picture.LoadFromFile(FFilename);
Bildbetrachter.Caption := Bildbetrachter.Caption + space + FFileName;
Image.Update;
end;
if FindFirst(FFilename,faAnyFile,FSearch) = 0 then
Timer.Enabled := true;
end;
end;
procedure TBildbetrachter.TimerTimer(Sender: TObject);
var space: String;
begin
space := ' ';
if FindNext(FSearch) = 0 then
begin
Bildbetrachter.Caption := Bildbetrachter.Caption + space + FSearch.Name;
Image.Picture.LoadFromFile(FSearch.Name);
Image.Update;
end;
//Als ich vorher ShowMessage('Timer ausgelöst") testweise hier stehen hatte, wurde der Timer ausgelöst.
end;
Nach dem ButtonClick sehe ich nur das erste Bild. Ich habe das Timer Intervall auf 10 Sekunden eingestellt.
Nachdem das erste Bild angezeigt wurde, kann ich den Dialog zur Dateiauswahl nicht mehr aufrufen.
Was ist hier falsch. Ich werde ein weiteres Thema eröffnen "Mediaplayer verstehen. Denn diesen wollte ich zuvor einsetzen aber der hat nur ein OnClick Ereignis, das wohl ausschliesslich zur Auswertung in Frage kommt. Die Fragen hierzu folgen dort.
.
.
.
.
Damit der Topf nicht explodiert, lässt man es ab und zu mal zischen.