Вниз
Скачать: 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.027 c
3-1079610909
yura_2
2004-03-18 14:55
2004.04.18
Возвращаемой в запросе величине присвоить значение переменной


7-1076972335
ripp
2004-02-17 01:58
2004.04.18
Надо мониторить передачу COM port.


14-1079932827
Sphinx
2004-03-22 08:20
2004.04.18
Что такое хорошо и что такое плохо


1-1080550116
krush
2004-03-29 12:48
2004.04.18
Перекрыто ли окно


1-1080592005
csr
2004-03-30 00:26
2004.04.18
Изменение позиции в TextFile




   Наверх