Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.05.30;
Скачать: [xml.tar.bz2];

Вниз

Как программно кликнуть в определенной строке 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.004 c
3-97199
cdaDmitriy
2002-05-07 17:38
2002.05.30
Проблема с DBGrid ( Прыгает курсор )


3-97168
Jaric
2002-05-07 16:27
2002.05.30
Как сохранить результат запроса в физическую таблицу на диске?


1-97307
Beginner
2002-05-19 13:26
2002.05.30
Как определить програмно WinNT


1-97290
Naik
2002-05-18 18:58
2002.05.30
Печать с канвы?!


3-97196
kserg@ukr.net
2002-05-07 17:36
2002.05.30
Кто работал с данными типа Time - подскажите





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский