Как передать параметр в конструктор собственного класса?

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Как передать параметр в конструктор собственного класса?

Сообщение qivi » 18.09.2011 01:02:51

Есть некий сервисный класс для работы программы, нужно передать процедуру параметр, сделал как делаю с обычными процедурами:

Код: Выделить всё
Объявление конструктора в классе выглядит:
constructor Create (SNS:UTF8String);

Вызов конструктора выглядит:
MB:=MBasa.Create(MyString);


Компилятор говорит что я передал неверное количество параметров. С обычными процедурами всё работает. Как передать в конструктор параметр?
Аватара пользователя
qivi
энтузиаст
 
Сообщения: 703
Зарегистрирован: 19.01.2009 13:45:54
Откуда: Россия

Re: Как передать параметр в конструктор собственного класса?

Сообщение Maxizar » 18.09.2011 10:15:25

Ну если вы не ошиблись в другом месте, то должно все работать.
Вот пример:


Код: Выделить всё
unit Unit1;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls;

type

  { TForm1 }

  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;

{ MyClass }

MyClass = class
  private
    F_UTF8Str: UTF8String;

  public
    property    _UTF8Str:UTF8String read F_UTF8Str;
    constructor Create(aValue:UTF8String);
    destructor Destroy; override;
  end;

var
  Form1: TForm1;

implementation

{ TForm1 }

procedure TForm1.Button1Click(Sender: TObject);
var  m:MyClass;
begin
     m:=MyClass.Create('Привет');
     Caption:=m._UTF8Str;
     m.Free;
end;

{$R *.lfm}

{ MyClass }

constructor MyClass.Create(aValue: UTF8String);
begin
   F_UTF8Str:=aValue;
end;

destructor MyClass.Destroy;
begin
  F_UTF8Str:='';
  inherited Destroy;
end;

end.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Maxizar
постоялец
 
Сообщения: 385
Зарегистрирован: 20.03.2010 19:48:14


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 10

Рейтинг@Mail.ru