Форум: "Базы";
Текущий архив: 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