![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ошибка :(
TCrash © (2006-12-25 12:13:00)Есть код
unit cScreenShot;
interface
uses Classes,Graphics,SysUtils,Windows;
type
TScreenShot=class
BitMap: TBitMap;
DC: HDC;
constructor Create;
destructor Destroy; override;
end;
var ScrSht: TScreenShot;
implementation
constructor TScreenShot.Create;
begin
inherited Create;
DC:=GetDC(0);
BitMap:=TBitMap.Create;
end;
На выделеной строке вылезает ошибка: Object or class type required.
Смотрим хелп :This error message is given when the syntax 'Typename.Methodname' is used, but the typename does not refer to an object or class type. Но в классе TBitMap есть метод Create.
Подскажите плиз в чем тут дело.
Loginov Dmitry (2006-12-25 15:57:00) [1]> А чем оно там мешает-то?
Контекст вывода желательно вероятно следует получать непосредственно перед его использованием.
Джо (2006-12-25 15:40:00) [2]> [6] Loginov Dmitry © (25.12.06 15:33)
> Вероятно, из конструктора это следует убрать.
А чем оно там мешает-то?
Loginov Dmitry (2006-12-25 15:33:00) [3]<offtop>
> DC:=GetDC(0);
Вероятно, из конструктора это следует убрать.
</offtop>
Anatoly Podgoretsky (2006-12-25 12:34:00) [4]> TCrash (25.12.2006 12:30:04) [4]
У тебя имелся в виду, а у компилятора?
TCrash (2006-12-25 12:30:00) [5]icWasya © (25.12.06 12:23) [1]
Спасибо, щаз попробую.
Zaw © (25.12.06 12:25) [3]
Имелся в виду именно Graphics.TBitMap
Zaw (2006-12-25 12:25:00) [6]TBitmap = tagBITMAP;
tagBITMAP = packed record
bmType: Longint;
bmWidth: Longint;
bmHeight: Longint;
bmWidthBytes: Longint;
bmPlanes: Word;
bmBitsPixel: Word;
bmBits: Pointer;
end;
TBitmap это не class, а record, соответственно нет и конструктора...
Ega23 (2006-12-25 12:24:00) [7]Данный код работает.
icWasya (2006-12-25 12:23:00) [8]В модуле Windows тоже есть свой TBitmap, отличающийся от Graphics TBitmap.
Что бы устранить ошибку есть два пути -
1. В списке usesвсегда указывать Windows передGraphics
2. В спорных случаях использовать явное указание модуля, откуда берётся класс
Bitmap : Graphics.TBitmap
Bitmap := Graphics.TBitmap.Create;