powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / как передать из Datawindow?
12 сообщений из 12, страница 1 из 1
как передать из Datawindow?
    #33413506
MidnightGuest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уважаемые все!
Помогите новичку разобраться - есть datawindow с именем layout1, на ней есть картинка с именем pict2. Кроме того, имеется глобальная функция f_path, которая ищет в базе путь к каталогу, где лежат картинки, она принимает аргумент типа picture, а затем меняет у него PictureName. Больше нет ничего, ни окон, ни event'ов, ни прочего кода. Вопрос такой: каким образом передать из layout1 имя картинки в функцию, для того, чтобы поменять путь, откуда она будет подтянута (если через computedfield, то как написать для него аргумент?)?
...
Рейтинг: 0 / 0
как передать из Datawindow?
    #33413539
Фотография ЗоринАндрей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ничего не понял?
Может это про чтение свойств через Describe("pict.xxx") и изменение Modify("pict1.xxx=xxx")?

Зорин А.
"I love deadlines. I like the whooshing sound they make as they fly by."
-- Douglas Adams
...
Рейтинг: 0 / 0
как передать из Datawindow?
    #33413621
DvB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DvB
Гость
MidnightGuestБольше нет ничего, ни окон, ни event'ов, ни прочего кода.

Пожалуйста, поясните Ваш вопрос. Я не понимаю, как можно передать что-либо функции в таких условиях. А что есть - DW в painter?
...
Рейтинг: 0 / 0
как передать из Datawindow?
    #33413728
MidnightGuest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Имеются некие Datawindow, являющиеся шаблонами для пользователей, в которые пользователи вводят свои данные (через некое приложение). Т.е. эти DW только DWObject, как я понимаю, т.е. они не привязаны к окнам, а просто цепляются как DW. Пользователи хотят, чтобы в этих шаблонах отображались рисунки их технологических схем. Рисунки должны браться из папки установки основной программы, причем заранее неизвестно, куда была установлена эта папка (путь можно достать из базы). То есть для нормального отображения рисунков на DW надо менять свойство рисунков picturename. При этом все делается в рамках этих DW, основное приложение в этом не участвует. Максимум, что можно - довесить какие-то глобальные функции.
Как решить головоломку, не знаю :((
...
Рейтинг: 0 / 0
как передать из Datawindow?
    #33413874
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Computed field с expression
Код: plaintext
bitmap ( s )
...
Рейтинг: 0 / 0
как передать из Datawindow?
    #33413985
DvB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DvB
Гость
Локшин МаркComputed field с expression
Код: plaintext
bitmap ( s )

to MignightGuest
Если в базе лежит путь к папке с файлом картинки, то s в примере должно быть поле в DW, содержащее этот путь. Если же в базе только путь к папке,
то вместо s лучше использовать глобальную функцию, которая найдет файл вернет его имя. Еще можно использовать picture control, установливая в нем свойство PictureName
...
Рейтинг: 0 / 0
как передать из Datawindow?
    #33414676
Фотография ЗоринАндрей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Глобальные функции в DW лучше не использовать. НИКОГДА. Это вам кажется что она выполнится один раз, а вместо этого функция будет искать искать и искать путь на каждый чих включая скроллинг.

Меняйте значение column, меняйте expression у compute используя Modify, но использования глобальных функций старайтесь избегать.

По поводу исходного вопроса
- если там у вас битпап то
<DW Control Name>.Modify("<BitMapname>.Filename='<filename (with path) containing bmp (i.e., c:\test\fish.bmp)>'")

- если там column то свойство Display as Picture

- если compute то bitmap (s)

подймайте - картнкой может быть не только bitmap, но и column, и compute - выбирайте что удобнее.
...
Рейтинг: 0 / 0
как передать из Datawindow?
    #33414718
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 ЗоринАндрей обратите внимание на:
MidnightGuestПри этом все делается в рамках этих DW, основное приложение в этом не участвует. Максимум, что можно - довесить какие-то глобальные функции
...
Рейтинг: 0 / 0
как передать из Datawindow?
    #33414814
Фотография ЗоринАндрей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну то есть кроме как сделать compute с выражением bitmap( f_path(...) + 'picturename.bmp') ничего сделать нельзя?

только функция должна ничего не принимать и менять, а просто возвращать путь.

Приспособить функцию которая меняет свойство picturename у объекта picture не удастся никак. ибо picture control и datawindow это разные вещи - ничего общего.

Так что менять то надо сам подход. Почему f_path должна работать именно с picture control? надо разделить собственно две функции - определение пути, и модификация свойства, не так ли? Поскольку там где для picture надо поменять свойство picturename, для datawindow ничего не надо менять, или поменять значение column, или поменять свойство filename у bitmap внутри dw.

Марк, МиднайтГесту который спрашивает как приспособить функцию заточенную под picture к datawindow лаконичный совет
Локшин МаркComputed field с expression
Код: plaintext
bitmap ( s )

не даст ничего.
Тут надо как то доходчиво объяснить как оно работает в dw.
...
Рейтинг: 0 / 0
как передать из Datawindow?
    #33414816
Фотография ЗоринАндрей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пусть автор покажет код функции f_path(...)
...
Рейтинг: 0 / 0
как передать из Datawindow?
    #33415235
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 ЗоринАндрей обратите внимание на:
MidnightGuestРисунки должны браться из папки установки основной программы, причем заранее неизвестно, куда была установлена эта папка (путь можно достать из базы)
ЗоринАндрейне даст ничего.
Тут надо как то доходчиво объяснить как оно работает в dw.
Небольшая медитация над TFM в предложенном направлении должна дать положительный результат :) .
...
Рейтинг: 0 / 0
как передать из Datawindow?
    #33429243
sapozbo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DataWindondow and Picture control on it.
The best way: Set Dumy Picture location in the picture contol, find pass to real
location and Picture name. After get DataWindow syntex, replace bipmap with
location and Picture name and recreate DataWindow with new syntes.
Exsample:(short version)

String ls_file_name, ls_new_syntex

ls_new_syntex = dw_1.Object.DataWindow.Syntex
ls_new_syntex = Replace ('dumy name',1,Len('dumy name'),ls_file_name)

dw_1.Create(ls_new_syntex)
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / как передать из Datawindow?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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