Вниз
Скачать: CL | DM;

Прошу совета, как реализовать класс.   Найти похожие ветки 

 
SisiusP   (2004-03-30 10:11) [0]

Свойство Obj должно содержать в себе либо строку, либо Canvas (возможно еще что-то),
в зависимости от значения ObjType. Соот-но методы GetObj, SetObj это должны обрабатывать.
Не получается приведение Pointer к AnsiString и TCanvas.

 TObjType = (potString, potCanvas);

 TMyClass = class(TObject)
 protected
   FName: Ansistring;
   FObjType: TPrintObjType;
   FObj: Pointer;
 protected
   procedure SetName(aName: Ansistring);
   procedure SetObjType(aObjType: TPrintObjType);
   function GetObj: Pointer;
   procedure SetObj(aObj: Pointer);
 public
   constructor Create;
   destructor Destroy; override;

   property Name: Ansistring read FName write SetName;
   property ObjType: TPrintObjType read FObjType write SetObjType;
   property Obj: Pointer read GetObj write SetObj;
 end;

Спасибо.


 
Asdor ©   (2004-03-30 10:33) [1]

А если вместо строки хранить указатель на нее (PString)?
Только надо будет позаботится о корректном выделении/освобождении памяти...


 
Digitman ©   (2004-03-30 10:37) [2]

на то имеется тип Variant


 
Семен Сорокин ©   (2004-03-30 10:39) [3]

SisiusP   (30.03.04 10:11)  
сделай 2 свойства, одно для канвы, а другое для строки  + метод (или свойство) - что использовать и не мучайся.


 
SisiusP   (2004-03-30 10:46) [4]

А если еще тип нужно будет обрабатывать, то что третье свойство добавлять? Это как-то не очень хотелось.


 
PVOzerski ©   (2004-03-30 10:57) [5]

Что длинная строка, что экземпляр класса - всё указатель в 4 байта. Почему приведение не получается - непонятно. Что компилятор-то говорит?


 
SisiusP   (2004-03-30 11:11) [6]

Через PString или PAnsistring все приводится.


 
Матлабист   (2004-03-30 11:41) [7]

1) Variant
2) Замена условной логики полиморфизмом



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.021 c
14-1080293236
Dmitriy O.
2004-03-26 12:27
2004.04.18
О методах шифрованного общения через иннет.


1-1080566692
SMT
2004-03-29 17:24
2004.04.18
Font embedding в исполняемый файл


1-1080631571
_Andy_
2004-03-30 11:26
2004.04.18
Outlook SideBar?


1-1080734556
SisiusP
2004-03-31 16:02
2004.04.18
Перехват ShortCut через ApplicationEvents?


14-1080199132
Соловьев
2004-03-25 10:18
2004.04.18
Несколько идей по спасению сайта.




   Наверх