Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.10.10;
Скачать: CL | DM;

Вниз

Подскажиет где торомжу, поему возникает ошибка Object or Class   Найти похожие ветки 

 
Rule ©   (2004-09-28 11:22) [0]

Type Requared. Пишу простого наследника дбгрида, в котором отображается графика вот код
unit Unit2;

interface
uses DB, DBGRIDS,  Graphics, DBTables, WinTypes, Classes, Grids;
type
 TDBMyGRID= class (TDBGrid)
   protected
     procedure DrawDataCell(const Rect:TRect; Field:TField; State:TGridDrawState);override;
   end;

implementation

procedure TDBMyGrid.DrawDataCell(const Rect:TRect; Field:TFIeld;
State:TGRidDrawState);
var
BitMap1 : TBitMap;
begin

   with Canvas do
   begin
       FillRect(Rect);
       if Field  is TGraphicField then
       try
            ошибка при компиляции возникает тут:
           BitMap1:=TBitMap.Create;

           BitMap1.Assign(Field);
           Draw(Rect.Left, Rect.Top, BitMap1);
       finally
           BitMap1.Free;
       end
       else
           TextOut(Rect.Left, Rect.Top, Field.Text);
      end;
 end;
end;


 
Ozone ©   (2004-09-28 11:28) [1]

Ну во-первых TBitMap.Create нужно делать до try..finally, а во-вторых что пишет-то, какую ошибку?


 
Rule ©   (2004-09-28 11:31) [2]

Вопрос, почему делать до, непонятно, по логике вешей я создаю объект внутри конструкции и в финали обеспечиваю освобождение памяти в любом случае, даже если позникла ошибка,
а ошибка такая:
Object or Class type required.


 
TUser ©   (2004-09-28 11:35) [3]

Я думаю, что Assign от TField - это ему наверное не нравится.


 
Гаврила ©   (2004-09-28 11:40) [4]

А я знаю в чем дело
У тебя в Uses не обхявлен Graphics
и Delphi цепляет тип TBitmap из модуля Windows - он там есть ,и это record


 
Гаврила ©   (2004-09-28 11:41) [5]

А, объявлен.... все равно, Graphics должен быть объявлен после WinTypes
(кстати WinTypes давно пора заменить на Windows)


 
Гаврила ©   (2004-09-28 11:43) [6]

BitMap1.Assign(Field);

а это бред


 
TUser ©   (2004-09-28 11:43) [7]

И все равно Assign от TField"а не получиться


 
Ozone ©   (2004-09-28 11:43) [8]

Убери WinTypes


 
Rule ©   (2004-09-28 11:44) [9]

TUser ©   (28.09.04 11:35) [3]
Не тута все нормально
Гаврила ©   (28.09.04 11:40) [4]
Ого спасибо, даже бы и не догадался бы :)
Гаврила ©   (28.09.04 11:41) [5]
Уже заменил :)

Всем огромное спасибо за помощь


 
DiamondShark ©   (2004-09-28 12:24) [10]


> TUser ©   (28.09.04 11:43) [7]
> И все равно Assign от TField"а не получиться

Да правда, что-ли?!

{DB.pas}
procedure TBlobField.AssignTo(Dest: TPersistent);
begin
 if Dest is TStrings then
 begin
   SaveToStrings(TStrings(Dest));
   Exit;
 end;
 if Dest is TBitmap then
 begin
   SaveToBitmap(TBitmap(Dest));
   Exit;
 end;
 if Dest is TPicture then
 begin
   SaveToBitmap(TPicture(Dest).Bitmap);
   Exit;
 end;
 inherited AssignTo(Dest);
end;



Страницы: 1 вся ветка

Текущий архив: 2004.10.10;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.044 c
14-1093725767
Marser
2004-08-29 00:42
2004.10.10
Вопрос спортсменам


4-1094536121
Multy
2004-09-07 09:48
2004.10.10
Как эмулировать нажатие клавиатуры и перемещение мыши?


1-1096259413
POSO
2004-09-27 08:30
2004.10.10
Выбранный компонент


6-1091143428
rosl
2004-07-30 03:23
2004.10.10
сообщение


1-1096272219
Dimastiy04
2004-09-27 12:03
2004.10.10
Расстягивание скинообразной формы приложения