Главная страница
    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.005 c
1-97232
indigo
2002-05-19 22:20
2002.05.30
media


3-97135
Taciturn
2002-05-04 22:17
2002.05.30
Как изменить значение поля Autoincrement?


3-97160
_Grey_
2002-05-03 22:27
2002.05.30
Проблема с размерностью создаваемых полей


3-97146
Sirus
2002-05-04 09:36
2002.05.30
Как создать файл БД InterBase (*.gdb) программно???


14-97389
СергейКнязев
2002-04-16 12:21
2002.05.30
Не совсем по Delphi, но важно.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский