IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

> Вызов события, OnDrawCell
сообщение
Сообщение #1


Бывалый
***

Группа: Пользователи
Сообщений: 195
Пол: Мужской
Реальное имя: Сергей

Репутация: -  2  +


В общем я хочу чтобы у меня после какого-то действия вызывалась процедура OnDrawCell для StringGrid'a.
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);

Подскажите пожалуйста как можно эту процедуру вызвать из какого-либо участка кода?


--------------------
♣♣♣
"Себя великим не считай, гордясь величьем предков,
Величья не добудешь ты и золота ценою!
Хоть светит на небе луна, но отраженным светом -
Чужою славой не живи, не будь второй луною!!!"
♣♣♣
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Гость






Цитата
пытался сделать что-то типа этого... не вышло в итоге
Этого недостаточно. Такой способ сработает только при простых типах (копирование Integer-ов, строк всяких). А Picture - это сложный тип, его надо копировать по-другому:

procedure TForm1.Button3Click(Sender: TObject);

// Чтоб не таскать за собой все время эту длинную строку - сокращаем:
function GetPic(i, j: integer): TPicture;
begin
result := (ArrPanels[i, j].Components[0] as TImage).Picture;
end;

// Это процедура копирования изображения из CopyFrom в CopyTo.
// При этом CopyFrom затирается...
procedure CopyPic(CopyTo: TPicture; CopyFrom: TPicture);
begin
CopyTo.Assign(CopyFrom);
CopyFrom := nil;
end;

var
Pic: TPicture;
begin
// А вот теперь - сам обмен, как и с целыми. Только сначала
// надо создать класс нужного типа, а потом его удалить. А так - все как и обычно...
Pic := TPicture.Create;
CopyPic(Pic, GetPic(4, 4));
CopyPic(GetPic(4, 4), GetPic(2, 2));
CopyPic(GetPic(2, 2), Pic);
Pic.Free;
end;



Цитата
И как Sender может быть другого типа в данном случае?
Не надо отвечать вопросом на вопрос. Я тебя спросил, почему Sender не может быть другого типа. И что будет, если это произойдет.
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Сергей Меркурьев   Вызов события   27.06.2010 22:21
Unconnected   Ну так и вызываешь, form1.StringGrid1DrawCell(Send…   27.06.2010 22:35
Сергей Меркурьев   Так ему Sender не нравится... Пишет следующее [Err…   27.06.2010 22:37
volvo   Налицо ошибка проектирования. Событие не должно вы…   27.06.2010 23:40
Сергей Меркурьев   Что касается видимости ячеек, то этого у меня не п…   27.06.2010 23:52
volvo   Похоже, ты не понимаешь основ событийного программ…   28.06.2010 0:32
Сергей Меркурьев   Хорошо объясню ситуацию по конкретнее. Спасибо что…   28.06.2010 0:41
volvo   Не использовать StringGrid для работы с изображени…   28.06.2010 3:35
Сергей Меркурьев   Вы везде употребляете слово "автоматически…   28.06.2010 13:47
Unconnected   Ну наверное имелось в виду при запуске программы с…   28.06.2010 15:46
volvo   Когда я говорю "автоматически" - подразу…   28.06.2010 16:03
Сергей Меркурьев   Действительно, оказывается всё настолько просто :)…   28.06.2010 19:04
Client   Думаю, что этот обработчик надо установить для все…   28.06.2010 20:18
volvo   Комментарии к коду читал? Там все написано. А во …   28.06.2010 21:15
Сергей Меркурьев   Спасибо!   28.06.2010 21:37
Сергей Меркурьев   А вот еще один вопрос по поводу первых процедур - …   30.06.2010 20:34
volvo   Ну, например, написать вот такую вот функцию: // …   30.06.2010 20:56
Сергей Меркурьев   А как сделать обмен таких изображений, зная коорди…   30.06.2010 22:34
Client   А что ты делаешь если надо поменять 2 переменные ц…   30.06.2010 23:00
Сергей Меркурьев   b1 := arrPanels[x,y].Components[0] as TImage; …   30.06.2010 23:03
Client   свойство Picture тоже поменяй   30.06.2010 23:20
volvo   Этого недостаточно. Такой способ сработает только …   30.06.2010 23:39
Сергей Меркурьев   volvo, в общем-то я затрудняюсь ответить на Ваши в…   1.07.2010 12:42


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 20.04.2024 9:30
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name