Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2009.10.04;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.006 c
2-1248519920
Pirog
2009-07-25 15:05
2009.10.04
Вариантный массив


2-1245821819
Elun
2009-06-24 09:36
2009.10.04
AlphaControls+TImage


15-1248955155
Galera
2009-07-30 15:59
2009.10.04
Tool для Delphi


15-1249126212
Kerk
2009-08-01 15:30
2009.10.04
Как пережить финансовый кризис?


15-1249495859
tomkat
2009-08-05 22:10
2009.10.04
Активация Delphi 6





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский