Текущий архив: 2004.09.26;
Скачать: CL | DM;
ВнизПрограммное выделение строк в DBGrid Найти похожие ветки
← →
12345 (2004-08-27 12:02) [0]см. сабж
← →
Rem (2004-08-27 12:04) [1]OnDrawColumnCell()
← →
12345 (2004-08-27 12:08) [2]Это же событие для выделения ячеек грида, а мне нужно программно
выделить все строки при нажатии кнопки, например.
← →
Rem (2004-08-27 12:19) [3][2]
Не путайте. Это событие для рисования ячеек таблицы.
По теме вопроса: Вы уверены, что надо выделить строки в DBGrid"е, а не выбрать (отметить) строки в DataSet"е?
Если все же в DataSet"e, то DataSet.GetBookmark, помещайте выбранные строки в отдельный список, и по факту отрисовки DBGrid"а рисуйте выбранные строки по-другому. Или заведите дополнительное поле в DataSet"е типа "Выбрано". Или еще как-то, но только не в DBGrid"e.
← →
12345 (2004-08-27 12:33) [4]мне нужно, чтобы они были в DBGrid.SelectedRows
как это сделать?
← →
12345 (2004-08-27 12:36) [5]>рисуйте выбранные строки по-другому
ну нарисую, но ведь в DBGrid.SelectedRows они не будут находиться
← →
DSKalugin © (2004-08-27 12:37) [6]
procedure TEngineMF.DBGrid4DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
if EngineDM.OrdersIBQ.IsEmpty then exit;
if EngineDM.OrdersIBQcondition.AsString="Не заказана"
then DBGrid4.Canvas.Brush.Color :=$cbc7fc;
if EngineDM.OrdersIBQcondition.AsString="Заказана"
then DBGrid4.Canvas.Brush.Color :=clMoneyGreen;
if not EngineDM.OrdersIBQBest_Before.IsNull then
if ((Date>=EngineDM.OrdersIBQBest_Before.AsDateTime)
and (not (EngineDM.OrdersIBQcondition.AsString="Продана")))
then DBGrid4.Canvas.Font.Style:=[fsBold];
// безналичка
if (EngineDM.OrdersIBQzalog.AsInteger=0)
then DBGrid4.Canvas.Brush.Color :=clCream;
DBGrid4.DefaultDrawColumnCell(Rect,DataCol,Column, State);
end;
← →
Ega23 © (2004-08-27 12:38) [7]
procedure TFMain.rxgPersonnelKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (ssCtrl in Shift) and (Key=65) then
(Sender as TRxDBGrid).SelectAll;
end;
Так сказать, используйте RxLib...
← →
s999 (2004-08-27 12:43) [8]
> мне нужно, чтобы они были в DBGrid.SelectedRows
> как это сделать?
Попробуй:
DBGrid.SelectedRows.CurrentRowSelected := True/False;
← →
12345 (2004-08-27 13:25) [9]>DSKalugin © (27.08.04 12:37) [6]
ты советуешь мне просто раскрасить и все?
>DBGrid.SelectedRows.CurrentRowSelected := True/False;
это обращение к уже выделенным строкам, а у меня таковых нет
← →
s999 (2004-08-27 13:31) [10]
> это обращение к уже выделенным строкам, а у меня таковых
> нет
А попробовать? При True это выделение текущей записи, при False снятие выделения.
← →
Ega23 © (2004-08-27 13:36) [11]На:
procedure TRxDBGrid.SelectAll;
var
ABookmark: TBookmark;
begin
if MultiSelect and DataLink.Active then begin
with Datalink.Dataset do begin
if (BOF and EOF) then Exit;
DisableControls;
try
ABookmark := GetBookmark;
try
First;
while not EOF do begin
SelectedRows.CurrentRowSelected := True;
Next;
end;
finally
try
GotoBookmark(ABookmark);
except
end;
FreeBookmark(ABookmark);
end;
finally
EnableControls;
end;
end;
end;
end;
← →
12345 (2004-08-27 14:15) [12]>if MultiSelect and DataLink.Active then begin
спасибо, а DataLink.Active - что это?
← →
12345 (2004-08-27 14:15) [13]и без этого работает, конечно, но все же...
← →
Ega23 © (2004-08-27 14:27) [14]12345 (27.08.04 14:15) [13]
Если тебе очень интересно, то скачай и установи себе RxLib. Ищи в TRxDBGrid.SelectAll.
← →
12345 (2004-08-27 14:36) [15]2Ega23 © (27.08.04 14:27) [14]
много преимуществ перед простым гридом?
и где можно скачать?
← →
12345 (2004-08-27 14:36) [16]2Ega23 © (27.08.04 14:27) [14]
много преимуществ перед простым гридом?
и где можно скачать?
← →
Ega23 © (2004-08-27 14:38) [17]много преимуществ перед простым гридом?
Unit
RxDBCtrl
Description
Компонента TRxDBGrid предназначена, как и стандартная компонента TDBGrid, для отображения данных таблиц БД или результатов запросов в табличной форме. Являясь наследником TDBGrid, компонента TRxDBGrid имеет все те же свойства и методы, и, кроме того, некоторые свойства, находящиеся у TDBGrid в секции protected, вынесены в секцию public. Это такие свойства, как Col, Row, LeftCol, Canvas.
Другие отличия от TDBGrid:
- BLOB-поля базы данных, такие как графические изображения, текстовые мемо-поля, другие BLOB"ы могут отображаться в таблице в виде пиктограмм при установленном в True значении свойства ShowGlyphs;
- вы можете изменить цвет шрифта и фона любой ячейки таблицы (либо любой ее строки или столбца) в зависимости от значения поля или имени поля набора данных, определив обработчик события OnGetCellParams;
- имеются методы SaveLayout и RestoreLayout для сохранения и восстановления порядка и ширин столбцов компоненты TRxDBGrid в INI-файле (или в Registry для Delphi 2.0). Вы можете также автоматически сохранять и восстанавливать эти параметры, присвоив значение свойству IniStorage.
- как в 32-битной, так и в 16-битной версии компонента поддерживает выбор нескольких записей в таблице при значении свойства MultiSelect = True.
- заголовки колонок Grid-а могут быть с помощью свойства TitleButtons использованы как кнопки, например, для изменения порядка сортировки отображаемых данных.
- вы можете зафиксировать несколько первых колонок в Grid-е с помощью свойства FixedCols.
и где можно скачать?
Обращайся: egorov@dedal.dubna.ru
Страницы: 1 вся ветка
Текущий архив: 2004.09.26;
Скачать: CL | DM;
Память: 0.49 MB
Время: 0.041 c