Форум: "Базы";
Текущий архив: 2003.06.26;
Скачать: [xml.tar.bz2];
ВнизНужно определить фиксированную часть в <B>TDBGrid </B> Найти похожие ветки
← →
andrey__ (2003-05-27 15:25) [0]Подскажите. Нужно определить фиксированную часть в TDBGrid
Как сделать нужную колонку фиксированой так чтобы при прокрутке она не исчезала (на подобие свойства FixedCols у компонента CustomGrid )
← →
andrey__ (2003-05-27 15:51) [1]Я немного уточню. Мне нужно , чтобы крайняя левая колонка оставалась на месте при горизонтальной прокрутке.
← →
Sandman25 (2003-05-27 16:10) [2]FixedCol является protected.
Возможно, надо объявить
TMyDBGrid=class(TDBGrid)
и вызвать
TMyDBGrid(DBGrid1).FixedCols := 1
← →
andrey__ (2003-05-28 11:48) [3]>TMyDBGrid(DBGrid1).FixedCols := 1
только мне пришлось написать
TMyDBGrid(DBGrid1).FixedCols := 2;
почему?
И еще подскажите как избавится от следующего: когда я делаю активной ячейку из фиксированого столбца у меня рябом появляется этот же столбец но уже в виде нефиксированого(т.е. будет два одинаковых 1-й фикс. 2-й нефикс. одинаковых)
← →
andrey__ (2003-05-28 15:00) [4]Подскажите как избавиться от глюка <когда я делаю активной ячейку из фиксированого столбца у меня рябом появляется этот же столбец но уже в виде нефиксированого(т.е. будет два одинаковых 1-й фикс. 2-й нефикс. одинаковых)>
← →
гончий (2003-05-28 15:18) [5]Первый FixedCol - это индикатор, если уберешь его в свойствах, тогда будет 1, а не 2 :)
← →
andrey__ (2003-05-28 15:32) [6]Что делать с глюком?
Может запретить пользователю попадать в эту колонку. Как это сделать?
Или как отследить, что пользователь пытается активизировать ячейку зафиксированного столбца и отработать событие...
← →
Stas (2003-05-28 15:39) [7]Поставь на колонку READONLY:=TRUE
← →
andrey__ (2003-05-28 16:13) [8]>Поставь на колонку READONLY:=TRUE
ставил не помогло.
← →
andrey__ (2003-05-29 09:30) [9]подскажите еще.
← →
andrey__ (2003-05-29 13:44) [10]Уважаемые ... подскажите!
← →
NAlexey (2003-05-29 14:29) [11]>Уважаемые ... подскажите!
Чё подсказать то? Опиши как 4-х летнему.
← →
andrey__ (2003-05-29 15:29) [12]Делаю следующее
TMyDBGrid=class(TDBGrid)
TMyDBGrid(DBGrid1).FixedCols := 1
когда я делаю активной ячейку из фиксированого столбца у меня рябом появляется этот же столбец но уже в виде нефиксированого(т.е. будет два 1-й фикс. 2-й нефикс. одинаковых). Но при горизонтальной прокрутке нефикс. исчезает и опять появляется при активизации любой другой ячейки (не фикс.) а потом активизации ячейки из фикчир столбца.
← →
NAlexey (2003-05-29 16:47) [13]Это понятно, но ты не делаешь конкретных выводов. Если тебе надо просто не обрабатывать клик по фиксированному столбцу, сделай так: доберись до события WM_LBUTTONDOWN(уж не знаю как ты это сделаешь, на твое усмотрение), найди ячейку на которую клик(вернее номер столбца), если это фиксированный - не обрабатывать. Я по быстрому накидал так:
procedure TForm1.MyOnMessage(var Msg: TMsg; var Handled: Boolean);
var
P: TPoint;
Cell: TGridCoord;
H: HWND;
Ctl: TWinControl;
begin
if Msg.message = WM_LBUTTONDOWN then
begin
GetCursorPos(P);
H := WindowFromPoint(P);
if H <> 0 then
begin
Ctl := FindControl(H);
if Assigned(Ctl) then
if (Ctl is TCustomDBGrid) and (Ctl = DBGrid1) then
begin
P := DBGrid1.ScreenToClient(P);
Cell := DBGrid1.MouseCoord(P.X, P.Y);
if Cell.X < 2 then Handled := True;
end;
end;
end;
end;
← →
NAlexey (2003-05-29 16:57) [14]А вообще FixedCols противоестественно для DBGrid, уходи на String или DrawGrid.
← →
sniknik (2003-05-29 17:08) [15]NAlexey © (29.05.03 16:57)
> А вообще FixedCols противоестественно для DBGrid, уходи на String или DrawGrid.
не совсем, есть такие Rx... RxDBGrid вполне естественно это обрабатывают, и наследуют именно DBGrid (свойство FixedCols в паблик а не в протектед). кстати можно посмотреть как там сделано, но советовать не могу сам их не использую и фиксированных полей не делал (не было нужды).
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.06.26;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.026 c