Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.05.30;
Скачать: CL | DM;

Вниз

Как программно кликнуть в определенной строке DBGrid_a   Найти похожие ветки 

 
MaximShabanov   (2002-05-06 22:20) [0]

Задача вроде прооста: по автоинкрементальному полю выбрать номер записи и программно кликнуть на ДБГриде. Может кто подскажет как это реализовать?

Заранее благодарен!


 
Fay ©   (2002-05-07 07:26) [1]

Я, быть может, чего-то не понял...
Вызови обработчик OnClick-а


 
Song ©   (2002-05-07 08:35) [2]

Спозиционируйие мышь в нужную точку и сгенеруйте клик.


 
Anatoly Podgoretsky ©   (2002-05-07 08:48) [3]

Странные какие то задачи


 
+aaZ   (2002-05-07 10:43) [4]

Ну и советы: мышь подвинуть ... с головой-то всё в порядке ???
Вопрос в том в чём состоит задача:
1) Надо встать на заранее известную запись, и там что-то сделать (кликнуть)
2) Надо перебрать записи последовательно, и в каждой кликнуть.

Во-первых дбгрид это только отображение данных, сами данные лежат в Query привязанному к DataSource либо в Table ...
В обоих случаях надо использовать Actions!!! У многих компонент например у всех кнопок, у меню. и прочего есть такое понятие Action, вот там и надо выбирать тот Action который ты написал.
Получаем следующие преимущества, Action можно повесить на обработчик клика, но не в Object Inspector"е выбирать событие OnClick, а сделать новую функцию на OnClick и уже в ней написать:
Action1.Execute;
В этом случае если Action стоит в Enable=false; действие выполнятся не будет, зачем это нужно ???
Очень просто предположим что на Action1Execute стоит показ окна MessageBox, а сам Action висит на кнопке, в главном меню, и в контестном меню, тогда стоит мне сказать Action1.Enabled=false; тут же становятся недоступны соответствующие кнопки (где бы они не находились) пункты меню и прочее, если я поменяю Caption у Action то он изменится у всех конопок на которм этот Action у всех пунктов меню и прочего. Теперь как это всё должно работать в нашем случае
Рассмотрим случай с Query:

Случай 1. (надо встать на заранее известую запись)
implementation

{$R *.dfm}

procedure TForm1.Action1Execute(Sender: TObject);
begin
// Здесь можно что-то сделать при клике на ДБГриде
end;

procedure TForm1.Button2Click(Sender: TObject);
var
Opts: TLocateOptions;
begin
Query1.Locate("ID",153,Opts);
Action1.Execute;
end;

procedure TForm1.DBGrid1CellClick(Column: TColumn);
begin
Action1.Execute;
end;

end.
Здесь мы нашли запись 153, в поле с именем ID... встали туда и что-то сделали. Начали всё это делать после того как нажали кнопку 2.
во втором случае надо делать то же самое только перебрать все записи.
для этого
procedure TForm1.Button2Click(Sender: TObject);
var
Opts: TLocateOptions;
i: Integer;
begin
Query1.First;
for i:=0 to Query1.RecordCount do
begin
Action1.Execute;
Query1.Next;
end;
end;

Если что-то не понятно, пиши вышлю проект целиком ... не могу я здесь так подробно писать.


 
Johnmen ©   (2002-05-07 10:55) [5]

Ммм-да-а-а-а-а...
Еще один сенсей, путающийся в терминологии и не понимающий сути вопроса...
Печально... <:(



 
Lusha ©   (2002-05-08 11:03) [6]

Смотрите функцию mouse_event и свойство TCustomGrid.CellRect... Может полегчает... :)



Страницы: 1 вся ветка

Текущий архив: 2002.05.30;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.013 c
1-97265
Blacki
2002-05-17 22:07
2002.05.30
Изменение языка


1-97233
MaximatorVeter
2002-05-20 15:34
2002.05.30
К коллекционерам! Как создать свою коллекцию?


4-97457
Landgraph
2002-03-28 14:46
2002.05.30
Чтение содержимого каталога...


1-97336
Rammst
2002-05-19 11:02
2002.05.30
Удаление файлов


1-97311
ETeRNaL
2002-05-19 07:59
2002.05.30
Coolbar