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




Вниз

Как отобразить в DBGrid номер строки? 


MAxiMum   (2002-03-14 14:56) [0]

Да, был поставлен такой вопрос. Я решил его с помощью кода, приведённого ниже, но при прокрутке - номера опять с единицы. Я понимаю ARow - хранит номер строки, но, что делать. Испробовал иногое - не помогает.

type
TMAxDBGrid = class(TDBGrid)
private
procedure UpdateIndicator;
protected
procedure SizeChanged(OldColCount: Integer; OldRowCount: Integer); override;
public
procedure DrawCell(ACol, ARow: Longint; ARect: TRect; AState: TGridDrawState); override;
procedure SetColumnAttributes; override;
end;
{...}
procedure TMAxDBGrid.DrawCell(ACol, ARow: Integer; ARect: TRect;
AState: TGridDrawState);
//var ALeft: Integer;
begin
inherited;
{MAxIntLength - длина числа в символах}
if (gdFixed in AState) then
with Canvas do
if ACol = 0 then
begin
Font.Style := Font.Style + [fsBold];
Font.Color := clWindowText;
if ARow = 0 then// TextOut(ARect.Left + 2, ARect.Top + 2, "№")
else TextOut(ARect.Left + (TextWidth("7") * (MAxIntLength(RowCount - 1) - MAxIntLength(ARow)) div 2) + 2, ARect.Top + 2, IntToStr(ARow))
end
end;

procedure TMAxDBGrid.SetColumnAttributes;
begin
inherited;
UpdateIndicator;
end;

procedure TMAxDBGrid.SizeChanged(OldColCount, OldRowCount: Integer);
begin
inherited;
if (ComponentState <> []) and not (csDesigning in ComponentState) and (SelectedIndex >= 0) then UpdateIndicator;
end;

procedure TMAxDBGrid.UpdateIndicator;
begin
if dgIndicator in Options then ColWidths[0] := IndicatorWidth + Canvas.TextWidth("7") * MAxIntLength(RowCount - 1) + 2;
end;



SVM   (2002-03-14 15:02) [1]

Создай поле (вычисляемое или в запросе) и выводи его.



Johnmen   (2002-03-14 15:08) [2]

А ты поройся в конфе - был очень интересный ответ, причем, как говорят, работающий !



MAxiMum   (2002-03-14 17:02) [3]

>SVM
У меня наряду с запросами используются и таблицы.
Надо, чтобы было универсально. Притом, у меня отображается всё вместе с индикатором - это здорово и красиво.
Да уж, ответ где-то рядом...



data   (2002-03-14 18:17) [4]

2 MAxiMum © (14.03.02 17:02)
Посмотрите эту ветку
http://delphi.mastak.ru/cgi-bin/forum.pl?look=1&id=1015898975&n=1




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




Наверх





Память: 0.72 MB
Время: 0.016 c
3-22569           Malder                2002-03-16 13:55  2002.04.08  
Подсчет количества записей


1-22755           Glonia Zbanov         2002-03-27 10:44  2002.04.08  
tag


3-22514           ЕвгенийА              2002-03-12 00:46  2002.04.08  
Люди, создаю дистрибутив... Использую базы данных типа Paradox и dbase.. На других компах прога не работает


1-22717           Great                 2002-03-25 19:34  2002.04.08  
Так что, никто не знает ? Ttabsheet и Drag & Drop


1-22655           DikobraZ              2002-03-26 12:00  2002.04.08  
User32.dll:SetLayeredWindowAttributes.