powered by simpleCommunicator - 2.0.36     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Вызов метода на DblClick из любого столбца Grid
9 сообщений из 9, страница 1 из 1
Вызов метода на DblClick из любого столбца Grid
    #32173265
Kozerog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нужно по нажатию DblClick в любом столбце Grid запустить метод Click() кнопки из этой формы. Как сделать это простым способом ?
...
Рейтинг: 0 / 0
Вызов метода на DblClick из любого столбца Grid
    #32173277
karly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Click грида срабатывает при щелчке ВНЕ зоны данных.
Для того, чтобы срабатывал Click на данных, нужно
писать код в Grid1.Column1.TEXTBOX1.Click()

Это должно быть написано В КАЖДОЙ колонке.
Проще всего это сделать, если у тебя 8-я
версия Фокса. Там можно указать свой класс
textbox для грида. В остальных версиях
можно применить один "хакерский" прием -
открыть форму, как таблицу, и заменить
нужные значения. Но для начала лучше
все сделать ручками :)
...
Рейтинг: 0 / 0
Вызов метода на DblClick из любого столбца Grid
    #32173304
chagoserg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
позвольте не согласиться - свой класс textbox для грида можно указать в ЛЮБОЙ версии VFP ;)
...
Рейтинг: 0 / 0
Вызов метода на DblClick из любого столбца Grid
    #32173319
Kozerog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как раз вот "ручками" в каждой колонке GRID как предлагает karly
надоело ! Не по "программолюдски" это... Особенно когда колонок много.

Mожет есть что-то похожее на SetAll или программно ?
...
Рейтинг: 0 / 0
Вызов метода на DblClick из любого столбца Grid
    #32173462
karly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну что ж, если ты уже попрактиковался в написании "ручками"... ;)

Создай класс на основе textbox, например TextBoxClk,
и сохрани его в библиотеке myLib.vcx.
Сделай резервную копию формы ;)
Затем напиши коротенькую программу

**********************************************
#DEFINE PARENT_NAME "FORM1.GRID1.COLUMN" && Здесь укажешь правильные имена

use myForm.scx
Replace Class with "TextBoxClk", ClassLoc with "myLib.vcx" ;
for UPPER(Class) == "TEXTBOX" and UPPER(Parent) = PARENT_NAME

use in myForm
**********************************************

Обрати внимание на строгое равенство названий класса и нестрогое - родительского объекта. Если библиотека классов лежит в другой директории,
то ее нужно указывать вот так "..\ClassLibs\myLib.vcx"

Все, пожалуй :)

Программку стоит запускать после добавления столбцов в грид.

В 8-й версии можно просто указать, какой класс использовать в гриде.

P.S. Если chagoserg владеет другими приемами автоматизации -
охотно посмотрю.
...
Рейтинг: 0 / 0
Вызов метода на DblClick из любого столбца Grid
    #32173525
Kozerog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
=> karly

Извините за серость !

< #DEFINE PARENT_NAME "FORM1.GRID1.COLUMN" && Здесь укажешь правильные имена >

это куда ?

Если в форме PageFrame c 5 страницами, на каждой GRID, в котором нужно осуществлять указанный вызов DBLCLICK ?

Восьмой версией не пользовался. Все на 6.0 SP5.
Есть ли веские причины переходить на 8. Семь пробовал, но вернулся на 6, обнаружив отсутствие привычных инструментов(например: WIZARD\SETUP).
...
Рейтинг: 0 / 0
Вызов метода на DblClick из любого столбца Grid
    #32173544
karly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Открой форму,как таблицу, и посмотри содержимое полей.
Многое станет на свои места :)

Если у тебя во всех гридах должен исполняться один и тот же код,
то можно условие переписать вот так

Replace ... For Upper(Class) == "TEXTBOX" and "COLUMN" $ Upper(Parent)

т.е. заменить текстбоксы, у которых родительским объектом является Column

А в #DEFINE я текст вынес, чтобы было понятнее ;) и удобнее в будущем редактировать.
Это как раз на случай, если у разных гридов должна быть разная реакция на DblClick.
Т.е. для грида на первой закладке нужно написать что-то вроде

#DEFINE PARENT_NAME "FORM1.PAGEFRAME1.PAGE1.GRID1.COLUMN"

По поводу отсутствия Setup Wizard - теперь вместо него Install Shield Express.
Шаг, так сказать, навстречу общепринятым стандартам :)
Зато появились всякие IntelliSense, функции для работы с XML, и протчая, и протчая...
...
Рейтинг: 0 / 0
Вызов метода на DblClick из любого столбца Grid
    #32173594
Kozerog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
=>karly

Спасибо! Получилось по Вашему.

Есть особенность, если в старом GRID1.COLUMN.TEXT1.DBLCLICK()

остается просто хотя бы пробел или что-то от себя, то родительский метод
не работает. Т.е. метод толжен быть установлен DEDAULT.
...
Рейтинг: 0 / 0
Вызов метода на DblClick из любого столбца Grid
    #32173606
karly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Kozerog

Так и должно работать. Если указан свой метод, то метод родительского класса не выполняется.
Чтобы выполнить его "насильно", в тексте метода нужно написать
DoDefault()
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Вызов метода на DblClick из любого столбца Grid
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]