[lazarus] calling a procedure from another pas file

LeVA leva at az.isten.hu
Sat Dec 27 09:11:24 EST 2003


Mattias Gaertner wrote:
> On Sat, 27 Dec 2003 13:43:44 +0100  LeVA <leva at az.isten.hu> wrote:
> 
> 
>>LeVA wrote:
>>
>>>Hi!
>>>
>>>First of all, Merry Christmas to everyone :)
>>>
>>>Now my question :)
>>>
>>>I have a procedure (let's say test_proced) in my main.pas file, and I 
>>>can call it from there, and it works. I have another pas file, called 
>>>test.pas. I want to call the test_proced procedure from that test.pas. I
>>>
>>>have added this under the test.pas's implementation section:
>>>
>>>uses main;
>>>
>>>Now I can use main.pas's variables, but still can not call that
>>>procedure.
>>>
>>>How can I do this?
>>>
>>>Thanks!
>>>
>>>Daniel
>>
>>Should I explain more precisely what is my problem, or this is not 
>>possible with lazarus/fpc?
> 
> 
> Almost all units call procs in other units. Plz give more details.
> 
> 
 > Mattias

I have a main.pas file.
main.pas:

----------------------------###----------------------------
procedure kocsi_olvas (hogy_mit: char; marka: string; tipus: string);
     var     sor       :string[255];
             i         :byte;

     const   kocsi_file='kocsi.lst';
begin
    blabla
    case hogy_mit of
         'm': begin blabla end;
         't': begin blabla end;
         'r': begin blabla end;
    end;
end;
----------------------------###----------------------------


I have a test.pas file.
test.pas:

----------------------------###----------------------------
..
...
....
.....
var
   Form6: TForm6;

implementation

uses
    main;

{ TForm6 }

{ TForm6 }

{ TForm6 }

procedure TForm6.Form6Show(Sender: TObject);
     var     marka  : string[255];
             tipus  : string[255];
             sor    : string[255];
             i      : integer;

begin
    blabla
    while markak[i]<>'' do
      begin
       blabla
       kocsi_olvas('t',markak[i],'tipus');
       blabla
      end;
end;
----------------------------###----------------------------


And when I build the project, I get this in the messages window:

----------------------------###----------------------------
TOutputFilter: "test.pas(55,12) Error: Identifier not found "kocsi_olvas""
TOutputFilter: "test.pas(55,46) Error: Illegal expression"
TOutputFilter: "test.pas(113) Fatal: There were 2 errors compiling 
module, stopping"
----------------------------###----------------------------



I thought that specifying the 'main' in the uses section is enough for 
calling the procedure. I can read/write the main.pas's variables, but 
can not call the main.pas's 'kocsi_olvas' procedure.

Thanks for the help!

Daniel


-- 
LeVA






More information about the Lazarus mailing list