Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Timer ohne Form (https://www.delphipraxis.net/10117-timer-ohne-form.html)

Jan 11. Okt 2003 21:26


Timer ohne Form
 
Hallo DP,
ich wüsste gerne wie ich es hinbekomme einen Timer zu erstellen, ohne dass ich dazu einen Form brauche, weil das bei Winamp einfach nicht so toll ankommt, wenn ein Plugin mit seinem Form unten in der Taskbar auftaucht.
Gruß
Jan

nTE 11. Okt 2003 21:34

Re: Timer ohne Form
 
Probiere mal SetTimer aus der Windows-API.

Beispiel zur Verwendung (Englisch)

Sorry, aber mehr kann ich dir damit nicht helfen, da ich die Funktion selber noch nicht verwendet habe. :P

Luckie 11. Okt 2003 21:40

Re: Timer ohne Form
 
Erstell ihn zur Laufzeit. Und als Owner gibst du nil an.

Jan 11. Okt 2003 22:02

Re: Timer ohne Form
 
Hallo Luckie,
das was du mir da mitteilst hilft mir leider auch nicht sehr weiter.
Dass ich ihn zur Laufzeit erstellen muss ist mir schon klar, aber ich komme mit SetTimer einfach nicht klar.
hier das habe ich bereits:
Delphi-Quellcode:
SetTimer(NULL, NULL, 500, (timerproc)timerevent);

procedure timerevent;

var
handle:hdc;
title:string;
begin
handle:=getdc(0);
settextcolor(handle, clyellow);
SetBkmode(handle, TRANSPARENT);
title := strpas(Pointer(sendmessage(Plugin.HWNDparent, wm_user,
                             SendMessage(Plugin.HWNDParent, wm_user, 0, 125),212)));
textout(handle,100,100,pchar(title),length(title));
releasedc(0, handle);
end;
allerdings will er den settimer-aufruf nicht haben.
Gruß
Jan

Luckie 11. Okt 2003 22:05

Re: Timer ohne Form
 
Du sollst das TTimer Objekt zur Laufzeit erstellen. Mein Vorschlag hat nicht mit dem von nTE zu tun.

Wenn du SetTimer nutzt, dann brauchst du nämlich wieder eien MessageLoop oder wie willst du sonst an die WM_TIMER nachrichten dran kommen?

Jan 11. Okt 2003 22:16

Re: Timer ohne Form
 
Hallo Luckie,
habe mir dazu mal diesen post angeguckt:

http://www.delphipraxis.net/internal...ellen+laufzeit

und es sieht ja auch absolut plausibel aus, was du da gepostet hast, allerdings kennt er bei mir 'self' nicht, was muss ich da einbinden?
Gruß
Jan

Luckie 11. Okt 2003 22:19

Re: Timer ohne Form
 
Ich habe doch gesagt nil. self bezeichnet die Klasse zu der die Methode gehört. Da du aber keine Klasse hast, wie es scheint, kennt er logischerweise self nicht.

Jan 11. Okt 2003 22:27

Re: Timer ohne Form
 
'nabend Luckie,

Zitat:

Zitat von Luckie
self bezeichnet die Klasse zu der die Methode gehört.

Das wusste ich nicht. und das mit dem nil dachte ich hätte noch zu der api variante gehört, deswegen hab ich da nichtmehr dran gedacht, vielen dank.
Jetzt aber noch ein Problem *schäm*:
Wenn ich das Ontimer event aufrufe will er unbedingt eine methode haben, aber da ich ja keine form-klasse habe ist bei mir die ontimerprozedur eine "reguläre Prozedur", soll heissen: inkompatible typen. Muss ich mir da jetzt eine Fakeklasse erstellen, oder was?
Gruß
Jan

Luckie 11. Okt 2003 22:39

Re: Timer ohne Form
 
Entweder das oder:
Delphi-Quellcode:
procedure MyTimerEvent(Sender: TObject);
begin
  ;
end;

.
.
.

@MyTimer.OnTimer := @MyTimerEvent;

Jan 11. Okt 2003 22:52

Re: Timer ohne Form
 
Bin ich denn so blöd?
der will das immernoch nicht.
jetzt sagt er auf einmal:

Ink. Typen: TNotifyEvent und Pointer

nur wegen 2 @s
naja
Hast du noch was auf Lager?

Gruß
Jan


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:57 Uhr.
Seite 1 von 2  1 2      

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