[lazarus] calling a procedure from another pas file
LeVA
leva at az.isten.hu
Sat Dec 27 09:40:10 EST 2003
Vincent Snijders wrote:
> Do you have
> procedure kocsi_olvas (hogy_mit: char; marka: string; tipus: string);
> in the interface section of the unit main?
--------------------------###--------------------------
unit main;
{$mode objfpc}{$H+}
interface
procedure kocsi_olvas(hogy_mit: char; marka: string; tipus: string);
uses
Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs,
ExtCtrls,
StdCtrls, Buttons, Menus;
type
TForm1 = class(TForm)
.....
....
...
..
.
--------------------------###--------------------------
No, I don't have, but I put it under the Interface section, and when
trying to build, I get this:
--------------------------###--------------------------
TOutputFilter: "Compiling main.pas"
TOutputFilter: "main.pas(8,1) Fatal: Syntax error, "IMPLEMENTATION"
expected but "USES" found"
--------------------------###--------------------------
I tried to put that ( procedure kocsi_olvas(hogy_mit: char; marka:
string; tipus: string); ) line under the 'public', 'private' and
'implementation' section in main.pas, but I get the
TOutputFilter: "test.pas(55,12) Error: Identifier not found "kocsi_olvas""
TOutputFilter: "test.pas(55,46) Error: Illegal expression"
lines every time.
Any idea?
Daniel
>>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