Цветные строки
Подскажите пожалуста, какой компонент необходимо использовать, чтоб отображать текст причем строки должны быть разного цвета в зависимости от условий???
RichEdit (вкладка Win32) подойдет? Ну а условия - это ты сам продумывай и задавай.
Подскажите пожалуста, какой компонент необходимо использовать, чтоб отображать текст причем строки должны быть разного цвета в зависимости от условий???
Немного мучений и можно -
Image1->Canvas->Font->Name="Times New Roman";
Image1->Canvas->Font->Size=13;
Image1->Canvas->TextOut(x,y,"...");
Или как-нить в ListView можно сделать, чтобы каждая Item отображалась на отдельной строке и был виден весь текст (он может быть большим, а может и нет)?
Нужно раскрасить строки из базы данных в зависимости от определенного условия, хранящегося в этой-же базе.
Или как-нить в ListView можно сделать, чтобы каждая Item отображалась на отдельной строке и был виден весь текст (он может быть большим, а может и нет)?
Пример из билдера...
{
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?
Нужно раскрасить строки из базы данных в зависимости от определенного условия, хранящегося в этой-же базе.
Или как-нить в ListView можно сделать, чтобы каждая Item отображалась на отдельной строке и был виден весь текст (он может быть большим, а может и нет)?
Моно и стандартные компоненты использовать, можно свой забецать, но ИМХО если что либо делать - стоит посмотреть как это уже реализовано. Глянь хотябы EhLib-компоненты, в них можно красить по любым условиям из базы. Ну а если решил сам - то тогда при чтении датасета нужно проверять твое условие и рисовать, рисовать, рисовать...:) Естественно, поле , содержащее условие в датасете присутствовать должно. Например, провереятся запись открывалась пользователем или нет и в зависимости от этого рисуется жирным или нормальным шрифтом:
TColumnEh *Column, TFont *AFont, TColor &Background,
TGridDrawState State)
{
if(dmMain->dsSelectMain->FieldByName("EXAMINED")->AsString=="0"){
AFont->Style = TFontStyles()<<fsBold;
Background = Graphics::clMoneyGreen;
}
}
Нужно раскрасить строки из базы данных в зависимости от определенного условия, хранящегося в этой-же базе.
OnDrawColumnCell из TDBGrid
{
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);
}
}
OnDrawColumnCell из TDBGrid
Спасибо, помогло.
теперь может кто подскажет, как можно в TDBGrid организовать мультиселект и потом ко всем выделенным записям применить Update?
Спасибо, помогло.
теперь может кто подскажет, как можно в TDBGrid организовать мультиселект и потом ко всем выделенным записям применить Update?
TDBGrid может выполнить Update в том случае если компонент связанный с ним в состоянии это сделать. Т.е. если грид связан на прямую с таблицей или есть процедура - котра это делает.