![]() |
|
|
|
|
#1
|
|||
|
|||
|
Допустим существует класс MyObject и его экземпляр MyObject1 с свойством Texture. А свойство Texture имеет ещё свойства(image, alpha). А image имеет функцию load('путь к картинке'). вопрос: как создать класс MyObject?(что бы можна в проге писать MyObject1.Texture.Image.Load('D:/picture.jpg/')
|
|
#2
|
|||
|
|||
|
вопрос непонятен. Если у тебя уже есть класс и его экземпляр, то у тебя уже все есть. Если ты не знаешь как написать такой класс, то читай про аггрегацию. Собственно, там просто 2 класса и один вложен в другой.
|
|
#3
|
||||
|
||||
|
Оставайтесь голодными... Оставайтесь безрассудными...
Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls;
type
TTexture = class(TObject)
public
Alpha: Integer;
Image: TImage;
constructor Create;
destructor Destroy; override;
end;
TMyObject = class(TObject)
public
Texture: TTexture;
constructor Create;
destructor Destroy; override;
end;
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
{ TMyObject }
constructor TMyObject.Create;
begin
Texture:=TTexture.Create;
end;
destructor TMyObject.Destroy;
begin
Texture.Free;
inherited;
end;
{ TTexture }
constructor TTexture.Create;
begin
Image:=TImage.Create(nil);
end;
destructor TTexture.Destroy;
begin
Image.Free;
inherited;
end;
{ TForm1 }
procedure TForm1.FormCreate(Sender: TObject);
begin
with TMyObject.Create do
begin
Texture.Alpha:=$ff;
Texture.Image.Picture.LoadFromFile('d:\Картинки\Разное\apple.bmp');
end;
end;
end. |
|
#4
|
|||
|
|||
|
Num lock, спасибо!
|