AGB  ·  Datenschutz  ·  Impressum  







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

Timer startet immer neu obwohl disabled??

Ein Thema von rhodan · begonnen am 19. Jan 2007 · letzter Beitrag vom 19. Jan 2007
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von rhodan
rhodan

Registriert seit: 4. Okt 2005
Ort: Hamburg
150 Beiträge
 
Delphi 7 Personal
 
#1

Timer startet immer neu obwohl disabled??

  Alt 19. Jan 2007, 21:33
moin Leute

Ich hab nur kurz ne Frage warum sich dieser timer immer und immer wiederholt bzw. neu started??Irgendwo muss ein Fehler drin sein :S

Delphi-Quellcode:
procedure TForm1.Timer4Timer(Sender: TObject);
var
  c: Char;
  i: integer;
begin
if invchecked2.Visible=false then
timer5.Enabled:=true;
if invchecked2.visible=true then
begin
// sellshop

keybd_event(VK_F2, 0, 0, 0);
Keybd_Event(VK_F2,0,KEYEVENTF_KEYUP,0);
sleep (1000);
setcursorpos (746,193);
sleep (1000);
mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
sleep(5000);
setcursorpos (853,396);
mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
sleep (1000);

//EK

begin
  if length(Edit1.Text)> 0 then
  begin
    for i:= 0 to length(Edit1.Text) do
    begin
    c:= Edit1.text[i];
      Case c of
        '1'..'9' :
          begin
          c:= upcase(c);
          keybd_event(ord(c),0,0,0);
          keybd_event(ord(c),0,keyeventf_keyup,0);
          end;
        'A'..'Z':
          begin
          keybd_event(vk_Shift,0,0,0);
          keybd_event(ord(c),0,0,0);
          keybd_event(vk_Shift,0,keyeventf_keyup,0);
          keybd_event(ord(c),0,keyeventf_keyup,0);
          end;
        'a'..'z':
          begin
          c:= upcase(c);
          keybd_event(ord(c),0,0,0);
          keybd_event(ord(c),0,keyeventf_keyup,0);
          end;
        else
        begin
        keybd_event(ord(c),0,0,0);
        keybd_event(ord(c),0,keyeventf_keyup,0);
        end;
      end;
    end;
  end;
end;
sleep(1000);
setcursorpos (471,412);
sleep(1000);
mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
sleep(500);
mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
sleep(1000);

// Caution Window

if checkbox1.checked=true then
begin
mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
sleep(500);
mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
sleep(1000);
end;

//Anzahl

begin
  if length(Edit2.Text)> 0 then
  begin
    for i:= 0 to length(Edit2.Text) do
    begin
    c:= Edit2.text[i];
      Case c of
        '1'..'9' :
          begin
          c:= upcase(c);
          keybd_event(ord(c),0,0,0);
          keybd_event(ord(c),0,keyeventf_keyup,0);
          end;
        'A'..'Z':
          begin
          keybd_event(vk_Shift,0,0,0);
          keybd_event(ord(c),0,0,0);
          keybd_event(vk_Shift,0,keyeventf_keyup,0);
          keybd_event(ord(c),0,keyeventf_keyup,0);
          end;
        'a'..'z':
          begin
          c:= upcase(c);
          keybd_event(ord(c),0,0,0);
          keybd_event(ord(c),0,keyeventf_keyup,0);
          end;
        else
        begin
        keybd_event(ord(c),0,0,0);
        keybd_event(ord(c),0,keyeventf_keyup,0);
        end;
      end;
    end;
  end;
end;
sleep(1000);
mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
sleep(500);
mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
sleep(1000);

timer5.Enabled:=true;
timer4.enabled:=false;
end;
end;
Kurze erklärung...ich habe 20 fenster jeweils mit nem kleinen bild drauf, die bilder (invchecked)sind alle unsichtbar...wenn ich im laufenden program drauflicke werden die pics sichtbar um zu markieren welches der 20 fenster ich selektiert habe...zusätzlich ist auf jedem der fenster ein timer..., wenn ich am ende auf OK drücke sollen nur die timer der fenster ausgeführt werden welche der user selektiert hat, sprich wo die bilder sichtbar sind...daher:

Delphi-Quellcode:
if invchecked2.Visible=false then
timer5.Enabled:=true;
if invchecked2.visible=true then
am anfang...wenn das bild NICHT sichtbar ist, soll gleich der nächste timer gestartet werden..

allerdings wird der timer immer wieder gestartet...ich hab nicht rausgefunden warum..vielleicht steht das
Delphi-Quellcode:
timer5.Enabled:=true;
timer4.enabled:=false;
am ende auch ZU weit am ende und der befehl den timer zu disablen und den nächsten zu starten kommt gar nicht mehr zum zug?

über hilfe wäre ich dankbar

nette grüße von rhodan
  Mit Zitat antworten Zitat
IngoD7

Registriert seit: 17. Feb 2004
464 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Timer startet immer neu obwohl disabled??

  Alt 19. Jan 2007, 21:41
Setze einen Haltepunkt auf timer4enabled:=false und schaue, ob er jemals da ankommt.

