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

Ваш аккаунт

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

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

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

Цветные строки

9.2K
28 ноября 2004 года
ForestRoot
1 / / 28.11.2004
Подскажите пожалуста, какой компонент необходимо использовать, чтоб отображать текст причем строки должны быть разного цвета в зависимости от условий???
243
29 ноября 2004 года
pacific_7
1.9K / / 06.09.2004
Цитата:
Originally posted by ForestRoot
Подскажите пожалуста, какой компонент необходимо использовать, чтоб отображать текст причем строки должны быть разного цвета в зависимости от условий???


RichEdit (вкладка Win32) подойдет? Ну а условия - это ты сам продумывай и задавай.

301
29 ноября 2004 года
lord Kelvin
897 / / 08.11.2004
Цитата:
Originally posted by ForestRoot
Подскажите пожалуста, какой компонент необходимо использовать, чтоб отображать текст причем строки должны быть разного цвета в зависимости от условий???


Немного мучений и можно -

 
Код:
Image1->Canvas->Font->Color=clRed;
Image1->Canvas->Font->Name="Times New Roman";
Image1->Canvas->Font->Size=13;
Image1->Canvas->TextOut(x,y,"...");
9.5K
10 декабря 2004 года
WhiteWolf
2 / / 10.12.2004
Нужно раскрасить строки из базы данных в зависимости от определенного условия, хранящегося в этой-же базе.
Или как-нить в ListView можно сделать, чтобы каждая Item отображалась на отдельной строке и был виден весь текст (он может быть большим, а может и нет)?
301
10 декабря 2004 года
lord Kelvin
897 / / 08.11.2004
Цитата:
Originally posted by WhiteWolf
Нужно раскрасить строки из базы данных в зависимости от определенного условия, хранящегося в этой-же базе.
Или как-нить в ListView можно сделать, чтобы каждая Item отображалась на отдельной строке и был виден весь текст (он может быть большим, а может и нет)?


Пример из билдера...

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

{
  TListItem *pItem;
  TListColumn *pColumn;
  // Create a ListView item for each image in the ImageList
  ListView1->SmallImages = ImageList1;
  ListView1->LargeImages = ImageList1;
  for (int i = 0; i < ImageList1->Count; i++)
  {
    pItem = ListView1->Items->Add();
    pItem->Caption = "Image" + IntToStr(i);
    pItem->ImageIndex = i;

  }
  // Create two columns to show during viewing as vsReport
  pColumn = ListView1->Columns->Add();
  pColumn->Caption = "Column 1";
  pColumn = ListView1->Columns->Add();
  pColumn->Caption = "Column 2";
  // Add View styles and constants to the Combo Box
  ComboBox1->Items->AddObject("vsIcon", (TObject *)vsIcon);
  ComboBox1->Items->AddObject("vsList", (TObject *)vsList);

  ComboBox1->Items->AddObject("vsReport", (TObject *)vsReport);
  ComboBox1->Items->AddObject("vsSmallIcon", (TObject *)vsSmallIcon);
  // Display first item in the Combo Box
  ComboBox1->ItemIndex = 0;
}

void __fastcall TForm1::ComboBox1Click(TObject *Sender)

{
  ListView1->ViewStyle = (TViewStyle) ComboBox1->Items->Objects[ComboBox1->ItemIndex];
}

А ты не путаешь ListView с ListBox?
1
11 декабря 2004 года
kot_
7.3K / / 20.01.2000
Цитата:
Originally posted by WhiteWolf
Нужно раскрасить строки из базы данных в зависимости от определенного условия, хранящегося в этой-же базе.
Или как-нить в ListView можно сделать, чтобы каждая Item отображалась на отдельной строке и был виден весь текст (он может быть большим, а может и нет)?


Моно и стандартные компоненты использовать, можно свой забецать, но ИМХО если что либо делать - стоит посмотреть как это уже реализовано. Глянь хотябы EhLib-компоненты, в них можно красить по любым условиям из базы. Ну а если решил сам - то тогда при чтении датасета нужно проверять твое условие и рисовать, рисовать, рисовать...:) Естественно, поле , содержащее условие в датасете присутствовать должно. Например, провереятся запись открывалась пользователем или нет и в зависимости от этого рисуется жирным или нормальным шрифтом:

 
Код:
void __fastcall TfmMain::grdMainGetCellParams(TObject *Sender,
      TColumnEh *Column, TFont *AFont, TColor &Background,
      TGridDrawState State)
{
if(dmMain->dsSelectMain->FieldByName("EXAMINED")->AsString=="0"){
 AFont->Style = TFontStyles()<<fsBold;
 Background = Graphics::clMoneyGreen;
}
}
246
14 декабря 2004 года
GIZMO
1.8K / / 30.07.2004
Цитата:
Originally posted by WhiteWolf
Нужно раскрасить строки из базы данных в зависимости от определенного условия, хранящегося в этой-же базе.


OnDrawColumnCell из TDBGrid

 
Код:
void __fastcall Form1::OnDrawColumnCell(System::TObject* Sender, const Windows::TRect &Rect, int DataCol, TColumn* Column, Grids::TGridDrawState State)
{
    if(Table1->FieldByName("Название поля")->AsString == "определенное условие") {
    DBGrid1->Canvas->Brush->Color = clYellow;
    DBGrid1->Canvas->Font->Color = clBlue;
    DBGrid1->Canvas->FillRect(Rect);
    DBGrid1->Canvas->TextOut(Rect.Left + 2, Rect.Top + 2, Column->Field->Text);
    }
}
9.5K
17 декабря 2004 года
WhiteWolf
2 / / 10.12.2004
Цитата:
Originally posted by GIZMO

OnDrawColumnCell из TDBGrid


Спасибо, помогло.
теперь может кто подскажет, как можно в TDBGrid организовать мультиселект и потом ко всем выделенным записям применить Update?

1
18 декабря 2004 года
kot_
7.3K / / 20.01.2000
Цитата:
Originally posted by WhiteWolf

Спасибо, помогло.
теперь может кто подскажет, как можно в TDBGrid организовать мультиселект и потом ко всем выделенным записям применить Update?


TDBGrid может выполнить Update в том случае если компонент связанный с ним в состоянии это сделать. Т.е. если грид связан на прямую с таблицей или есть процедура - котра это делает.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог