AGB  ·  Datenschutz  ·  Impressum  







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

Delay-Procedure in DLL auslagen

Ein Thema von Helmi · begonnen am 3. Nov 2005 · letzter Beitrag vom 4. Nov 2005
Antwort Antwort
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.312 Beiträge
 
Delphi XE2 Professional
 
#1

Delay-Procedure in DLL auslagen

  Alt 3. Nov 2005, 20:43
Hallo,

da ich die Delay-Procedure für ein Projekt in zwei Applicationen brauche, hab ich mir gedacht, ich lagere die Delay-Procedure in eine DLL aus. (war für mich auch ein Anfang in der DLL-Programmierung)

Nur hab ich Bedenken, ob jetzt die Delay-Procedure nichts mehr bringt, also genau so arbeitet wie "sleep".

(Nochmals zur Erinnerung die Delay-Procedure
Delphi-Quellcode:
procedure Delay(Milliseconds: Integer); stdcall;
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;
      Milliseconds := Tick - GetTickcount;
    end;
  finally
    CloseHandle(Event);
  end;
end;
Wer kann mir meine Zweifel nehmen?
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Benutzerbild von BlackJack
BlackJack

Registriert seit: 2. Jul 2005
Ort: Coesfeld
246 Beiträge
 
Delphi 2005 Personal
 
#2

Re: Delay-Procedure in DLL auslagen

  Alt 3. Nov 2005, 20:45
woher kennt die Delay-procedure in der DLL denn "Application"?
See my shadow changing, stretching up and over me.
Soften this old armor. Hoping I can clear the way
By stepping through my shadow, coming out the other side.
Step into the shadow. Forty six and two are just ahead of me.
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.312 Beiträge
 
Delphi XE2 Professional
 
#3

Re: Delay-Procedure in DLL auslagen

  Alt 3. Nov 2005, 20:47
durch:

Delphi-Quellcode:
uses
  Forms;
aber deshalb bin ich mir nicht sicher, ob dann noch delay die eigentliche funktion hat, die es haben soll
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.312 Beiträge
 
Delphi XE2 Professional
 
#4

Re: Delay-Procedure in DLL auslagen

  Alt 4. Nov 2005, 13:07
*push*

Ist das mit dem Delay und Application in ner dll in ordnung?
bin noch unsicher
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: Delay-Procedure in DLL auslagen

  Alt 4. Nov 2005, 13:19
So sieht ProcessMesasges aus:
Delphi-Quellcode:
procedure ProcessMessages(hWnd: DWORD);
var
  Msg : TMsg;
begin
  while PeekMessage(Msg, hWnd, 0, 0, PM_REMOVE) do
  begin
    TranslateMessage(Msg);
    DispatchMessage(Msg);
  end;
end;
Du wirst wohl auf alle Fälle noch das Handle des Fensters mitgeben und obige Version nehmen müssen, da in der DLL ja dein Fentser nicht bekannt ist.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.312 Beiträge
 
Delphi XE2 Professional
 
#6

Re: Delay-Procedure in DLL auslagen

  Alt 4. Nov 2005, 13:22
Hallo Luckie,

das würde aber jetzt bedeuten, dass die jetzige Delay-Procedure in der DLL-Datei wie Sleep arbeitet oder?

[Edit]
Luckie, woher hast du den code von dem ProcessMessages?

bei Delphi hab ich nur diesen Code gefunden:
Delphi-Quellcode:
procedure TApplication.ProcessMessages;
var
  Msg: TMsg;
begin
  while ProcessMessage(Msg) do {loop};
end;
und da übergibt mann keinen Handle.
[/Edit]
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: Delay-Procedure in DLL auslagen

  Alt 4. Nov 2005, 17:18
Da übergibt man kein Handle, weil das eine private Variable in der Klasse ist und somit auch bekannt. Und wo ich das her habe? Selber geschrieben.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.312 Beiträge
 
Delphi XE2 Professional
 
#8

Re: Delay-Procedure in DLL auslagen

  Alt 4. Nov 2005, 17:20
Zitat von Luckie:
Da übergibt man kein Handle, weil das eine private Variable in der Klasse ist und somit auch bekannt. Und wo ich das her habe? Selber geschrieben.
ich habs in der zwischenzeit ausprobiert - funktioniert ja echt sehr gut

Danke vielmals!!
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  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 03:06 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