Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Form in eine Timer Procedure integrieren (https://www.delphipraxis.net/123827-form-eine-timer-procedure-integrieren.html)

BigT 9. Nov 2008 18:47


Form in eine Timer Procedure integrieren
 
Hi,
ich brauche mal kurz Hilfe.
Und zwar programmier ich gerade Objektorientiert etwas und habe da jetzt eine Timer.Procedure in einer Etxtraunit erstellt.
Vorher habe ich die Form die aus dem Hauptprogramm übergeben wird als Form:TForm deklariert.

Nun muss ich die Form mit in den Timer bekommen und iwie so:

Delphi-Quellcode:
TElement.ttTimer(sender:TObject; Form:TForm);
Wenn ich zuvor die TimerProcedure aufgerufen habe, dann muss ich nur
Delphi-Quellcode:
tt.ontimer:=ttTimer
schreiben.
Jetzt will er jedoch 2 Sachen haben und zwar:
Delphi-Quellcode:
tt.ontimer:=ttTimer((sender:TObject; Form:TForm)
Was muss ich für Sender:TObject eintragen? Form geht nicht denn dann kommt folgende Fehlermeldung:
[Fehler] USnake.pas(31): Inkompatible Typen: 'TNotifyEvent' und 'procedure, untyped pointer or untyped parameter'

Kann mir da wer helfen? Oder ist der Ansatz schon falsch? Nur er nimmt eben die Form nicht im Timer. Da habe ich nämlich dann ein Probleme mit dem createn von Shapes.

Vielen Dank im Voraus
Thorsten

taaktaak 9. Nov 2008 18:50

Re: Form in eine Timer Procedure integrieren
 
Zitat:

Nun muss ich die Form mit in den Timer bekommen
Es wäre sehr hilfreich, näher zu erklären, wozu das gut sein soll...

BigT 9. Nov 2008 18:52

Re: Form in eine Timer Procedure integrieren
 
Ja weil ich Shapes auf der Form die ich aus dem Hauptprogramm übergebe erstellen will.
Nur er createt eben keine, wie das in einer Procedure klappt in der ich die Form übergebe.

taaktaak 9. Nov 2008 18:57

Re: Form in eine Timer Procedure integrieren
 
Du willst im Timer Objekte erzeugen?

BigT 9. Nov 2008 19:14

Re: Form in eine Timer Procedure integrieren
 
ja genau und zwar so:
Delphi-Quellcode:
procedure tsnake.tttimer(sender:TObject; Form:TForm);
begin
    OtherItem := GetShape(ElementList.Count-1);
    CurrentItem.Shape := OtherItem.Shape;
    CurrentItem.Brush.Color := OtherItem.Brush.Color;
    CurrentItem.Top := OtherItem.Top;
    CurrentItem.Left := OtherItem.Left;
    CurrentItem.Width := OtherItem.Width;
    CurrentItem.Height := OtherItem.Height;
    ElementList.Add(Pointer(CurrentItem));
end;
und das macht er eben nur wenn ich die Form mitübergebe.

taaktaak 9. Nov 2008 20:23

Re: Form in eine Timer Procedure integrieren
 
Hast du eine neue Timer-Klasse erzeugt?
Oder woher kommt der zusätzliche Parameter "Form"?
Zitat:

tsnake.tttimer(sender:TObject; Form:TForm);

BigT 9. Nov 2008 20:25

Re: Form in eine Timer Procedure integrieren
 
Ne, der steht da ja auch normal nicht drinne. Hab ich selber eingetragen, um die Form zu übergeben.
Oder muss ich das dann anders machen?

DeddyH 9. Nov 2008 20:29

Re: Form in eine Timer Procedure integrieren
 
Der Timer gehört zu Deiner Klasse? Dann würde ich die Form als Property dieser Klasse definieren und einmalig setzen. Im Timer-Event greifst Du dann auf diese Referenz zu.

BigT 9. Nov 2008 20:31

Re: Form in eine Timer Procedure integrieren
 
Ja der Timer gehört zu meiner Klasse.
Wie trage ich denn die Form als Property ein?

taaktaak 9. Nov 2008 20:37

Re: Form in eine Timer Procedure integrieren
 
Delphi-Quellcode:
//extraunit
public
  FormOfTimer : TForm
end;

// formunit
~~.FormOfTimer:=Self;


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

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