AGB  ·  Datenschutz  ·  Impressum  







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

Pause in procedure einbauen...?

Ein Thema von Mucki · begonnen am 24. Nov 2006 · letzter Beitrag vom 24. Nov 2006
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Mucki
Mucki

Registriert seit: 23. Jul 2006
82 Beiträge
 
Delphi 5 Standard
 
#1

Pause in procedure einbauen...?

  Alt 24. Nov 2006, 18:49
Hallöchen.

Ich möchte Daten über die RS232 senden und empgangen. Allerdings
brauche ich zwischen senden & empfangen eine Pausenzeit von,
mindestens 40ms.

(Ich habs mit einem timer probiert, allerdings gabs Probleme,
als ich eine for-Schleife um die komplette senden/empfangen procedure
legen wollte.
Es geht wohl auch einer Funktion von AsyncPro welches ich hierzu
verwende (ApdComPort.SetTimerTrigger, ApdComPort.SetTimerTrigger),
komme aber nicht dahinter wie!)

Meine Frage:

Kann mir jemand sagen wie ich eine Pausenzeit zwischen senden und empfangen,
also in mitten einer procedure einfügen kann?


Gruß Mucki
Alles bleibt anders !
  Mit Zitat antworten Zitat
Balu der Bär
(Gast)

n/a Beiträge
 
#2

Re: Pause in procedure einbauen...?

  Alt 24. Nov 2006, 18:50
Hier im Forum suchenDelay vielleicht?
  Mit Zitat antworten Zitat
Benutzerbild von Martin K
Martin K

Registriert seit: 20. Okt 2005
919 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Pause in procedure einbauen...?

  Alt 24. Nov 2006, 18:52
Wenn's nur um 40 ms geht, sollte Delphi-Referenz durchsuchenSleep() wohl reichen.
Mit den Menschen ist es wie mit Computern -
es gibt Nullen und Einsen.
  Mit Zitat antworten Zitat
Balu der Bär
(Gast)

n/a Beiträge
 
#4

Re: Pause in procedure einbauen...?

  Alt 24. Nov 2006, 18:54
Zitat von Martin K:
Wenn's nur um 40 ms geht, sollte Delphi-Referenz durchsuchenSleep() wohl reichen.
Wobei mit Sleep die ganze Anwendung einfriert, was in den meisten Fällen nicht von Vorteil ist wenn noch andere Sachen in der Zwischenzeit abgearbeitet werden sollen.
  Mit Zitat antworten Zitat
Benutzerbild von Mucki
Mucki

Registriert seit: 23. Jul 2006
82 Beiträge
 
Delphi 5 Standard
 
#5

Re: Pause in procedure einbauen...?

  Alt 24. Nov 2006, 18:55
Mit sleep() hab ich es probiert, dann geht nichts mehr...
Alles bleibt anders !
  Mit Zitat antworten Zitat
Benutzerbild von Martin K
Martin K

Registriert seit: 20. Okt 2005
919 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Pause in procedure einbauen...?

  Alt 24. Nov 2006, 18:58
Zitat von Balu der Bär:
Zitat von Martin K:
Wenn's nur um 40 ms geht, sollte Delphi-Referenz durchsuchenSleep() wohl reichen.
Wobei mit Sleep die ganze Anwendung einfriert, was in den meisten Fällen nicht von Vorteil ist wenn noch andere Sachen in der Zwischenzeit abgearbeitet werden sollen.
Das ist mir auch klar, aber bei 40 ms ....
Außerdem denke ich, dass der Threadersteller wohl kaum Lust dazu hat, sich durch fast 300 Suchergebnisse durchzuklicken

Okay, damit kann man wohl eher was anfangen:
DelayDelay

//Edit:
Kein roter Kasten heute?
Mit den Menschen ist es wie mit Computern -
es gibt Nullen und Einsen.
  Mit Zitat antworten Zitat
Balu der Bär
(Gast)

n/a Beiträge
 
#7

Re: Pause in procedure einbauen...?

  Alt 24. Nov 2006, 18:59
Moin Mucki,

um deine Frage aus der PN mal hier zu beantworten, damit alle etwas davon haben:
Zitat:
In der OH findet man nichts über delay.... Warum?
Weil Delay keine Standard-Delphi-Funktion ist sondern irgendwann einmal von irgendwem geschrieben wurde. Hättest du die DP-Forensuche bemüht, hättest du folgendes gefunden (einfach in den Quelltext kopieren und von deiner Prozedur aus aufrufen):
Delphi-Quellcode:
procedure Delay(Milliseconds: Integer);
var
 Tick: DWord;
 Event: THandle;
begin
 Event := CreateEvent(nil, False, False, nil);
 try
  Tick := GetTickCount + DWord(Milliseconds);
  while (Milliseconds > 0) and
   (MsgWaitForMultipleObjects(1, Event, False, Milliseconds, QS_ALLINPUT) <> WAIT_TIMEOUT) do
    begin
      Application.ProcessMessages;
      if Application.Terminated then Exit;
      Milliseconds := Tick - GetTickcount;
    end;
 finally
  CloseHandle(Event);
 end;
end;
  Mit Zitat antworten Zitat
Benutzerbild von Mucki
Mucki

Registriert seit: 23. Jul 2006
82 Beiträge
 
Delphi 5 Standard
 
#8

Re: Pause in procedure einbauen...?

  Alt 24. Nov 2006, 19:10
O.K. hab ein kleinen Test gemach... hat funktioniert.

Jetzt bau ich es mal in das Programm ein,

danke für den Tip.

Melde mich hier noch einmal...
Alles bleibt anders !
  Mit Zitat antworten Zitat
Benutzerbild von SubData
SubData

Registriert seit: 14. Sep 2004
Ort: Stuhr
1.078 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Pause in procedure einbauen...?

  Alt 24. Nov 2006, 19:25
if Application.Terminated then Exit; // Wäre ein Break hier nicht viel sinnvoller?
Ronny
/(bb|[^b]{2})/
  Mit Zitat antworten Zitat
Benutzerbild von Mucki
Mucki

Registriert seit: 23. Jul 2006
82 Beiträge
 
Delphi 5 Standard
 
#10

Re: Pause in procedure einbauen...?

  Alt 24. Nov 2006, 19:39
Kann keine Schleife um das delay legen, so das z.B. das senden & empfangen
mehrmals durchlaufen wird.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
i : integer;
pause : word;
 begin
   for i := 1 to 5 do
   begin
   label1.caption := 'bitte warten';

   delay(500);

   label1.caption := 'pause vorbei';
   pause := i ;
   end;
 end;
Warum?
Alles bleibt anders !
  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 06:24 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