![]() |
Undeclared identifier
Hallo!
Hab schon die Suchfunktion benutzt, aber keine Lösung gefunden. Ich versuche eine Eigene komponente zu schreiben, die auf TImage basiert. Bis jetzt sieht sie folgender maßen aus:
Delphi-Quellcode:
x:=FMoveTo;
unit ImageMovereg;
interface uses Windows, Messages, SysUtils, Classes, Controls, ExtCtrls; var x,z:String; y,a:Integer; zeit1,zeit2:longint; type TImageMove = class(TImage) private FMoveTo:String; FGeschwindigkeit:longint; FZahl1:Integer; FZahl2:Integer; FStatus:Boolean; { Private declarations } protected { Protected declarations } public { Public declarations } published property Zahl1 : Integer Read FZahl1 Write FZahl1; property Zahl2 : Integer Read FZahl2 Write FZahl2; property MoveTo : String Read FMoveTo Write FMoveTo; property Geschwindigkeit : longint Read FGeschwindigkeit Write FGeschwindigkeit; property Status : Boolean Read FStatus Write FStatus; { Published declarations } end; procedure Register; implementation procedure Register; begin RegisterComponents('Eigene Komponenten', [TImageMove]); end; procedure Move; begin a:=0;
Delphi-Quellcode:
delete(x,3,999);
z:=FMoveTo; delete(z,1,2); y:=StrToInt(z); if x='t+'then begin repeat a:=a+1; FTop:=FTop-1; zeit1:=GetTickCount; zeit2:=FGeschwindigkeit; repeat Application.Processmessages if (GetAsyncKeyState(VK_ESCAPE))<>0 then break; until (GetTickCount-Zeit1>zeit2) if (GetAsyncKeyState(VK_ESCAPE))<>0 then break; until a>=y; end; if x='t-' then begin repeat a:=a+1; FTop:=FTop+1; zeit1:=GetTickCount; zeit2:=FGeschwindigkeit; repeat Application.Processmessages if (GetAsyncKeyState(VK_ESCAPE))<>0 then break; until (GetTickCount-Zeit1>zeit2) if (GetAsyncKeyState(VK_ESCAPE))<>0 then break; until a>=y; end; if x='l+'then begin repeat a:=a+1; FLeft:=FLeft-1; zeit1:=GetTickCount; zeit2:=FGeschwindigkeit; repeat Application.Processmessages if (GetAsyncKeyState(VK_ESCAPE))<>0 then break; until (GetTickCount-Zeit1>zeit2) if (GetAsyncKeyState(VK_ESCAPE))<>0 then break; until a>=y; end; if x='l-' then begin repeat a:=a+1; FLeft:=FLeft+1; zeit1:=GetTickCount; zeit2:=FGeschwindigkeit; repeat Application.Processmessages if (GetAsyncKeyState(VK_ESCAPE))<>0 then break; until (GetTickCount-Zeit1>zeit2) if (GetAsyncKeyState(VK_ESCAPE))<>0 then break; until a>=y; end; end; end; end. Wenn ich sie jetzt Compiliere erscheint folgende Fehlermeldung:
Delphi-Quellcode:
(Zeile oben rot markiert)
[Error] ImageMovereg.pas(48): Undeclared identifier: 'FMoveTo'
Wie kann ich dafür sorgen, dass ich an dieser Stelle auf die Eigenschaft "MoveTo" zugreifen kann? PS: Die Absnitte gehören natürlich zusammen, sie sind nur getrennt, um die Zeile Rot zu markieren! |
Re: Undeclared identifier
Hallo,
Zitat:
grüße, daniel |
Re: Undeclared identifier
Das heißt also, dass ich eine Prozedur (oder eine Funktion), die auf eine Eigenschaft der Komponente zugreift, immer im
public abschnitt ankündigen muss. Oder? PS: Danke, Daniel! :thumb: |
Re: Undeclared identifier
Habs jetzt ausprobiert.
Die Fehlermeldung kommt leider weiterhin! :coder2: |
Re: Undeclared identifier
Zitat:
Hast du auch auf das "TImageMove." bei der Prozedur-Implementierung geachtet?
Delphi-Quellcode:
grüße, daniel
procedure TImageMove.Move; <---
begin ... end; |
Re: Undeclared identifier
Thanks, Daniel :thumb:
Jetzt Funzts! Noch ne Frage: Wie kann ich auf die Eigenschaften Top und Left zugreifen, die ja beim TImage Standart sind? HABS RAUS: self.top self.left Einen Fehler gibts noch: bei
Delphi-Quellcode:
kommt
Application.Processmessages
Delphi-Quellcode:
PS: hab ich aus nem Delphi-Buch
[Error] ImageMovereg.pas(62): Undeclared identifier: 'Application'
Lösung ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:59 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