Програмне виділення рядків в dbgrid

Це ж подія для виділення осередків гріда, а мені потрібно програмно
виділити всі рядки при натисканні кнопки, наприклад.

[2]
Не плутайте. Ця подія для малювання елементів таблиці.

По темі питання: Ви впевнені, що треба виділити рядки в DBGrid "е, а не вибрати (відмітити) рядки в DataSet" е?
Якщо все ж в DataSet "e, то DataSet.GetBookmark, розміщуйте вибрані рядки в окремий список, і за фактом відтворення DBGrid" а малюйте вибрані рядки по-іншому. Або заведіть додаткове поле в DataSet "е типу" Вибрані ". Або ще якось, але тільки не в DBGrid" e.

мені потрібно, щоб вони були в DBGrid.SelectedRows
як це зробити?

> Малюйте вибрані рядки по-іншому
ну намалюю, але ж в # XA0; DBGrid.SelectedRows вони не будуть знаходитися


procedure TEngineMF.DBGrid4DrawColumnCell (Sender: TObject;
# XA0; const Rect: TRect; DataCol: Integer; Column: TColumn;
# XA0; 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)
# XA0; and (not (EngineDM.OrdersIBQcondition.AsString = "Продана")))
then DBGrid4.Canvas.Font.Style:=[fsBold];

// безготівка
if (EngineDM.OrdersIBQzalog.AsInteger = 0)
then DBGrid4.Canvas.Brush.Color: = clCream;


procedure TFMain.rxgPersonnelKeyUp (Sender: TObject; var Key: Word;
# XA0; Shift: TShiftState);
begin
if (ssCtrl in Shift) and (Key = 65) then
# XA0; (Sender as TRxDBGrid) .SelectAll;
end;

Так би мовити, використовуйте RxLib.


> Мені потрібно, щоб вони були в DBGrid.SelectedRows
> Як це зробити?

ти радиш мені просто розфарбувати і все?

це звернення до вже виділених рядках, а в мене таких немає


> Це звернення до вже виділених рядках, а в мене таких
> немає

А спробувати? При True це виділення поточної записи, при False зняття виділення.


procedure TRxDBGrid.SelectAll;
var
# XA0; ABookmark: TBookmark;
begin
# XA0; if MultiSelect and DataLink.Active then begin
# XA0; # XA0; with Datalink.Dataset do begin
# XA0; # XA0; # XA0; if (BOF and EOF) then Exit;
# XA0; # XA0; # XA0; DisableControls;
# XA0; # XA0; # XA0; try
# XA0; # XA0; # XA0; # XA0; ABookmark: = GetBookmark;
# XA0; # XA0; # XA0; # XA0; try
# XA0; # XA0; # XA0; # XA0; # XA0; First;
# XA0; # XA0; # XA0; # XA0; # XA0; while not EOF do begin
# XA0; # XA0; # XA0; # XA0; # XA0; # XA0; SelectedRows.CurrentRowSelected: = True;
# XA0; # XA0; # XA0; # XA0; # XA0; # XA0; Next;
# XA0; # XA0; # XA0; # XA0; # XA0; end;
# XA0; # XA0; # XA0; # XA0; finally
# XA0; # XA0; # XA0; # XA0; # XA0; try
# XA0; # XA0; # XA0; # XA0; # XA0; # XA0; GotoBookmark (ABookmark);
# XA0; # XA0; # XA0; # XA0; # XA0; except
# XA0; # XA0; # XA0; # XA0; # XA0; end;
# XA0; # XA0; # XA0; # XA0; # XA0; FreeBookmark (ABookmark);
# XA0; # XA0; # XA0; # XA0; end;
# XA0; # XA0; # XA0; finally
# XA0; # XA0; # XA0; # XA0; EnableControls;
# XA0; # XA0; # XA0; end;
# XA0; # XA0; end;
# XA0; end;
end;

> If MultiSelect and DataLink.Active then begin

спасибі, а DataLink.Active - що це?

і без цього працює, звичайно, але все ж.

12345 # XA0; (27.08.04 14:15) [13]

Якщо тобі дуже цікаво, то завантаж і встанови собі RxLib. Шукай в TRxDBGrid.SelectAll.

багато переваг перед простим ґрідом?
і де можна скачати?

багато переваг перед простим ґрідом?
і де можна скачати?

багато переваг перед простим ґрідом?


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.

і де можна скачати?

Пам'ять: 0.75 MB
Час: 0.061 c