Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как строки сделать выделенными

1.2K
04 февраля 2005 года
richel
142 / / 20.01.2005
У компонента DBGridEh есть событие DBGridEh2DrawColumnCell, с помощью которого можно поменять фон строк и цвет шрифта. При щелчке на строке (или ячейке) строка приобретает статус выделенной (меняется даже вид индикатора), и с нею можно потом работать по условию
Цитата:
if (DBGridEh2->SelectedRows->Count == 0)


В моей задаче у блока строк меняется фон и цвет текста в зависимости от нажатия на ЧекЛистБокс при выполнении события

Цитата:
void __fastcall TForm1::DBGridEh2GetCellParams(TObject *Sender,
TColumnEh *Column, TFont *AFont, TColor &Background,
TGridDrawState State)
{
TDBGridEh * Eh_Oper = (TDBGridEh *)Sender;
for(int i = 0;i < RxCheckListBox1->Items->Count;i++)
{
if(RxCheckListBox1->Checked)
if(Eh_Oper->DataSource->DataSet->FieldByName("GostID")->AsString.Trim().SubString(1,2) == RxCheckListBox1->Items->Strings)
{
AFont->Color = clRed;
Background = TColor(0x00C6FFFF);
break;
}
}
}

И здесь строки не считаются выделенными (даже нет индикаторов). Мне нужно дальше работать с этими строками (например, скопировать из Грида в другую таблицу), но по какому признаку их обнаружить, не знаю. Пробовала создать условие по цвету фона и шрифта, не понимает программа.
Может в событии OnGetCellParams написать какой-то код, который будет выделять каждую строку в цикле? Подскажите, что делать?

259
04 февраля 2005 года
AlexandrVSmirno
1.4K / / 03.12.2004
Цитата:
Originally posted by richel
У компонента DBGridEh есть событие DBGridEh2DrawColumnCell, с помощью которого можно поменять фон строк и цвет шрифта. При щелчке на строке (или ячейке) строка приобретает статус выделенной (меняется даже вид индикатора), и с нею можно потом работать по условию

В моей задаче у блока строк меняется фон и цвет текста в зависимости от нажатия на ЧекЛистБокс при выполнении события
И здесь строки не считаются выделенными (даже нет индикаторов). Мне нужно дальше работать с этими строками (например, скопировать из Грида в другую таблицу), но по какому признаку их обнаружить, не знаю. Пробовала создать условие по цвету фона и шрифта, не понимает программа.
Может в событии OnGetCellParams написать какой-то код, который будет выделять каждую строку в цикле? Подскажите, что делать?


Попробуй для этих строк в таблице установить закладку (Bookmark) и при копировании их обрабатывать.

1.2K
04 февраля 2005 года
richel
142 / / 20.01.2005
Цитата:
Originally posted by AlexandrVSmirno

Попробуй для этих строк в таблице установить закладку (Bookmark) и при копировании их обрабатывать.


Видимо, у меня здесь полный пробел в знаниях.
Совершенно не знаю, как у строк делается закладка. Просвятите, пожалуйста. И где можно почитать по теме?

259
04 февраля 2005 года
AlexandrVSmirno
1.4K / / 03.12.2004
Цитата:
Originally posted by richel

Видимо, у меня здесь полный пробел в знаниях.
Совершенно не знаю, как у строк делается закладка. Просвятите, пожалуйста. И где можно почитать по теме?


Это пример из хелпа

Код:
void __fastcall TForm1::CopyDataClick(TObject *Sender)

{
  TBookmark SavePlace; //одна закладка
  Variant PrevValue;
  SavePlace = Table1->GetBookmark(); //запоминаем текущее место в таблице (создаем закладку)

  Table1->FindPrior();// уходим в другое место таблицы
  PrevValue = Table1->Fields->Fields[0]->Value; // читаем значение поля
  Table1->GotoBookmark(SavePlace); //возвращаемся к закладке
  Table1->Fields->Fields[0]->Value = PrevValue; // и заменяем данные
  Table1->FreeBookmark(SavePlace); //Убираем закладку
}

Я думаю вам нужно организовать массив закладок размерности равной размеру списка. Каждую строку checked запомнить в соответсвующую закладку списка. А при копировании брать нужные закладки из массива переходить на них и копировать соответсвующие строки таблицы в другую.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог