AGB  ·  Datenschutz  ·  Impressum  







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

Timer funktionieren nicht

Ein Thema von Ykcim · begonnen am 16. Okt 2018 · letzter Beitrag vom 16. Okt 2018
Antwort Antwort
Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
856 Beiträge
 
Delphi 12 Athens
 
#1

AW: Timer funktionieren nicht

  Alt 16. Okt 2018, 16:08
Ich hätte Euch ja gerne an dem Code teilhaben lassen, nur was sollte ich Euch schicken? Mein ganzes Programm? Ich habe gerade einfach auf gut Glück die Create-Anweisung deaktiviert und siehe da, der Fehler taucht nicht mehr auf... Ich dachte schon, ich könnte eine Erfolgsmeldung ausgeben und habe überprüft, an welcher Stelle das Problem entsteht. Es ist in einer Unterprocedure einer Unterprocedure...

Aber leider für mich nit nachvollziehbar...

Delphi-Quellcode:
procedure TForm_Pinnwand.Load_All;
var MyPath: string;
begin
   MyPath:=DatenPfad+GetComputerName+'\'+'O1.pdf';
   Load_PDF(PdfView_O1, MyPath); //Hier entsteht der Fehler, aber nur bei der ersten Datei? Nehme ich die Zeile raus, läuft es...
   MyPath:=DatenPfad+GetComputerName+'\'+'O2.pdf';
   Load_PDF(PdfView_O2, MyPath);
   MyPath:=DatenPfad+GetComputerName+'\'+'O3.pdf';
   Load_PDF(PdfView_O3, MyPath);
   MyPath:=DatenPfad+GetComputerName+'\'+'O4.pdf';
   Load_PDF(PdfView_O4, MyPath);
   MyPath:=DatenPfad+GetComputerName+'\'+'U1.pdf';
   Load_PDF(PdfView_U1, MyPath);
   MyPath:=DatenPfad+GetComputerName+'\'+'U2.pdf';
   Load_PDF(PdfView_U2, MyPath);
   MyPath:=DatenPfad+GetComputerName+'\'+'U3.pdf';
   Load_PDF(PdfView_U3, MyPath);
   MyPath:=DatenPfad+GetComputerName+'\'+'U4.pdf';
   Load_PDF(PdfView_U4, MyPath);
   Form_Orga;
end;
Hier werden bis zu 8 pdf-Dokumente geladen... Geladen werden alle, auch das erste, aber wenn das erste geladen wird, dann gehen alle Timer aus...
Das ist die Lade-Procedure:
Delphi-Quellcode:
procedure TForm_Pinnwand.Load_PDF(PDF_Viewer: TPDFView; Datei: string);
begin
   if FileExists(Datei) then begin
      PDF_Viewer.Pdf.Active:=false;
      PDF_Viewer.Pdf.FileName:=Datei;
      PDF_Viewer.PDF.Active:=true;
      PDF_Viewer.Active:=true;
   end
   else begin
      PDF_Viewer.Pdf.Active:=false;
      PDF_Viewer.Pdf.FileName:='';
      PDF_Viewer.Pdf.Active:=false;
      PDF_Viewer.Pdf.FileName:='';
      PDF_Viewer.Active:= false;
      PDF_Viewer.Repaint;
   end;
end;
Finde ich nicht logisch...
Patrick
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#2

AW: Timer funktionieren nicht

  Alt 16. Okt 2018, 16:19
Bist du sicher, dass der Timer aus geht (Enabled False) und nicht einfach nur hängen bleibt? Das sind zwei sehr große Unterschiede.
  Mit Zitat antworten Zitat
Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
856 Beiträge
 
Delphi 12 Athens
 
#3

AW: Timer funktionieren nicht

  Alt 16. Okt 2018, 16:20
Stimmt, der Timer bleibt enabled, aber funktioniert nicht...

Übrigens, wenn die Datei nicht gefunden wird, weil sie nicht da, dann tritt der Fehler auch nicht auf. Also spielt er sich irgendwie hier ab
Delphi-Quellcode:
procedure TForm_Pinnwand.Load_PDF(PDF_Viewer: TPDFView; Datei: string);
begin
   if FileExists(Datei) then begin
      PDF_Viewer.Pdf.Active:=false;
      PDF_Viewer.Pdf.FileName:=Datei;
      PDF_Viewer.PDF.Active:=true;
      PDF_Viewer.Active:=true;
   end
Patrick

Geändert von Ykcim (16. Okt 2018 um 16:24 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Timer funktionieren nicht

  Alt 16. Okt 2018, 16:26
ich vermute stark das dein PDFdingens ein eigener thread ist, der timer hingegen im hauptthread liegt.

teste doch mal den externen multi media timer, was passiert? (der läuft im eigenen thread und sollte IMMER funzen)
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
856 Beiträge
 
Delphi 12 Athens
 
#5

AW: Timer funktionieren nicht

  Alt 16. Okt 2018, 16:31
Ich habe gerade die PDF-Komponenten auf dem Form verglichen. Im ersten hatte ich noch ein OnPaint-Ereignis, indem aber nur die Procedure FormOrga aufgerufen wird. Die habe ich gerade wieder herausgenommen und jetzt funzts. Ich fürchte, damit habe ich mein Programm ziemlich beschäftigt, sodass deshalb die Timer nicht mehr gearbeitet haben.

Wie ihr schon sagtet - zu 100% ein eigener Fehler.

Vielen Dank für die Unterstützung!
Patrick
Patrick
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#6

AW: Timer funktionieren nicht

  Alt 16. Okt 2018, 16:48
Nicht dein Programm hast du damit beschäftigt, sondern den Main-Thread. Sind auch große Unterschiede
  Mit Zitat antworten Zitat
Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
856 Beiträge
 
Delphi 12 Athens
 
#7

AW: Timer funktionieren nicht

  Alt 16. Okt 2018, 16:56
Habe das Thema mit den Threads noch nicht verstanden. Ich arbeite immer nur mit dem Main-Thread...
Gibt es da eine einfache Erklärung für - ich lerne gerne...

Vielen Dank
Patrick
Patrick
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Timer funktionieren nicht

  Alt 16. Okt 2018, 16:58
Stimmt, der Timer bleibt enabled, aber funktioniert nicht...

Übrigens, wenn die Datei nicht gefunden wird, weil sie nicht da, dann tritt der Fehler auch nicht auf. Also spielt er sich irgendwie hier ab
Delphi-Quellcode:
procedure TForm_Pinnwand.Load_PDF(PDF_Viewer: TPDFView; Datei: string);
begin
   if FileExists(Datei) then begin
      PDF_Viewer.Active:=false; // kenne das nicht aber da der eine active auf false steht sollte vielleicht der andere das auch?
      PDF_Viewer.Pdf.Active:=false;
      PDF_Viewer.Pdf.FileName:=Datei;
      PDF_Viewer.PDF.Active:=true;
      PDF_Viewer.Active:=true;
   end
siehe den edit da.


oder vielleicht gar so?
Delphi-Quellcode:
procedure TForm_Pinnwand.Load_PDF(PDF_Viewer: TPDFView; Datei: string);
begin
   if FileExists(Datei) then begin
      PDF_Viewer.Active:=true;
      PDF_Viewer.Pdf.Active:=false;
      PDF_Viewer.Pdf.FileName:=Datei;
      PDF_Viewer.PDF.Active:=true;
   end
Gruß vom KodeZwerg
  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 01:26 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz