Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ошибка в наследнике TStringGrid, Ошибка в наследнике TStringGrid 
:(
    Опции темы
hawkins
Дата 8.12.2004, 07:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 148
Регистрация: 8.9.2003

Репутация: нет
Всего: нет



Здраствуйте!Помогите понять ошибку:
Написал компонент - наследник 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;
...


PM MAIL   Вверх
bear
Дата 9.12.2004, 07:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 15.6.2004

Репутация: нет
Всего: нет



inherited Create(AOwner);в конструкторе поставь сразу после begin


PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0682 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.