Okay, I've spent an hour googling this one, and got no information that helps. I want to declare four methods as being procedural variables, so that I can set them and call them. Code follows. When I try to compile this, I get:

glanguage.pas(37,20) Error: Incompatible types: got "<address of function:AnsiString;Register>" expected "tLanguage.<procedure variable type of procedure;Register>".

What am I doing wrong?



unit glanguage;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils;

type
  tLanguage = class (tObject)
    private
      t_ClanNames : array of string;
      t_language : integer;
      procedure SetLanguage (a : integer);
    public
      FirstName : procedure;
      LastName : procedure;
      ClanName : procedure;
            PlaceName : procedure;
      property Language : integer read t_language write SetLanguage;
  end;

implementation

uses
  wrdsaxon;

const
  LG_NONE = 0;
    LG_SAXON = 1;

procedure tLanguage.SetLanguage (a : integer);
begin
  case a of
        LG_SAXON : begin
      FirstName := @SaxonMale;
      LastName := @SaxonFemale;
      ClanName := @SaxonFamily;
      PlaceName := @SaxonPlace;
      end;
  end;
end;

end.


--
_______________________________________________
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to