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

Вниз

Можно ли как-нибудь выделить одну ячейку в DBGride?   Найти похожие ветки 

 
WFS ©   (2007-08-01 11:53) [0]

Коллеги, добрый день!
Мне нужно выделить одну ячейку любым способом:  Цветом, шрифтом или чем нибудь типа того.
Проблема в том, что понятие, например, шрифта, применимо ко всему дбгриду. Менять цвет я пытался через DBgrid.Canvas, но ничего не получилось.
Может у кого нибудь есть более умные варианты или предложения:)


 
Плохиш ©   (2007-08-01 11:56) [1]

OnDrawColumnCell


 
WFS ©   (2007-08-01 12:27) [2]

Спасибо!


 
WFS ©   (2007-08-01 12:45) [3]

Наверно, вы не так поняли.
Допустим, у меня в дб гриде 10 рядов и 10 колонок.
Мне нужно выделить те колонки, которые не пустые, например [2,5] и [5,6], то есть, чтобы они выделялись не каким то событием, а в каком то другом событии, например в Form.Create. И нужно, чтобы они сохранялись выделенными на протяжении работы всей программы.


 
Dib@zol ©   (2007-08-01 12:48) [4]

Посмотри код обработчика выданного тебе события. Затем используй Copy-Paste, Люк.


 
Плохиш ©   (2007-08-01 12:49) [5]


> WFS ©   (01.08.07 12:45) [3]

"Выделение" ячейки - это отрисовка данной ячейки по алгоритму связанному с условием выделения. При отрисовке ячейки вызывается событие OnDrawColumnCell, вот в нём и нужно изменять параметры отрисовки в зависимости от условий.


 
WFS ©   (2007-08-01 13:17) [6]

Понятно, я немного с параметрами не разберусь

Вот я пишу:

{-----}
DBNavigator1.BtnClick(nbnext);
for i:=1 to 10 do
if Table1.fields.fields[i].asstring <>"" then
   DBGrid1.OnDrawColumnCell (Sender:TObject; const Rect: TRect;
 DataCol: Integer; Column: TColumn; State: TGridDrawState);

 Немного непонятно с параметрами:
   Sender я так и оставляю.
  DataCol в данном случае - это i
 Что делать с остальными?
Rect характеризует координаты, которые я не использую, где их брать
Column - это просто множество столбцов
State - это набор , я незнаком с эти типом.


 
Плохиш ©   (2007-08-01 13:19) [7]


> WFS ©   (01.08.07 13:17) [6]

А справку по OnDrawColumnCell слабо прочитать? Лучше тупо топтать кнопки?


 
WFS ©   (2007-08-01 13:22) [8]

У меня нет хелпа в делфи


 
Игорь Шевченко ©   (2007-08-02 10:12) [9]


> У меня нет хелпа в делфи


Зачем стер ?


 
WFS ©   (2007-08-02 11:39) [10]

я не стирал, версия то пиратская:)


 
Игорь Шевченко ©   (2007-08-02 11:40) [11]

WFS ©   (02.08.07 11:39) [10]

Даже в пиратской версии есть help.  еще лучше скачай бесплатную Turbo Delphi 2006 Explorer и будь чист перед законом:)


 
WFS ©   (2007-08-02 11:45) [12]

А,если нетрудно, может напишешь, как например, выделить ячейку, к примеру [2,5]? А то все дают какие то непонятные советы, а напрямую никто не напишет.
PS: Тока если это действительно несложно.
Мне просто интересно


 
Игорь Шевченко ©   (2007-08-02 11:49) [13]


> А,если нетрудно, может напишешь, как например, выделить
> ячейку, к примеру [2,5]?


В DBGrid-е никак. Сам посуди, сейчас она [2,5], а после перемещения скроллбара она уже [2,7]. В DBGrid ты можешь выделить конкретное поле (столбец) поле конкретной записи (строка с непостоянным номером)


 
Плохиш ©   (2007-08-02 11:49) [14]


> WFS ©   (01.08.07 13:22) [8]
> У меня нет хелпа в делфи

На, пользуйся

OnDrawColumnCell (Ereignis von TCustomDBGrid)


Das Ereignis OnDrawColumnCell wird ausgel&#246;st, wenn im Gitter eine Zelle gezeichnet werden muss.

Delphi-Syntax:

property OnDrawColumnCell: TDrawColumnCellEvent;

C++ Syntax:

__property TDrawColumnCellEvent OnDrawColumnCell = {read=FOnDrawColumnCell, write
=FOnDrawColumnCell};

Beschreibung

Mit einer Ereignisbehandlungsroutine f&#252;r OnDrawColumnCell k&#246;nnen Sie eine benutzerdefinierte Anzeigeroutine f&#252;r die Daten in den Gitterzellen bereitstellen. Die Darstellung in der Zelle erfolgt mit den Methoden der Eigenschaft Canvas.

Eine OnDrawColumnCell-Ereignisbehandlungsroutine kann die Methode DefaultDrawColumnCell aufrufen, damit das datensensitve Datengitter den Datenwert in die Zelle schreibt. Die Methode DefaultDrawColumnCell kann die Ereignisbehandlungsroutine OnDrawColumnCell kann erweitern, um visuelle Auswahl- und Fokusselektoren bereit zu stellen.

Hat DefaultDrawing den Wert True, werden die Daten bereits vor dem Ereignis OnDrawColumnCell in die Zelle geschrieben, und das Fokusrechteck wird nach dem Ereignis OnDrawColumnCell f&#252;r die markierten Zellen angezeigt.

Hinweis: Hat die Eigenschaft State der Eigenschaft Columns den Wert csDefault, wird das Ereignis OnDrawDataCell vor dem Ereignis OnDrawColumnCell ausgel&#246;st. Das Ereignis OnDrawDataCell ist veraltet und dient nur der Abw&#228;rtskompatibilit&#228;t. Geben Sie nicht gleichzeitig Ereignisbehandlungsroutinen f&#252;r die Ereignisse OnDrawDataCell und OnDrawColumnCell an.


 
WFS ©   (2007-08-02 11:58) [15]

Ich nicht deutsch sprechen.
Schreiben portugiesisch:)))


 
Dib@zol ©   (2007-08-02 12:03) [16]

> Ich nicht deutsch sprechen.
> Schreiben portugiesisch:)))

Deutsch schnell LERNEN!!!
Schnell, du, russische Scwein!
Was zum Teuffel ist hier schwer?

ЗЫ Фраза из обихода нашей немки ;D


 
Игорь Шевченко ©   (2007-08-02 12:31) [17]

правила надо чтить, уважаемые.


 
Dib@zol ©   (2007-08-02 12:38) [18]

Удалено модератором


 
Игорь Шевченко ©   (2007-08-02 12:49) [19]

Dib@zol ©   (02.08.07 12:38) [18]

Тебе не сделать перерыв для изучения грамматики русского языка ?


 
Dib@zol ©   (2007-08-02 13:02) [20]

Удалено модератором
Примечание: Offtopic



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

Форум: "Начинающим";
Текущий архив: 2007.08.26;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.047 c
15-1185522868
Alkid
2007-07-27 11:54
2007.08.26
Зараза vs. Virtual Machine


2-1186151958
vegarulez
2007-08-03 18:39
2007.08.26
Вопрос про thread.


2-1186103207
Adios
2007-08-03 05:06
2007.08.26
MediaPlayer


1-1182168028
bobah
2007-06-18 16:00
2007.08.26
Приведение к типу Single


2-1185624555
mobwar
2007-07-28 16:09
2007.08.26
ТМемо замена одной буквы на другую.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский