Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Ошибка :(


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;


Наверх

Титульная страница Поиск, карта сайта Написать письмо