Создание собственного класса в Delphi и работа с объектами.

Ответить
AC/DC
Сообщения: 2
Зарегистрирован: 10 ноя 2014, 23:38

11 ноя 2014, 00:01

{Для опытных это семечки. В чем тут подвох ? Пару строк кода, если сможете, подскажите в чем тут ошибка}

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type MyClass = class //– create class Myclass.
Name: string;
Color: string;
function info():string;
end;
function MyClass.info():string;
begin
Result:= ('Name:'+MyClass.Name+' Color:'+MyClass.Color);
end;

type
TForm1 = class(TForm)

private
{ Private declarations }
public
{ Public declarations }

var
Form1: TForm1;
Obj:MyClass;
begin
Obj:=MyClass.Create();
Obj.Name:='Vasja';
Obj.Color:='Green';
Showmessage(Obj.info());
end;
implementation

{$R *.dfm}


end.
Bce_OK
Сообщения: 8
Зарегистрирован: 18 ноя 2014, 20:25

18 ноя 2014, 20:38

Перед "Var" поставь "end;", для того, чтобы показать что описание класса TForm1 закончено
и, возможно, еще нужно "implementation" после этого энда поставить, вместо того, где он сейчас,
К тому же непонятно к чему у тебя относится
var
Form1: TForm1;
Obj:MyClass;
begin
Obj:=MyClass.Create();
Obj.Name:='Vasja';
Obj.Color:='Green';
Showmessage(Obj.info());
end;
оберни этот кусок кода в процедуру каукую-нибудь
AC/DC
Сообщения: 2
Зарегистрирован: 10 ноя 2014, 23:38

19 ноя 2014, 10:23

:) А вот и рабочий код , приятного просмотра:

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

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);


  private
    { Private declarations }
  public
    { Public declarations }
 end;

 type MyClass = class
private
Name: String;
Color: String;

public
function info():String;//metod vivoda informacii ob objekte
procedure setName(N:string);
function getName():String;
procedure setColor(C:string);
function getColor():String;

  end;

implementation

{$R *.dfm}

procedure MyClass.setName(N:string);  //Ввод имени

begin
  Name:=N;
end;

function MyClass.getName():String;  //Вывод имени

begin
 result:=Name;
end;

procedure MyClass.setColor(C:string);

begin
  Color:=C;
end;

function MyClass.getColor():String;

begin
  result:=Color;
end;

function MyClass.info():String;
begin
  result:= ('Name: '+getName()+ ' Color:'+getColor()); //Vivodim informaciju ob objekte
end;

procedure TForm1.FormCreate(Sender: TObject);
   var
  Obj:MyClass;
  begin
    Obj:=MyClass.Create;
    Obj.Name:='Crocodile';
    Obj.Color:='Green';
    Showmessage(Obj.info()); //Vivodim soobschenie o parametrah objekta
    Obj.Free();
  end;

end.
Ответить