Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Ошибка в наследнике TStringGrid


Автор: hawkins 8.12.2004, 07:55
Здраствуйте!Помогите понять ошибку:
Написал компонент - наследник TStringGrid. Добавил несколько
свойств, перегрузил процедуры Paint, DrawCell. Далее написал
программу: окно создает дочернее окно с несколькими стринг гридами(мой компонент) ,
если окрывать и закрывать дочернее окно несколько раз подряд то выползает ошибка 'Параметр задан неверно', затем ошибка 'Canvas dose not allow drawing' и зависает. А вот если в компоненте закоментировать кусок (в тексте компонента коментарий), то все нормально. Не пойму никак в чем дело ...

Далее сокращенный текст компонента:

TMy_StringGrid=class(TStringGrid)

private

procedure DrawCell(ACol, ARow: Longint; ARect: TRect;
AState: TGridDrawState); override;
private
...

protected
...
FIndicators:TImageList;
FIndicators2:TImageList;
...
public
...
constructor Create(AOwner: TComponent);override;
destructor Destroy;
procedure Paint;override;
...
implementation

const
bmKey = 'AD_KEY2';
bmStar='AD_STAR';

...

constructor TMy_StringGrid.Create(AOwner: TComponent);
var
Bmp: TBitmap;
Bmp2:TBitmap;
begin
//-- Если далее поставить коментарий то ошибки в про-ме не будет

//-------- здесь начинается коментарий -------------
Bmp := TBitmap.Create;
Bmp2:=TBitmap.Create;
try
Bmp.LoadFromResourceName(HInstance, bmKey);
Bmp2.LoadFromResourceName(HInstance, bmStar);

FIndicators := TImageList.CreateSize(Bmp.Width, Bmp.Height);
FIndicators2 := TImageList.CreateSize(Bmp2.Width, Bmp2.Height);
FIndicators.AddMasked(Bmp, clWhite);
FIndicators2.AddMasked(Bmp2, clWhite);
finally
Bmp.Free;
Bmp2.Free;
end;
//-------------- здесь коментарий заканчивается -------

inherited Create(AOwner);

end;

destructor TMy_StringGrid.Destroy;
begin
FIndicators2.Free;
FIndicators2.Free;
inherited Destroy;
end;
...


Автор: bear 9.12.2004, 07:03
inherited Create(AOwner);в конструкторе поставь сразу после begin


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)