Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.18;
Скачать: 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 вся ветка

Текущий архив: 2004.04.18;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.022 c
3-1079942830
ikondakov
2004-03-22 11:07
2004.04.18
Синхронизация нескольких таблиц .dbf


4-1076529309
.Дима
2004-02-11 22:55
2004.04.18
SID хозяина приложения


6-1076263145
Захар
2004-02-08 20:59
2004.04.18
Как построить почтовый (SMTP & POP3) сервер?


8-1070778728
intell
2003-12-07 09:32
2004.04.18
Как мне сделать Image полупрозрачным?


11-1061979911
mdw
2003-08-27 14:25
2004.04.18
Версия 1.83