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

Вниз

stringgrid ondrawcell в отдельном модуле   Найти похожие ветки 

 
bag   (2009-08-03 15:05) [0]

Можно ли как нибудь вынести код ondrawcell в отдельнй юнит и оттуда импортировать? если да то научите


 
Kolan ©   (2009-08-03 15:16) [1]

Можно — сделайте функцию в отдельном модуле с нужными параметрами и вызывайте её из обработчика.

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


 
bag   (2009-08-03 15:32) [2]

   if S = "+" then
     if (ACol >= 0) and (ARow >= 0) then
     begin
       Canvas.Brush.Color := $00C1C1FF;
       Canvas.Font.Style := [fsbold];
       Canvas.Font.Size := 13;
       Canvas.FillRect(Rect);

       SG6_1.Canvas.TextOut(rect.left + 4, rect.top, S);
     end;


не представляю как засунуть его в функцию


 
Kolan ©   (2009-08-03 15:39) [3]

Ну давайте посмотрим. В этой функции вам нужны: ACol, ARow, Canvas и какой-то SG6_1.

Значит у функции в отдельном модуле будет примерно такой интерфейс:
procedure MyDrewCell(ACol, ARow: Integer; Canvas: TCanvas; SG6_1: <Нужный тип>);

Некий SG6_1 вызывает подозрение, так как он не позволяет сделать функцию универсальной, а без этого она не нужна.


 
Плохиш ©   (2009-08-03 15:40) [4]

Ради 9-ти строк городить огород. Используй {$INCLUDE filename}


 
bag   (2009-08-03 15:42) [5]

у меня около 5 стрингов, по 80 строчек в каждом...


 
bag   (2009-08-03 15:44) [6]

ок, Kolan,
with sg6_1 do
begin

...
   if S = "+" then
     if (ACol >= 0) and (ARow >= 0) then
     begin
       Canvas.Brush.Color := $00C1C1FF;
       Canvas.Font.Style := [fsbold];
       Canvas.Font.Size := 13;
       Canvas.FillRect(Rect);

       Canvas.TextOut(rect.left + 4, rect.top, S);
     end;
...
end;


как то так


 
Kolan ©   (2009-08-03 15:49) [7]

Ну, я же ответил выше. Тоже самое, только без SG6_1. Вызов будет таким:

with sg6_1 do
begin

...
 MyDrewCell(ACol, ARow, Canvas)  
...
end;


Правда ваша модификация весьма подозрительна. Раньше вы что-то рисовали на каком-то компоненте (вероятно на форме), а текст выводили на канву SG6_1. А после модификации вы и рисуете и текст выводите на канву SG6_1.


 
Плохиш ©   (2009-08-03 15:51) [8]


> bag   (03.08.09 15:44) [6]

Из описания функции MyDrewCell надо убрать первые три параметра.


 
Kolan ©   (2009-08-03 15:52) [9]

Плохиш, теперь я ничего не понимаю, а как тогда рисовать?


 
Плохиш ©   (2009-08-03 15:53) [10]


> Kolan ©   (03.08.09 15:49) [7]


> Правда ваша модификация весьма подозрительна.

Ой, да ладно, как-будто первый день на форуме, давно пора привыкнуть к партизанам...


 
Плохиш ©   (2009-08-03 16:01) [11]


> Kolan ©   (03.08.09 15:52) [9]
>
> Плохиш, теперь я ничего не понимаю, а как тогда рисовать?
>

Чё понимать-то? Достаточно передать грид, канвас с ним же и передасца :-)
Хотя ARow и ACol тоже передать надо. Хм, подозреваю, что данное дело в OnXXXDraw выполняется, тогда переменных с гридами, типа sg6_1, совершенно не к чему...


 
Kolan ©   (2009-08-03 16:20) [12]

Вообще — да, сам грид наверно даже лучше передать, чтобы в функции было понятно, что именно на канве грида рисуется. А то рисование наверняка основано на специфики грида, а канву передать можно любую.


 
Anatoly Podgoretsky ©   (2009-08-03 16:29) [13]


> Можно ли как нибудь вынести код ondrawcell в отдельнй юнит
> и оттуда импортировать? если да то научите

А в чем дзен?


 
bag   (2009-08-03 17:04) [14]

в общем надо еще передовать rect в параметрах, тогда рисует как надо, если не указать то грид будет жестоко искаверкан.

Спасибо, парни!


 
icWasya ©   (2009-08-03 17:42) [15]

Вообще говоря в ondrawXXX Sender и есть этот самый грид.



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

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

Наверх




Память: 0.5 MB
Время: 0.014 c
2-1248937296
dmitry1991
2009-07-30 11:01
2009.10.04
#1 - что это за символ?


15-1249286693
cwl
2009-08-03 12:04
2009.10.04
Аудионаркотики


15-1249310183
pasha_golub
2009-08-03 18:36
2009.10.04
Вызов Free (Destroy) внутри метода объекта


2-1249024539
hinst
2009-07-31 11:15
2009.10.04
wm_needpaint


2-1249185321
Disa
2009-08-02 07:55
2009.10.04
При перетаскивании файла на форму, он открывался