![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
StringGrid событие DrawCell [D2005, XP]
alex810 © (2006-11-17 09:10:00)Помогите пожалуйста как мне можно вызвать процедуру DrawCell щелчком по кнопке. Я думаю так но не знаю что такое Rect: TRect
procedure TForm1.Button1Click(Sender: TObject);;
begin
TForm3.StringGrid2DrawCell(StringGrid2, X, Y, ?????, gdFixed);
end
ЮЮ (2006-11-17 11:27:00) [61]Обраьотчик OnDrawCell вызывается <количкство видимых строк> * <количкство видимых столбцов раз> и SelectedColor при этих вызовах один и тот же
Elen (2006-11-17 11:27:00) [62]
> Помогите пожалуйста как мне можно вызвать процедуру DrawCell
> щелчком по кнопке. Я думаю так но не знаю что такое Rect:
> TRect
>
> procedure TForm1.Button1Click(Sender: TObject);
> begin
> TForm3.StringGrid2DrawCell(StringGrid2, X, Y, ?????, gdFixed);
>
> end;
> alex810
Этот код сработает только для одной ячейки (если вообще сработает). Тебе нужен цикл (Хотя уверенности в этом совете у меня нет)
alex810 (2006-11-17 11:27:00) [63]
> Отвечу еще раз. Этот метод не вызываю в рукописном коде.
> Это - самый настоящий обработчик события. Всякий раз, когда
> грид должен нарисовать ячейку он вызывает этот метод. И
> именно в этом методе ты и должен разукрасить эту ячейку
> так как надо.
> StringGrid.Inavalidate - перерисуются все видимые ячкйки
> грида
Так что то есть. Но как мне задать какие ячейки надо пересивать.
alex810 (2006-11-17 11:25:00) [64]
> Я тебе по секрету скажу. Можешь поставить что угодно, хоть
> свои паспортные данные, результат от этого не изменится.
>
Спосибо за дельный совет я ставил
StringGrid2DrawCell( StringGrid2, X, Y, (тут я не знаю что ставить), gdFixed);
ЮЮ (2006-11-17 11:23:00) [65]
> Задам вопрос еще раз. Что мне ставить после скобок при вызове
> процедуры
Отвечу еще раз. Этот метод не вызываю в рукописном коде. Это - самый настоящий обработчик события. Всякий раз, когда грид должен нарисовать ячейку он вызывает этот метод. И именно в этом методе ты и должен разукрасить эту ячейку так как надо.
StringGrid.Inavalidate - перерисуются все видимые ячкйки грида
alex810 (2006-11-17 11:22:00) [66]
> Ну и где здесь разноцветный грид, если используется только
> один цвет SelectedColor?
SelectedColor - перемення которая берет цвет с массива Colors[Tag] [Tag] - идентификатор цвета который берется с Edit.Tag
procedure TForm3.Edit1Click(Sender: TObject);
begin
with TEdit(Sender) do
begin
SelectedColor:=Colors[Tag];
end;
end;
ASoft (2006-11-17 11:22:00) [67]
> alex810 © (17.11.06 11:19) [87]
>
> Задам вопрос еще раз. Что мне ставить после скобок при вызове
> процедуры
а такой вопрос был что ли?.. просмотрел я однако...
Плохиш (2006-11-17 11:21:00) [68]
> alex810 © (17.11.06 11:19) [87]
> Задам вопрос еще раз. Что мне ставить после скобок при вызове
> процедуры
>
> StringGrid2DrawCell(????????????????)
Я тебе по секрету скажу. Можешь поставить что угодно, хоть свои паспортные данные, результат от этого не изменится.
Elen (2006-11-17 11:20:00) [69]
> alex810
ИМХО тут проблема не в реализации а в постановке задачи и способе решения. Продумай, Автор, еще раз что и как хочеш получить в мелочах.
ЮЮ (2006-11-17 11:19:00) [70]
> alex810 © (17.11.06 11:17) [83]
Ну и где здесь разноцветный грид, если используется только один цвет SelectedColor?
alex810 (2006-11-17 11:19:00) [71]Задам вопрос еще раз. Что мне ставить после скобок при вызове процедуры
StringGrid2DrawCell(????????????????)
StringGrid2DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
ASoft (2006-11-17 11:19:00) [72]о, присутствует... ну что ж за связь такая :(
Elen (2006-11-17 11:18:00) [73]
> а как хорошо начиналось
Главное хорошо кончить (т.е. закончить)... ХМ прикольная ветка - не дает мне в преферанс доиграть
ASoft (2006-11-17 11:18:00) [74]>alex810
...хоть кусочек кода, где у тебя красится все или не красится.
кстати, а OnDrawCell у тебя присутствует в Гридах? Так... риторически спрашиваю
Elen (2006-11-17 11:17:00) [75]
> Я так и сделал
Ну так сопоставляеш индент в таге с цветом папочки и получаеш нужную связку
alex810 (2006-11-17 11:17:00) [76]
> Ты хоть раз приведёшь код этого злосчастного OnDrawCell,
> который до закрытия программы все красит как надо, а после,
> изверг, никак не хочет?
procedure TForm3.StringGrid2DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
begin
if (state = [gdSelected]) then
with TStringGrid(Sender), Canvas do
begin
Brush.Color := SelectedColor;
TextRect(Rect, Rect.Left + 2, Rect.Top + 2, Cells[aCol, aRow]);
FillRect(Rect);
end;
end;
Elen (2006-11-17 11:15:00) [77]
> ЛЮДИ Давайте я скину кому нибудь на мыло скриншот с объяснение
> что мне нужно. Может он более понятней сформирует вопрос
> чем я.
Только не мне!!! Я точно не пойму скрин - я уже ничего не понимаю... Привет Кондратик!
Плохиш (2006-11-17 11:15:00) [78]
> Elen © (17.11.06 11:13) [77]
>
> > Плохиш
>
> Описка !!!
Ну вот :-( а как хорошо начиналось ;-)
Плохиш (2006-11-17 11:14:00) [79]
> Может он более понятней сформирует вопрос чем я.
100 Euro по предоплате за правильно сформулированный вопрос :-)
alex810 (2006-11-17 11:14:00) [80]
> В Эдитах есть свойство tag. Туда и можно заложить твой иденты.
[73]
Я так и сделал