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

Вниз

Можно ли в DBGrid индикатор сделать другим цветом от Title?   Найти похожие ветки 

 
Art1   (2002-04-15 19:18) [0]

Можно ли в DBGrid индикатор (слева полоска, указівающая на текущую запись) сделать другим цветом от Title?


 
sniknik   (2002-04-15 19:47) [1]

всю полоску просто

procedure TForm1.FormShow(Sender: TObject);
const bol: boolean= true;
begin
if bol then begin
DBGrid1.Columns[0].Color:= clMedGray;
bol:= false;
end;
end;

если одну позицию то перерисовкой в DBGrid1 на onDBGrid1DrawColumnCell


 
Aleks1   (2002-04-16 03:09) [2]

> sniknik © (15.04.02 19:47)
Ты про "Индикатор" или нет?


 
Lusha   (2002-04-16 09:27) [3]

Можно...


 
Art1   (2002-04-16 10:15) [4]

Я ж говорил, что мне неужно поменять цвет индикатора (это столбец левее нулевого столбца в DBGrid). А предложенный вариант закрашивает нулевой столбец с данными.

Уважаемый Lusha.
Если Вы знаете как это реализовывается, то примерчих плизз.


 
Lusha   (2002-04-16 11:05) [5]

>Art1 (16.04.02 10:15)
Да, пожалуйста... :)
В следующем примерчике индикатор - желтая ячейка...

type
TIndicatorDBGrid = class(TDBGrid)
protected
procedure DrawCell(ACol, ARow: Longint; ARect: TRect; AState: TGridDrawState); override;
end;

...

procedure TIndicatorDBGrid.DrawCell(ACol, ARow: Longint; ARect: TRect; AState: TGridDrawState);
var _Row, _Col : Integer;
begin
if csLoading in ComponentState then
begin
inherited DrawCell(ACol, ARow, ARect, AState);
Exit;
end;

_Col := ACol;
_Row := ARow;
if dgTitles in Options then dec(_Row);
if dgIndicator in Options then dec(_Col);

if (gdFixed in AState) and (_Col < 0) then
if Assigned(DataLink) and DataLink.Active and (DataLink.ActiveRecord = _Row) then
begin
Canvas.Brush.Color := clYellow;
Canvas.FillRect(ARect);
Exit;
end;
inherited DrawCell(ACol, ARow, ARect, AState);

end;




 
Alx3   (2002-04-17 10:02) [6]

Lusha © > Хороший примерчик ;o)) А можешь это-же самое изобразить на Билдере?


 
Lusha   (2002-04-17 10:37) [7]

>Alx3 (17.04.02 10:02)
Могу. А зачем? У Вас проблемы с переводом?


 
sniknik   (2002-04-17 10:57) [8]

Lusha © обьясните теперь мне про пример.
он у вас прям так и работает?
ну в смысле у меня заработал после того как сделал свой компонент от TDBGrid с вашей процедурой, и уже его положил на форму.
но у вас ничего подобного не написано, это само собой разумеющееся или он должен работать с таким поздним переопределением но у меня по какимто причинам отказывается?


 
Lusha   (2002-04-17 11:12) [9]

>sniknik © (17.04.02 10:57)
Это всего лишь пример переопределения класса...

...а использовать его, например, можно следующим образом...

type
TForm1 = class(TForm)
Query1: TQuery;
DataSource1: TDataSource;
procedure FormCreate(Sender: TObject);
private
FGrid : TIndicatorDBGrid;
public
{ Public declarations }
end;

...

procedure TForm1.FormCreate(Sender: TObject);
begin
FGrid := TIndicatorDBGrid.Create(Self);
FGrid.Parent := Self;
FGrid.Align := alClient;
FGrid.DataSource := DataSource1;
end;


 
sniknik   (2002-04-17 11:34) [10]

ну вот именно так и не работает :-( почему и спрашиваю. при таком само создании вообще ничего не рисуется на форме. ладно буду разбиратся.


 
sniknik   (2002-04-17 11:50) [11]

странно сегодня работает. было подозрение на Parent := Self;
я присваивал Form1, но и так тоже работает. а что же вчера не получалось? бред. ну ничего спишем все на собаку Била, или на Борланд валить? :-))



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

Форум: "Базы";
Текущий архив: 2002.05.13;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.005 c
1-39760
Юляша
2002-04-27 21:16
2002.05.13
Почему PageControl не отображается?


14-39842
Sergo
2002-04-04 10:45
2002.05.13
Как сделать?


1-39781
hogus
2002-04-28 08:03
2002.05.13
Работа с Временем (TDateTime)


3-39650
Сержжж
2002-04-17 12:12
2002.05.13
Создание вычисляемого поля


6-39811
YOjick
2002-02-28 15:50
2002.05.13
Что-то странное с сокетами





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