Текущий архив: 2004.01.26;
Скачать: CL | DM;
Вниз
TitleButtons в RxDBGrid Найти похожие ветки
← →
Developerr © (2004-01-14 16:18) [0]Ув. мастера, подскажите, пожалуйста, следующее:
При нажатии на Title Button одной из колонок RxDBGrid, я сортирую данные сразу по 2-м полям, причем эти поля не выводятся в Grid"е либо по одному полю, которое тоже не выводится в Grid"e, т.е. сортирую не по тому полю которое отображается в Grid"e, а то другому. А именно, например, кликаю по заголовку поля Должность, а сортирую не по названию должностей, а по коду должностей. В результате не появляется треугольник на Title Button. Можно ли сделать так чтобы этот треугольник все-таки появлялся?
Код у меня такой:
procedure TGridForm.RxDBGrid1TitleBtnClick(Sender: TObject; ACol: Integer;
Field: TField);
begin
if (Field.FieldName<>"Dep")and(Field.FieldName<>"POST") then
MainForm.Table1.IndexFieldNames := Field.FieldName
else
if (Field.FieldName="Dep")then
MainForm.Table1.IndexFieldNames := "CodeDep;CodeP"
else
MainForm.Table1.IndexFieldNames := "CodeP";
end;
Спасибо.
← →
Wizard_Ex © (2004-01-14 17:57) [1]Попробуй EhLib
Этот Grid позволяет тебе делать все самому в этом случае
как хочешь.
← →
ЮЮ © (2004-01-15 06:45) [2]RxDBGrid позволяет рисовать треугольник, а не рисует. Для рисования надо написать обработчик
Написать обработчик
procedure TGridForm.RxDBGrid1 GetBtnParams(Sender: TObject; Field: TField;
AFont: TFont; var Background: TColor; var SortMarker: TSortMarker;
IsDown: Boolean);
begin
if
(AnsiCompareText(MainForm.Table1.IndexFieldNames, Field.FieldName) = 0) or
(AnsiCompareText(Field.FieldName , "Dep") = 0) and
(AnsiCompareText(MainForm.Table1.IndexFieldNames, "CodeDep;CodeP") = 0) or
(AnsiCompareText(Field.FieldName , "POST") = 0) and
(AnsiCompareText(MainForm.Table1.IndexFieldNames, "CodeP") = 0)
then
SortMarker := smDown
else
SortMarker := smNone;
end;
Страницы: 1 вся ветка
Текущий архив: 2004.01.26;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.013 c