Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

DrawGrid


Страницы:   1 2 3

nickolayLI ©   (2002-10-24 01:18:00) 

Привет всем!

как можно сразу отобразить изменения в Гриде, а то пока окошко не сминимизируешь, изменения не обновятся :(

спасибо.


han_malign   (2002-10-24 10:14:00) [21]

Кстати, если перекрывать DrawGrid, то есть еще
protected
procedure InvalidateCell(ACol, ARow: Longint);
procedure InvalidateCol(ACol: Longint);
procedure InvalidateRow(ARow: Longint);
- если меняется содержимое одной ячейки(столбца, колонки)- то перерисовка быстрее


nickolayLI   (2002-10-24 10:03:00) [22]

OnDrawCell?


Song   (2002-10-24 09:54:00) [23]

после изменения содержимого ячейки при условии что есть обработчик onDraw*


nickolayLI   (2002-10-24 09:44:00) [24]

где ты его вставлял?


Song   (2002-10-24 09:38:00) [25]

Я всегда пользовался RePaint"ом. RePaint=Update+Invalidate


nickolayLI   (2002-10-24 09:38:00) [26]

хм... всеравно че-то не то :(


ЮЮ   (2002-10-24 09:23:00) [27]

Grid.Invalidate
В том месте, где меняешь CountClient.Count. Иначе откуда Гриду знать, что надо перерисоваться :-)


nickolayLI   (2002-10-24 09:18:00) [28]

Млин... Где ты раньше был, был бы ты сейчас здесь расцеловал бы :))


Ученик   (2002-10-24 09:13:00) [29]

DrawGrid1.Invalidate


nickolayLI   (2002-10-24 09:05:00) [30]

ну сделал всеравно таже фигня :(


nickolayLI   (2002-10-24 08:52:00) [31]

всмысле компоненту новую? :)


Separator   (2002-10-24 08:43:00) [32]

Поробуй создавать Grid вручную, т.е. сделай от него наследника и перепиши DrawCell процедуру.


nickolayLI   (2002-10-24 08:39:00) [33]

дык не обновляется :((


Separator   (2002-10-24 08:37:00) [34]

ну так все должно работать, попробуй Repaint или у формы Update


nickolayLI   (2002-10-24 08:29:00) [35]

это СтрингЛист, он заполняется, когда к серверу кто-нить подключился... при ServerSocket1Accept();


Separator   (2002-10-24 08:27:00) [36]

А откуда берется CountClient


nickolayLI   (2002-10-24 08:18:00) [37]

так у меня тоже работает, а вот так вот
if CountClient.Count > 0 then begin
^^^^^^^^^^^^^^^^^^^^^^^^^^
Canvas.Brush.Color := clbtnFace;
Canvas.FillRect(Rect);
Canvas.TextOut(Rect.left + 32, rect.top + 2, "Hi");
end else begin
Canvas.TextOut(Rect.left + 32, rect.top + 2, "Hi");
end;
вот с таким условием не работает, перерисовка сразу не идет, а отрисовавывается когда форму перекроешь и потом опять активной сделаешь


Separator   (2002-10-24 07:56:00) [38]

При каком условии не обновляется? У меня все нормально получается


nickolayLI   (2002-10-24 07:48:00) [39]

ну так же и делается просто я забыл написать StringGrid1, и должно выполнится условие CountClient.Count > 0.


Separator   (2002-10-24 07:06:00) [40]

procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
begin
if ( ( ARow > 0 ) and (ACol=0) ) then
with StringGrid1 do
begin
Canvas.Brush.Color := clbtnFace;
Canvas.FillRect(Rect);
Canvas.TextOut(Rect.left, rect.top, "Hi")
end
end;


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо