Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.05.13;
Скачать: CL | DM;

Вниз

Можно ли в 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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.01 c
14-39847
aaaaa
2002-04-04 14:49
2002.05.13
База данных


1-39756
Demon Ltd
2002-04-28 00:44
2002.05.13
Работа с фильтрацией


1-39724
Ирина
2002-04-27 13:18
2002.05.13
Научите меня, очень жду помощи!


1-39769
PVN
2002-04-28 18:06
2002.05.13
2 вопроса...


1-39799
Sniffer
2002-04-28 18:12
2002.05.13
Cимплексный метод