Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Столбец DbGrid [D6, Paradox]


NickNaz ©   (2003-12-23 12:49:00) 

Добрый день!

Возможно ли в DbGrid закрепить один из столбцов?
Если да, то как это сделать?

Спасибо.


Vlad   (2003-12-24 13:41:00) [1]


> Anatoly Podgoretsky © (24.12.03 13:34) [18]

Ну так вроде я об этом и пытался в [12] сказать, но кажется бесполезно :-)


Anatoly Podgoretsky   (2003-12-24 13:34:00) [2]

Vlad © (24.12.03 13:31) [17]
У автора конечно, а зачем наверно и так понятно из обсуждения :-)
А у Шевченко как надо.


Vlad   (2003-12-24 13:31:00) [3]


> Anatoly Podgoretsky © (24.12.03 13:24) [16]

У него - у кого ?
У Шевченко или у автора ветки ?
У автора ветки - это поле (а зачем оно ?), а у Шевченко - метод :-)


Anatoly Podgoretsky   (2003-12-24 13:24:00) [4]

Vlad © (24.12.03 13:02) [12]
SetAllowColumnMoved у него поле, а не метод.


Vlad   (2003-12-24 13:23:00) [5]


> NickNaz © (24.12.03 13:13) [13]
> После procedure SetAllowColumnMoved(b: boolean);
> пишет Unsatisfied forward or external declaration: "TexDBGrid.SetAllowColumnMoved"


Уфффф.... тяжко....
Ну если ты объявил метод класса, то наверное надо и реализацию сделать ?
Читаем книги по Delphi для начала, иначе будет туго. Дело в том что задача эта нетривиальная.


Alex_Bredin   (2003-12-24 13:13:00) [6]

что-то непонятно что автор ветки имеет в виду под словом "закрепить".
то что вам советуют- это трактовка "запретить перемещение этого столбца на другую позицию". То ли вам нужно? или нужно как в экселе(или в StringGrid FixedCol(?)) "зафиксировать столбец(или ячейку)"
в последнем случае -DBGridEh, как и было сказано ранее.


NickNaz   (2003-12-24 13:13:00) [7]

После procedure SetAllowColumnMoved(b: boolean);
пишет Unsatisfied forward or external declaration: "TexDBGrid.SetAllowColumnMoved"


Vlad   (2003-12-24 13:02:00) [8]

Во-первых END в конце описания типа не поставил, во вторых где описание процедуры SetAllowColumnMoved? Я вижу описание переменной SetAllowColumnMoved.

Должно быть что-то вроде этого

TexDBGrid = class(TDBGrid)
private
FAllowColumnMoved: Boolean;
procedure SetAllowColumnMoved(b: boolean);
public
Property AllowColumnMoved : Boolean read FAllowColumnMoved write SetAllowColumnMoved;
protected
function BeginColumnDrag(var Origin, Destination: Integer; const MousePt: TPoint): Boolean; override;
end;


Sandman25   (2003-12-24 13:02:00) [9]

Судя по [10], лучше все-таки использовать DBGridEh...


NickNaz   (2003-12-24 12:56:00) [10]

Vlad © (24.12.03 12:52) [9]

type
TexDBGrid = class(TDBGrid);
...
private
FAllowColumnMoved: Boolean;
SetAllowColumnMoved: Boolean;
public
Property AllowColumnMoved : Boolean read FAllowColumnMoved write SetAllowColumnMoved;
protected
function BeginColumnDrag(var Origin, Destination: Integer; const MousePt: TPoint): Boolean; override;


Vlad   (2003-12-24 12:52:00) [11]


> NickNaz © (24.12.03 12:30) [8]

Приведи полноеописание типа TexDBGrid из твоего кода


NickNaz   (2003-12-24 12:30:00) [12]

Vlad © (24.12.03 12:06) [7]

Пишет следующее:
Method "BeginColumnDrag" not found in base class
после:
protected
function BeginColumnDrag(var Origin, Destination: Integer; const MousePt: TPoint): Boolean; override;


Vlad   (2003-12-24 12:06:00) [13]

Наверное она у тебя не объявлена :-)

TexDBGrid = class(TDBGrid)
private
...
FAllowColumnMoved: Boolean;
...
public
Property AllowColumnMoved : Boolean read FAllowColumnMoved write SetAllowColumnMoved;
protected
function BeginColumnDrag(var Origin, Destination: Integer; const MousePt: TPoint): Boolean; override;


NickNaz   (2003-12-24 11:34:00) [14]

Anatoly Podgoretsky © (24.12.03 11:23) [5]

Сделал SetAllowColumnMoved присутствующим.
Затем ругается на функцию:
Undeclared identifier: "BeginColumnDrag"
";" expected but "(" found
"=" expected but ")" found
Undeclared identifier: "Result"
This form of method call only allowed in methods of derived types

function TexDBGrid.BeginColumnDrag(var Origin, Destination: Integer; const MousePt: TPoint): Boolean;
Begin
Result:=FAllowColumnMoved;
IF Result Then Result:= Inherited BeginColumnDrag(Origin,Destination,MousePt);


Anatoly Podgoretsky   (2003-12-24 11:23:00) [15]

Или это FAllowColumnMovedили это SetAllowColumnMovedотсутствует


NickNaz   (2003-12-24 11:12:00) [16]

Vlad © (23.12.03 12:54) [2]

Последовал вашему совету Delphi ругается: "Field or method identifier expected" после
Property AllowColumnMoved : Boolean read FAllowColumnMoved write SetAllowColumnMoved;


Sandman25   (2003-12-23 12:56:00) [17]

[2] Vlad © (23.12.03 12:54)

Мда... а ведь я это читал когда-то... Иду перечитаю :)


Sandman25   (2003-12-23 12:54:00) [18]

Можно использовать DBGridEh из бесплатной библиотеки EhLib. Как сделать со стандартным - не знаю.


Vlad   (2003-12-23 12:54:00) [19]

http://www.delphikingdom.ru/helloworld/nogrid.htm#03_2


Наверх

Титульная страница Поиск, карта сайта Написать письмо