![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
как программно щелкнуть по элементу списка [D7, WinXP]
jsnx © (2007-09-26 21:25:00)Идея такая, вернее я ее видел у кого-то в книжке.
Необходимо программно щелкнуть по элементу списка что-бы возникло событие OnClick, в результате строковая переменная ассоциируется с таблицей в Word, а затем должно происходить добавление строк этой таблицы.
Пробовал вариант когда на отдельной форме рсположен ListBox и кнопка, listBox заполняется списком таблиц документа Word, а по щелчку на кнопке добавляется строка.
Я бы хотел повесить все это на кнопку, т.е. по нажатии в таблицу ворда добавляется столько строк, сколько в DBGrid.
evvcom (2007-10-01 14:28:00) [1]Жжете, пацаны. Я уже под столом :-)
Эмуляция клика: [7] + ListBox.Click; этого достаточно, если обрабатывать OnClick
Denis_ (2007-09-29 16:09:00) [2]
> {RASkov} © (26.09.07 22:09) [3]
Круто! Я сразу подумал, что это не бред:)
Jsnx (2007-09-27 20:22:00) [3]Спасибо Вася, вот как я это сделал:
procedure TForm1.Button6Click(Sender: TObject);
var table: variant;
a: integer;
begin
Table1.First;
W:=CreateOleObject('Word.Application');
W.visible:=true;
W.Documents.add(ExtractFileDir(Application.ExeName)+'\PAN1.dot');
W.ActiveDocument.Range(1242,1257).Select;
W.Selection.Text:=DateToStr(Date);
W.ActiveDocument.Range(35,36).Select;
W.Selection.Text:=Table1RNaimen.Value;
ListBox1.Items.Clear;
for a:=1 to W.ActiveDocument.tables.Count do
begin
ListBox1.Items.Add('Таблица- '+intToStr(a));
end;
ListBox1.Selected[1]:=true;
table:=W.ActiveDocument.Tables.Item(ListBox1.ItemIndex+1);
table.rows.add;
end;
Сдесь после нажатия кнопки создается объект ворда на основе шаблона, в который в определенные области вставляется сис. дата и значение поля таблицы, в список ListBox1 заносятся список таблиц в шаблоне, затем выбирается вторая таблица и к ней в конец добавляется пустая строка.
Правда пока не доделал, что бы количество строк соответствовало количеству записей в Table1, но ет легко.
Мож кому полезно будет сие творение.
Вася Правильный (2007-09-27 10:58:00) [4]ListBox.SelectedIndex:=10
DVM (2007-09-26 22:28:00) [5]
> В общем надо добавить в вордовскую таблицу столько строк
> сколько их в DBGrid. И все это должно происходить по нажатию
> кнопки.
И в чем сложность? Это элементарно же.
{RASkov} (2007-09-26 22:17:00) [6]> [4] Jsnx (26.09.07 22:12)
Лучше не стало.
Имею ввиду [0] и [4]... :(
Jsnx (2007-09-26 22:12:00) [7]Да перемудрил трохец. В общем надо добавить в вордовскую таблицу столько строк сколько их в DBGrid. И все это должно происходить по нажатию кнопки.
{RASkov} (2007-09-26 22:09:00) [8]
procedure ЩёлкПо(var ЭлементСписка: ТЭлементСписка);
begin
ShowMessage('Я, '+ЭлементСписка.Name+', заявляю, что по мне только что щёлкнули');
end;
procedure TForm1.Button3Click(Sender: TObject);
var ЭлСпск: ТЭлементСписка;
begin
ЭлСписок:=ТЭлементСписка.Create;
ЭлСписок.Name:='Списка элемент';
ЩёлкПо(ЭлСписок); //Вот тут-то мы по нему и щелкнем
ЭлСписок.Free;
end;
> [0] jsnx (26.09.07 21:25)
Это не бред. Просто в [0] так подробно и понятно все написано....
Kolan (2007-09-26 21:50:00) [9]Мда задача усложняется с каждой строкой поста по экспоненциальному закону
engine (2007-09-26 21:38:00) [10]> [0] jsnx (26.09.07 21:25)
> программно щелкнуть по элементу списка что-бы возникло событие
> OnClick
Иди поспи лучше. А завтра, протрезвев, объяснишь чего у тебя не получается.