Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.11.14;
Скачать: CL | DM;

Вниз

StringGrid.Objects... Вопросы реализации   Найти похожие ветки 

 
Cosinus ©   (2004-10-27 13:43) [0]

Господа! Никак не пойму, что я не так делаю...
Вот так в Objects некоторых ячеек записывается цвет шрифта
Data_sg.Objects[j,i]:=pointer(integer(Color));
А вот так я его (цвет) вынимаю
procedure TMainForm1.Data_sgDrawCell(Sender: TObject; ACol, ARow: Integer;
 Rect: TRect; State: TGridDrawState);
begin
 data_sg.Font.Color:=Integer(Data_sg.objects[ACol,ARow]);
end;

Идет постоянная перерисовка (моргает и дергается). Подскажите, в чем дело?


 
Pentium133 ©   (2004-10-27 13:47) [1]

Изменение цвета шрифта грида вызывает повторный вызов этого события. И так - постоянно.


 
clickmaker ©   (2004-10-27 13:47) [2]


> data_sg.Font.Color :=

Этим ты загоняешь его в рекурсию: он опять вызывает OnDrawCell и т.д.


 
Pentium133 ©   (2004-10-27 13:47) [3]

Нужно использовать OnDrawCell


 
Johnmen ©   (2004-10-27 13:49) [4]

А чтоб избавиться, просто ещё иф
if data_sg.Font.Color<>Integer(Data_sg.objects[ACol,ARow]) then ...


 
Pentium133 ©   (2004-10-27 13:50) [5]


> Pentium133 ©   (27.10.04 13:47) [3]

Не это имел в видe :))
В данном случае изменяй цвет и выводи текст средствами Canvas


 
Cosinus ©   (2004-10-27 13:53) [6]


> Johnmen ©   (27.10.04 13:49) [4]

Как ни странно, не прокатывает ;)

> Pentium133 ©   (27.10.04 13:50) [5]

Дело в том, что все работало в немного другом виде. Я просто совершенно нечаянно убил кусок кода, который был в DrawCell. А теперь никак восстановить не могу


 
Pentium133 ©   (2004-10-27 13:55) [7]

Ну я тебе и говорю что надо написать раз не можешь востановить то что было...


 
MBo ©   (2004-10-27 14:04) [8]

Если ты посмотришь на любой приличный пример использования DrawCell, хотя бы в справке, то увидишь, что цвет шрифта компонента не меняют, а работают со шрифтом его Canvas, и тут же вручную выводят текст.


 
Cosinus ©   (2004-10-27 14:25) [9]

Всем спасибо. Работа с Canvas действительно решила все проблеммы...
 with Sender as TStringGrid,Canvas do
 begin
   Font.Color:=Integer(objects[ACol,ARow]);
   TextOut(Rect.Left + 2, Rect.Top + 2, Cells[ACol, ARow]);
 end



Страницы: 1 вся ветка

Текущий архив: 2004.11.14;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.025 c
4-1097041381
Суслик
2004-10-06 09:43
2004.11.14
Шрифт


1-1098939874
Restor
2004-10-28 09:04
2004.11.14
Свой тип файла


4-1096864284
Сергей Ю.
2004-10-04 08:31
2004.11.14
Проблема с SetForegroundWindows


14-1098912615
хм
2004-10-28 01:30
2004.11.14
как же больно


1-1099132875
olevacho
2004-10-30 14:41
2004.11.14
как создать службу на Делфи