Ich weiß jetzt nicht, ob das überhaupt möglich ist, aber vielleicht wird dein Timer4Timer-Ereignis schon immer wieder erneut aufgerufen, bevor es überhaupt fertig abgearbeitet ist ...?

Grundsätzlich: Hast du es schon mal mit Haltepunkten und vor allem Einzelschrittmodus probiert?
  Mit Zitat antworten Zitat
Benutzerbild von rhodan
rhodan

Registriert seit: 4. Okt 2005
Ort: Hamburg
150 Beiträge
 
Delphi 7 Personal
 
#3

Re: Timer startet immer neu obwohl disabled??

  Alt 19. Jan 2007, 21:49
wenn ich ehrlich bin habe ich noch nie mit haltepunkten gearbeitet bzw. sie benutzt...

was das ist kann ich könnte ich mir schon vorstellen aber wie wende ich sie an bzw. wie aktiviere ich einen haltepunkt für den timer?

thx
  Mit Zitat antworten Zitat
MrKnogge

Registriert seit: 9. Jun 2003
Ort: Pforzheim
2.458 Beiträge
 
Delphi 2007 Professional
 
#4

Re: Timer startet immer neu obwohl disabled??

  Alt 19. Jan 2007, 21:54
einfach links neben die entsprechende zeile klicken. Dann erscheint dort ein roter Punkt, wenn du das programm jetzt aus der IDE startest, hält dein Programm an dem Punkt an. Wenn du mit dem Mauszeiger über die Variablen gehst, so erscheint der Wert der Variable als Hint.

Welche Frequenz hat denn dein Timer oben eingestellt ?
Christian Bootz
Einstein ist tot, Newton ist tot,
und mir ist auch schon ganz schlecht...
  Mit Zitat antworten Zitat
Benutzerbild von rhodan
rhodan

Registriert seit: 4. Okt 2005
Ort: Hamburg
150 Beiträge
 
Delphi 7 Personal
 
#5

Re: Timer startet immer neu obwohl disabled??

  Alt 19. Jan 2007, 21:59
hmm...also ich hab den haltepunkt gesetzt, prog gestartet, im haltepunkt erschien dann ein kleiner grüner haken :-/ der timer ist auf 500ms

das witzige ist....den ersten der 20 timer führt er nur einmal aus wenn er selektiert ist, aber die anderen 19 macht er jeweils unendlich...das einzige weas sich im code ändert sind die edit nummern, die invchecks und die timer die ich enable bzw. disable :S
  Mit Zitat antworten Zitat
MrKnogge

Registriert seit: 9. Jun 2003
Ort: Pforzheim
2.458 Beiträge
 
Delphi 2007 Professional
 
#6

Re: Timer startet immer neu obwohl disabled??

  Alt 19. Jan 2007, 22:04
Zitat von rhodan:
im haltepunkt erschien dann ein kleiner grüner haken
Dann enthält diese zeile keine vollständige Anweisung, setze den Haltepunkte eine Zeile weiter.

Zitat von rhodan:
:-/ der timer ist auf 500ms
Aha, dann haben wir wohl den Fehler, deine obige Funktion wird alle 500 Millisekunden ausgeführt, aber innherhalb deiner prozedur hast du Pausen von insgesamt 10 Sekunden.

Setze den Timer mal auf 20 Sekunden oder so.

Gruß
Christian Bootz
Einstein ist tot, Newton ist tot,
und mir ist auch schon ganz schlecht...
  Mit Zitat antworten Zitat
Benutzerbild von rhodan
rhodan

Registriert seit: 4. Okt 2005
Ort: Hamburg
150 Beiträge
 
Delphi 7 Personal
 
#7

Re: Timer startet immer neu obwohl disabled??

  Alt 19. Jan 2007, 22:10
hmmm, das bringt auch nix....ist der timer interval nicht nur die pause die nach dem beenden des letzten timer befehls gewartet wird bis er wieder gestartet wird?
  Mit Zitat antworten Zitat
MrKnogge

Registriert seit: 9. Jun 2003
Ort: Pforzheim
2.458 Beiträge
 
Delphi 2007 Professional
 
#8

Re: Timer startet immer neu obwohl disabled??

  Alt 19. Jan 2007, 22:12
Nein, interval heist, dass es alle 500 ms ausgeführt wird. Schau dir hierzu einfach mal die OH an.

Gruß
Christian Bootz
Einstein ist tot, Newton ist tot,
und mir ist auch schon ganz schlecht...
  Mit Zitat antworten Zitat
Benutzerbild von rhodan
rhodan

Registriert seit: 4. Okt 2005
Ort: Hamburg
150 Beiträge
 
Delphi 7 Personal
 
#9

Re: Timer startet immer neu obwohl disabled??

  Alt 19. Jan 2007, 22:24
hmm, ich grad gemerkt das ich 17 "begin" aber 19 "end;" im text hab...oder werden "else" auch mit end; abgeschlossen?
kann es sein das die end; falsch positioniert sind?

gruß rhodan
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#10

Re: Timer startet immer neu obwohl disabled??

  Alt 19. Jan 2007, 22:28
Die 2 zusätzlichen "end" stammen aus den beiden Case-Abfragen. Hättest du da 2 zu viel, würde es dir der Compiler schon melden.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 04:47 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