2017-07-04 12 views
-2

私はいくつかの作業をlazarusで行い、私の手続きの1つは2番目のユニットで書かれていますが、最初にも使用されています。 問題は、ユニット1に接続されたフォームからTImageにプロシージャを渡したいが、ユニット2は識別子 "TImage"を見つけることができないということです。2番目のユニットは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

ユニット2は、TImageが宣言されているユニットを使用する必要があります。使用するユニットは、ExtCtrls.Pas – MartynA

答えて

1

解決策は、手順とインターフェイスの前に使用をタイプしています。

interface 

uses 
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ActnList, ExtCtrls, u_settings, u_grafik; 

procedure Bewegen(Spieler:TImage); 
関連する問題