Форум: "Основная";
Текущий архив: 2003.09.08;
Скачать: [xml.tar.bz2];
ВнизРабота с классами Найти похожие ветки
← →
Rel_ (2003-08-28 11:47) [0]type
TField = class(TCustomControl)
private
public
constructor create (AOwner : Tcomponent); override;
end;
TPoint = class(TObject)
private
FFieldPtr: Pointer;
public
procedure DrawPoint();
constructor Create(_FField: Pointer);
end;
{TField}
constructor TField.create (Aowner : TComponent);
var
Pnt: TPoint;
begin
Pnt := TPoint.Create(Self);
end;
{ TPoint }
constructor TPoint.Create(_FField: Pointer);
Begin
FFieldPtr := _FField;
end;
procedure TPoint.DrawPoint;
var
FDC : HDC;
FField : TField;
begin
FField := TField(FFieldPtr);
FDC := GetDC(FField.Handle);
...
end;
----------
Создаю класс TField, в конструкторе которого создаю
класс TPoint в конструкотр которого передаю указатель
класса TField. В отрисовщике пытаюсь обратиться к
переданному указателю, но вылетает Inaccessible type
после FField := TField(FFieldPtr).
TField энто же по сути дела не объект а указатель на него. Неужели следует разыменовывать FField := TField(FFieldPtr^) ??? - кстати, здесь тоже вылетает ошибка.
Подскажите плиз, что делаю не так?
← →
Skier (2003-08-28 11:50) [1]1) в constructor TField.create (Aowner : TComponent); отсутствует
inherited
2) класс TPoint лучше переименовать, т.к. в Delphi уже есть тип TPoint
← →
Rel_ (2003-08-28 11:56) [2]Спасибо, ща попробую !!!
← →
Rel_ (2003-08-28 11:58) [3]Попробовал. Всё равно ошибка вылетает.
← →
Skier (2003-08-28 11:59) [4]>[3] Rel_ (28.08.03 11:58)
Код полностью !
← →
ZoKr (2003-08-28 12:00) [5]TField кстати тоже есть в Delphi(базы данных)...
← →
Skier (2003-08-28 12:01) [6]>ZoKr (28.08.03 12:00)
Угу. Точно. Проглядел...
← →
han_malign (2003-08-28 12:04) [7]А почему бы не заменить Pointer на TField??? ИМХО - это правильней, с точки зрения отлова ошибок на этапе компиляции...
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.09.08;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.008 c