![]() |
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:
Wenn ich zuvor die TimerProcedure aufgerufen habe, dann muss ich nur
TElement.ttTimer(sender:TObject; Form:TForm);
Delphi-Quellcode:
schreiben.
tt.ontimer:=ttTimer
Jetzt will er jedoch 2 Sachen haben und zwar:
Delphi-Quellcode:
Was muss ich für Sender:TObject eintragen? Form geht nicht denn dann kommt folgende Fehlermeldung:
tt.ontimer:=ttTimer((sender:TObject; Form:TForm)
[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 |
Re: Form in eine Timer Procedure integrieren
Zitat:
|
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. |
Re: Form in eine Timer Procedure integrieren
Du willst im Timer Objekte erzeugen?
|
Re: Form in eine Timer Procedure integrieren
ja genau und zwar so:
Delphi-Quellcode:
und das macht er eben nur wenn ich die Form mitübergebe.
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; |
Re: Form in eine Timer Procedure integrieren
Hast du eine neue Timer-Klasse erzeugt?
Oder woher kommt der zusätzliche Parameter "Form"? Zitat:
|
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? |
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.
|
Re: Form in eine Timer Procedure integrieren
Ja der Timer gehört zu meiner Klasse.
Wie trage ich denn die Form als Property ein? |
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 03:39 Uhr. |
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