Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Закрасить строку


Автор: Гульмира 14.4.2011, 06:57
Здравствуйте. 
как в DBGREIDEH закрасить строку при нажатии на кнопку ПРОБЕЛ?
В OnGetCellParams хотела поставить условие if  key=vk_space,  но выдается ошибка.

Автор: Frees 14.4.2011, 08:18
в событии нажатия кнопки пробел, запоминай RecNo текущей записи,

а в OnGetCellParams  проверяй если рисуется запись с запомненным RecNo 
тогда делай белый цвет


ps
  код за вас писать не буду, могу только ваш поправить.

Автор: Gwire 14.4.2011, 10:26
Есть 3 функции обработки события клавиатуры. Ты какую используешь?
Код

1) procedure OnKeyPress(Sender: TObject; var Key: Char);
2) procedure OnKeyDown(Sender: TObject; var Key: Word;
3) procedure OnKeyUp(Sender: TObject; var Key: Word;

если OnKeyPress, то ошибка в несоответствии типов "Key: Char" и "vk_space - Word"

PS: И что это за компонент "DBGREIDEH"?
    И что за ошибка выдается? Может проблема не в условии.

Автор: Гульмира 14.4.2011, 11:11
 "DBGREIDEH"  - ошибка. Правильно DBGRIDEH.

Событие на нажатие написала так:
Код

procedure TFmPln.DBGridEh4KeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
IF (KEY=VK_SPACE) THEN
RecNo:=DM1.QueryAftn.FieldByName('tlg_id').value;
end;

где RecNo:integer - переменная;

а вот что писать для OnGetCellParams честно незнаю кроме if .....   then Background := $00BEE2BA;
 smile 




Автор: Frees 14.4.2011, 11:20
Код

 if RecNo=DM1.QueryAftn.FieldByName('tlg_id').asInteger  then Background := $00BEE2BA;


Добавлено @ 11:22
Код

procedure TFmPln.DBGridEh4KeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
IF (KEY=VK_SPACE) THEN
begin
  RecNo:=DM1.QueryAftn.FieldByName('tlg_id').AsInteger;
  DBGridEh1.Invalidate;
end
end;

Автор: Гульмира 14.4.2011, 11:26
Вау, получилось. спасибо вам Огромное!!!  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)