:: Visual Foxpro, Foxpro for DOS
Двойной клик на Image в Grid
cih2006
Автор

Сообщений: 39
Откуда: Tyumen
Дата регистрации: 15.09.2006
Может быть все очень просто, но не могу осилить срабатывание DblClick на картинке в гриде. Пока не ткнешь в соседнюю ячейку или в рисунок выше или ниже не хочет реагировать на двойной клик, хоть убейся. Может быть кто-нибудь уже с таким столкнулся и решил проблему, поделитесь плз!
Ratings: 0 negative/0 positive
Re: Двойной клик на Image в Grid
cih2006
Автор

Сообщений: 39
Откуда: Tyumen
Дата регистрации: 15.09.2006
Нашел тему про вывод изображения через контейнер в гриде.
Попробовал, круто, обрабатывается любой клик, тока вот изображение не показывает.
Ситуация: контейнер в ячейке, картинка в контейнере, как показать!?
Или чисто с картинкой в ячейке что-то можно сделать?
Ratings: 0 negative/0 positive
Re: Двойной клик на Image в Grid
samson_inv

Сообщений: 5915
Откуда: Ростов-на-Дону
Дата регистрации: 01.01.2005
в контейнер кинуть имагу
Ratings: 0 negative/0 positive
Re: Двойной клик на Image в Grid
cih2006
Автор

Сообщений: 39
Откуда: Tyumen
Дата регистрации: 15.09.2006
Цитата:
Ситуация: контейнер в ячейке, картинка в контейнере, как показать!?

Через динамик или по другому как-нить, есть пример плз!?
Ratings: 0 negative/0 positive
Re: Двойной клик на Image в Grid
samson_inv

Сообщений: 5915
Откуда: Ростов-на-Дону
Дата регистрации: 01.01.2005
если одна картинка зачем через динамик, если несколько соответственно несколько контейнеров
Ratings: 0 negative/0 positive
Re: Двойной клик на Image в Grid
cih2006
Автор

Сообщений: 39
Откуда: Tyumen
Дата регистрации: 15.09.2006
Что-то изнутри сейчас подсказывает, что придется похоже сделать столько контейнеров в поле, сколько картинок собираешься использовать, и все это дело в "динамиккарентконтрол" полю ................... Попробую, благо всего шесть изображений!
Ratings: 0 negative/0 positive
Re: Двойной клик на Image в Grid
cih2006
Автор

Сообщений: 39
Откуда: Tyumen
Дата регистрации: 15.09.2006
Пока мыслил samson_inv уже подсказал, что туда мыслил, уже начинаю как получится дам знать!11111111
Ratings: 0 negative/0 positive
Re: Двойной клик на Image в Grid
andreyyy

Сообщений: 427
Откуда: Днепр
Дата регистрации: 09.09.2008
Про свойство Sparse объекта Column грида не забыли?
Ratings: 0 negative/0 positive
Re: Двойной клик на Image в Grid
matod

Сообщений: 3062
Откуда: Иркутск
Дата регистрации: 31.10.2001
Есть и другой вариант:
1. Добавить одну картинку
2. повесить на "ненужное" Dynamic - свойство (например, DynamicFontShadow) свой метод, в котором изменять картинку в зависимости от условий.
Ratings: 0 negative/0 positive
Re: Двойной клик на Image в Grid
cih2006
Автор

Сообщений: 39
Откуда: Tyumen
Дата регистрации: 15.09.2006
matod
Есть и другой вариант:
1. Добавить одну картинку
2. повесить на "ненужное" Dynamic - свойство (например, DynamicFontShadow) свой метод, в котором изменять картинку в зависимости от условий.

Спасибо за понимание!
Что Вы имели ввиду в п.1 добавить ее в контейнер или в колонку и почему ее менять из под другого метода
Ratings: 0 negative/0 positive
Re: Двойной клик на Image в Grid
matod

Сообщений: 3062
Откуда: Иркутск
Дата регистрации: 31.10.2001
Поясняю. Это я привел решение "вывод разных картинок в ячейке грида, в зависимости от условия"

1. картинку можно добавить прямо в колонку, либо поместить ее в контейнер и добавить этот контейнер.
2. Чтобы для каждой строки отображалась "своя" картинка, нужно на Dynamic свойство повесить вызов метода, внутри которого код будет устанавливать свойство picture в зависимости от условий. Например:
if myTabl1.field1 = 1
thisfor.grid1.column1.image1.Picture='picture1.bmp'
else
thisfor.grid1.column1.image1.Picture='picture2.bmp'
endif

Это работает, поскольку при перерисовке грида фокс неявно "пробегает" по всем (видимым) записям и вычисляет для них Dynamic свойства.

Ну, если картинок немного, можно действительно просто добавить нужное количество картинок и переключать их по DynamicCurrentControl.
Ratings: 0 negative/0 positive
Re: Двойной клик на Image в Grid
XAndy

