Форум: "Основная";
Текущий архив: 2004.10.10;
Скачать: [xml.tar.bz2];
ВнизПодскажиет где торомжу, поему возникает ошибка 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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.037 c