Це ж подія для виділення осередків гріда, а мені потрібно програмно
виділити всі рядки при натисканні кнопки, наприклад.
[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