AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Programm pausieren aber dennoch ansprechbar lassen

Programm pausieren aber dennoch ansprechbar lassen

Ein Thema von cRayZo · begonnen am 26. Aug 2008 · letzter Beitrag vom 28. Aug 2008
Antwort Antwort
cRayZo

Registriert seit: 30. Jul 2007
156 Beiträge
 
Delphi 6 Personal
 
#1

Programm pausieren aber dennoch ansprechbar lassen

  Alt 26. Aug 2008, 22:06
ich möchte eine Prozedur x min nach einem buttonclickneustarten. Es ist die onvisible prozedur meines Programmes. Im Moment habe ich das so gelöst:
Delphi-Quellcode:
Test.Visible:=False;
sleep(strtoint(Einstellungen.Edit1.Text)*60000);
Hauptseite.Visible:=False;
Test.Visible:=True;
Mein Ehrgeiz:
es soll möglich sein, während der Zeit, wo das Programm minimiert ist, weiter mit diesem programm zu arbeiten (zB. über tray Icon wieder öffnen etc)
Ich weiß dass das mit Threads realisierbar ist, aber ich habe keine Ahnung von Threads, und wenn ich das google, bekomm ich nur seiten mit 3 seiten Quellcode.
Ich denke, das geht leichter oder?
kann mir jemand die grundlegenden Züge von Threads erklären? wäre super!!
  Mit Zitat antworten Zitat
Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#2

Re: Programm pausieren aber dennoch ansprechbar lassen

  Alt 26. Aug 2008, 22:16
Hi,

dieses Tutorial von Lossy eX ist sehr gut und hilft dir sicherlich.
  Mit Zitat antworten Zitat
Benutzerbild von gsh
gsh

Registriert seit: 24. Okt 2004
1.542 Beiträge
 
Delphi XE Architect
 
#3

Re: Programm pausieren aber dennoch ansprechbar lassen

  Alt 26. Aug 2008, 23:09
Nimm doch einfach einen Timer (ist im Prinzip ein einfacher Thread der nach einer Zeit eine Aktion auslöst)
Alex
"Sage nicht alles, was du weißt, aber wisse alles, was du sagst!" Matthias Claudius
"Wer sich über Kritik ärgert, gibt zu, daß er sie verdient hat." Tacitus
  Mit Zitat antworten Zitat
cRayZo

Registriert seit: 30. Jul 2007
156 Beiträge
 
Delphi 6 Personal
 
#4

Re: Programm pausieren aber dennoch ansprechbar lassen

  Alt 26. Aug 2008, 23:50
Zitat von gsh:
Nimm doch einfach einen Timer (ist im Prinzip ein einfacher Thread der nach einer Zeit eine Aktion auslöst)


NATÜRLICH

mann bin ich blöd..
wieso leicht, wenns auch kompliziert geht ne?
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Programm pausieren aber dennoch ansprechbar lassen

  Alt 27. Aug 2008, 00:38
Zitat von gsh:
Nimm doch einfach einen Timer (ist im Prinzip ein einfacher Thread der nach einer Zeit eine Aktion auslöst)
Das war nicht nur knapp da neben. Ein Timer wartet auf eine WM-TIMER Nachricht die von Windows an das Fenster des Timers gesendt wird. Ein Timer läuft auch im Threadkontext des zughörigen Fensters. Wenn dieser Thread mit einer Aufgabe ausgelastet ist und somit keine WM_TIMER Nachrichten abholen kann, steht auch der Timer. Ein zusätzlicher Thread hat einen eigenen Kontext mit einem eigenem Stack und eigener CPU-Zeit.
Deswegen ist ein Timer nicht mit einem Thread zu vergleichen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von gsh
gsh

Registriert seit: 24. Okt 2004
1.542 Beiträge
 
Delphi XE Architect
 
#6

Re: Programm pausieren aber dennoch ansprechbar lassen

  Alt 27. Aug 2008, 00:47
Zitat von Luckie:
Zitat von gsh:
Nimm doch einfach einen Timer (ist im Prinzip ein einfacher Thread der nach einer Zeit eine Aktion auslöst)
Das war nicht nur knapp da neben. Ein Timer wartet auf eine WM-TIMER Nachricht die von Windows an das Fenster des Timers gesendt wird. Ein Timer läuft auch im Threadkontext des zughörigen Fensters. Wenn dieser Thread mit einer Aufgabe ausgelastet ist und somit keine WM_TIMER Nachrichten abholen kann, steht auch der Timer. Ein zusätzlicher Thread hat einen eigenen Kontext mit einem eigenem Stack und eigener CPU-Zeit.
Deswegen ist ein Timer nicht mit einem Thread zu vergleichen.
oh wieder was dazu gelernt ... hab das nur irgendwo gelesen ... naja aber als Lösung den Timer zu verwenden stimmt ja
Alex
"Sage nicht alles, was du weißt, aber wisse alles, was du sagst!" Matthias Claudius
"Wer sich über Kritik ärgert, gibt zu, daß er sie verdient hat." Tacitus
  Mit Zitat antworten Zitat
cRayZo

Registriert seit: 30. Jul 2007
156 Beiträge
 
Delphi 6 Personal
 
#7

Re: Programm pausieren aber dennoch ansprechbar lassen

  Alt 28. Aug 2008, 17:27
okay also läuft, ist ja auch eigentlich kein Problem, aber nochmal eine Grundsätzliche Frage, hier am beispiel des Timers.

Ich habe verscuht mit try except einen Fehler abzufangen, aber das klappt nicht.
Der Fehler kann in der zweiten Zeile eigentlich gar nciht auftreten, weil die nur abläuft, wenn die erste ohne Fehler ist:
Delphi-Quellcode:
procedure TEinstellungen.Button1Click(Sender: TObject);
var
testi:real;
blubb:integer;
begin
blubb:=0;
        try testi:=strtofloat(Edit1.Text);
        except
                begin showmessage('der Wert muss eine Zahl sein!'#13'z.B. "13" oder "12,34"'); blubb:=1
                end
        end;

if blubb=0
then
        begin showmessage('erfolgreich'); Test.Timer1.Interval:=round(testi*60000); Einstellungen.Visible:=False;
        end;
end;
woran liegt das?
  Mit Zitat antworten Zitat
LuCSteR

Registriert seit: 16. Sep 2005
168 Beiträge
 
#8

Re: Programm pausieren aber dennoch ansprechbar lassen

  Alt 28. Aug 2008, 17:46
Poste diesen Code doch bitte mal formatiert. Da bekommt man ja Kopfschmerzen beim hingucken
  Mit Zitat antworten Zitat
cRayZo

Registriert seit: 30. Jul 2007
156 Beiträge
 
Delphi 6 Personal
 
#9

Re: Programm pausieren aber dennoch ansprechbar lassen

  Alt 28. Aug 2008, 17:48
wenn es so besser ist?^^
ich komm auch ohne gut klar, ist ja nur ein mini-code
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 23:45 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