Текущий архив: 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.45 MB
Время: 0.036 c