[Lazarus] WinCE and TDBGrid: Bus Error or misaligned data access

User usuarioanonimomysql at gmail.com
Mon Dec 29 23:12:19 CET 2008


Hi, I want to call a KOL Form public method (procedure PublicMethod;
of Unit3) from a simple unit (Unit2) but the public method is not
recognized. Why?

My code:

project1.lpr:

{ KOL MCK } // Do not remove this line!
{$DEFINE KOL_MCK}
{$ifdef FPC} {$mode delphi} {$endif}
program project1;

uses
 KOL,
  Unit1, Unit2, Unit3;

begin // PROGRAM START HERE -- Please do not remove this comment

{$IFNDEF LAZIDE_MCK} {$I project1_0.inc} {$ELSE}

 Application.Initialize;
 Application.Run;

{$ENDIF}

end.

Unit1:

{ KOL MCK } // Do not remove this line!
{$DEFINE KOL_MCK}
{$ifdef FPC} {$mode delphi} {$endif}
unit Unit1;

interface

uses Windows, Messages, KOL {place your units here->}
{$IFDEF LAZIDE_MCK}, Forms, mirror, Classes, Controls, mckCtrls,
mckObjs, Graphics;
{$ELSE} ; {$ENDIF}

type
 { TForm1 }
 {$I MCKfakeClasses.inc}
 {$IFDEF KOLCLASSES} TForm1 = class; PForm1 = TForm1; {$ELSE OBJECTS}
PForm1 = ^TForm1; {$ENDIF CLASSES/OBJECTS}
 TForm1 = {$IFDEF KOLCLASSES}class{$ELSE}object{$ENDIF}({$IFDEF
LAZIDE_MCK}TForm{$ELSE}TObj{$ENDIF})
   Form: PControl;
   KOLForm1: TKOLForm;
   KOLProject: TKOLProject;
 private
   { private declarations }
 public
   { public declarations }
 end;

var
 Form1 {$IFDEF KOL_MCK} : PForm1 {$ELSE} : TForm1 {$ENDIF} ;

{$IFDEF KOL_MCK}
procedure NewForm1( var Result: PForm1; AParent: PControl );
{$ENDIF}

implementation

{$IFDEF KOL_MCK}
{$I unit1_1.inc}
{$ENDIF}

initialization
{$IFNDEF KOL_MCK} {$I unit1.lrs} {$ENDIF}

end.

Unit2:

unit Unit2;

{$mode objfpc}{$H+}

interface

uses
 Classes, SysUtils;

type
 cClass = class
            private
              procedure Call;
            public
          end;

implementation

uses Unit3;

procedure cClass.Call;
begin
 Form2.
end;

end.

Unit3:

{ KOL MCK } // Do not remove this line!
{$DEFINE KOL_MCK}
{$ifdef FPC} {$mode delphi} {$endif}
unit Unit3;

interface

uses Windows, Messages, KOL {place your units here->}
{$IFDEF LAZIDE_MCK}, Forms, mirror, Classes, Controls, mckCtrls,
mckObjs, Graphics;
{$ELSE} ; {$ENDIF}

type
 { TForm2 }
 {$I MCKfakeClasses.inc}
 {$IFDEF KOLCLASSES} TForm2 = class; PForm2 = TForm2; {$ELSE OBJECTS}
PForm2 = ^TForm2; {$ENDIF CLASSES/OBJECTS}
 TForm2 = {$IFDEF KOLCLASSES}class{$ELSE}object{$ENDIF}({$IFDEF
LAZIDE_MCK}TForm{$ELSE}TObj{$ENDIF})
   Form: PControl;
   KOLForm2: TKOLForm;
 private
   { private declarations }
 public
   { public declarations }
   procedure PublicMethod;
 end;

var
 Form2 {$IFDEF KOL_MCK} : PForm2 {$ELSE} : TForm2 {$ENDIF} ;

{$IFDEF KOL_MCK}
procedure NewForm2( var Result: PForm2; AParent: PControl );
{$ENDIF}

implementation

{$IFDEF KOL_MCK}
{$I unit3_1.inc}
{$ENDIF}

procedure TForm2.PublicMethod;
begin

end;

initialization
{$IFNDEF KOL_MCK} {$I unit3.lrs} {$ENDIF}

end.

Best regards.



More information about the Lazarus mailing list