2017-07-04 7 views
-2

so habe ich etwas Arbeit zu tun mit Lazarus und eines meiner Verfahren ist in einer zweiten Einheit geschrieben, sondern auch in der ersten verwendet. Das Problem ist, ich möchte die Prozedur eine TImage aus dem Formular an Einheit 1 verbunden geben, aber Einheit 2 kann eine Kennung "TImage" nicht finden.Zweite Einheit nicht finden TImage

interface 
procedure Bewegen(Spieler:TImage); 

.. 

procedure Bewegen(Spieler:TImage); 
var Lefti,Topi:integer; 

function wurf(AnzahlWurfel:integer):integer; 
begin 
    randomize; 
    case AnzahlWurfel of 1 : result:=1+Random(6);  //AZ von 1 bis 6 oder 12. Je nach Anzahl der Würfel. 
         2 : result:=1+Random(12); 
    end; 
end; 

procedure gehen(Wurf:integer;out Left, Top:integer); 
var i:integer; 
begin 
    for i:=1 to Wurf do if (Left<908) AND (Top=56) then Left:=Left+90//oben links nach oben rechts 
        else if (Left=908) AND (Top<956) then Top :=Top+90 //oben rechts nach unten rechts 
        else if (Left>8) AND (Top=956) then Left:=Left-90//unten rechts nach unten links 
        else if (Left=8) AND (Top>56) then Top :=Top-90;//unten links nach oben links 
end; 

begin 
    FMono.Edit1.Text:=IntToStr(wurf(AnzahlWurfel)); 
    Lefti:=Spieler.Left; 
    Topi:=Spieler.Top; 
    gehen(wurf(AnzahlWurfel),Lefti,Topi); 
    Spieler.Left:=Lefti; 
    Spieler.Top:=Topi; 
end; 
+1

Einheit2 muss VERWENDEN, in welcher Einheit Ihr TImage deklariert ist. In Delphi wäre die zu verwendende Einheit ExtCtrls.Pas – MartynA

Antwort

1

Lösung ist die Eingabe der Anwendungen vor dem Verfahren und in der Schnittstelle.