Сообщений: 3803
Откуда: Киев
Дата регистрации: 05.02.2004
matod
Например:
if myTabl1.field1 = 1
thisfor.grid1.column1.image1.Picture='picture1.bmp'
else
thisfor.grid1.column1.image1.Picture='picture2.bmp'
endif

Тогда уж PictureVal, а то "часики" будут ;)
Ratings: 0 negative/0 positive
Re: Двойной клик на Image в Grid
cih2006
Автор

Сообщений: 39
Откуда: Tyumen
Дата регистрации: 15.09.2006
Всем неравнодушным огромное спасибо!
После нудных ковыряний, идеальным вариантом оказалось добавить в колонку несколько, в моем случае шесть, контейнеров с нужными имиджами на них.
После того, как определен контролсурс, командуем:
Thisform.MyGrid.Column1.DynamicCurrentControl=[ThisForm.PutControl()], где:
**************
* PutControl *
**************
Thisform.MyGrid.Column1.CurrentControl=Iif(expr1, "Container1",;
Iif(expr2, "Container2",;
Iif(expr3, "Container3",;
Iif(expr4, "Container4",;
Iif(expr5, "Container5",;
Iif(expr6, "Container6",""))))))
TCCURRENTCONTROL = Thisform.MyGrid.Column1.CurrentControl
Return (TCCURRENTCONTROL)

Зато любой клик, а также двойной, отлавливаются на таком псевдоимидже с любого места, где бы ни находился фокус. [sm016]
Ratings: 0 negative/0 positive
Re: Двойной клик на Image в Grid
HouseManedger

Сообщений: 53
Дата регистрации: 25.06.2009
Цитата:
XAndy
Цитата:
Тогда уж PictureVal, а то "часики" будут

Можно вопрос:
- О каких часиках речь?

Дело в том что я "пользую" DynamicFontShadow для построения дерева в Grid(е) по этому и интересно
Ratings: 0 negative/0 positive
Re: Двойной клик на Image в Grid
XAndy

Сообщений: 3803
Откуда: Киев
Дата регистрации: 05.02.2004
HouseManedger
О каких часиках речь?

О песочных [attachment 9692 2.png]
Ну или колёсике в поздних ОС (или что там пользователь другое в теме поставит).

При присваивании Picture в гриде был, помню, такой эффект - курсор меняется на "часы", и мало того, может таким и остаться после перерисовки грида, пока мышом не шевельнуть. Например, по заголовку колонки если кликнуть был такой глючок. Можно заранее загрузить все картинки куда-то в свойства или в массив-свойство, а уже в динамик менять значение PictureVal из ранее загруженных. Так и глюка с курсором нет, и работает быстрее, и визуально гладенько всё, не дёргается ;)
Ratings: 0 negative/0 positive
Re: Двойной клик на Image в Grid
HouseManedger

Сообщений: 53
Дата регистрации: 25.06.2009
а я то думал
Ratings: 0 negative/0 positive
Re: Двойной клик на Image в Grid
matod

Сообщений: 3062
Откуда: Иркутск
Дата регистрации: 31.10.2001
Цитата:
При присваивании Picture в гриде был, помню, такой эффект - курсор меняется на "часы"

Вон оно как... А я то думаю, чего это у меня эти часики появляются не к месту.
XAndy, спасибо

2cih2006
Iif(expr2, "Container2",;
Iif(expr3, "Container3",;
Iif(expr4, "Container4",;
Iif(expr5, "Container5",;
Iif(expr6, "Container6",""

В фоксе есть еще функция icase() ;)
Ratings: 0 negative/0 positive
Re: Двойной клик на Image в Grid
Crispy

Сообщений: 18571
Дата регистрации: 16.05.2005
Так можно ж и одним контейнером обойтись вроде. ;)
Накидать все имиджи в него невидимыми, и по условию "включать" один нужный.


------------------
В действительности все иначе, чем на самом деле.
                                      (Антуан де Сент-Экзюпери)
Ratings: 0 negative/0 positive
Re: Двойной клик на Image в Grid
cih2006
Автор

Сообщений: 39
Откуда: Tyumen
Дата регистрации: 15.09.2006
2Matod
Про icase() - очень даже удобный и компактный Case - Thank!
Нет границ познаниям

Crispy
Пикчуры типа иконок 16х16 расползаются в исходном размере по всему контейнеру, если непосредственно на контейнер их накидать, горькая правда. И причем насчет их не нашел никаких управляющих свойств.
Поэтому лучше имиджа в контейнере ничего не нашлось, т.к. с сохранением пропорций или растягиванием нет проблем, еще и якорь можно обозначить ;)
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 27 (Гостей: 27)

© 2000-2024 Fox Club 
Яндекс.Метрика