Текущий архив: 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.46 MB
Время: 0.041 c