powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Подсветка текущего поля при редактировании
12 сообщений из 12, страница 1 из 1
Подсветка текущего поля при редактировании
    #32346309
Andyn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно ли как-то сделать выделение текущего поля другим цветом при редактировании, вместо того, чтобы показывать фокус вокруг него?
...
Рейтинг: 0 / 0
Подсветка текущего поля при редактировании
    #32346399
Я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Я
Гость
Можно :-))
Тока зачем :-))
...
Рейтинг: 0 / 0
Подсветка текущего поля при редактировании
    #32346421
Andyn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Затем что при редактировании во FreeForm пользователь хочет видеть текущее поле выделенным другим цветом.

А вообще говоря, если человек спрашивает - значит ему нужно. Знаешь как сделать - скажи, не знаешь - не пиши зазря. :)
...
Рейтинг: 0 / 0
Подсветка текущего поля при редактировании
    #32346426
Я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Я
Гость
Какие мы грубые :-))
А на самом деле делается все Modify!
...
Рейтинг: 0 / 0
Подсветка текущего поля при редактировании
    #32346433
Andyn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Очень конкретный ответ. Ты забыл сказать, что это делается в PowerBuilder. :))

Пример можешь написать?
...
Рейтинг: 0 / 0
Подсветка текущего поля при редактировании
    #32346441
Andyn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На самом деле все было бы очень просто, если бы в DW-функциях были аналоги GetRow() и CurrentRow() для столбцов. Но поскольку их нет, то такая простая задачка требует каких-то дополнительных действий.
...
Рейтинг: 0 / 0
Подсветка текущего поля при редактировании
    #32346463
Я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Я
Гость
Ну например:
iwd.Modify('column1.background.color=80269524')
...
Рейтинг: 0 / 0
Подсветка текущего поля при редактировании
    #32346464
Я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Я
Гость
Или ты не знаешь, когда енто написать?
...
Рейтинг: 0 / 0
Подсветка текущего поля при редактировании
    #32346480
Andyn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я Guest
Ну например:
iwd.Modify('column1.background.color=80269524')


Это все? М-да... :)) Если бы я был начинающим программистом на PB, то от такой подсказки я бы только больше запутался. :-/

Такой вариант подразумевает использование как минимум события ItemFocusChanged, внешних переменных для хранения имени предыдущего активного столбца, сбрасывания установок цвета по умолчанию для неактивных столбцов и т.д. Я уж не говорю о том, что такой скрипт меняет настройки цвета для столбца во всех строках, и при стиле DW, отличном от FreeForm это дает нежелательный результат.

Я думал ты предложишь какой-то иной способ решения этой проблемы. :)

Ладно, буду пробовать дальше.
...
Рейтинг: 0 / 0
Подсветка текущего поля при редактировании
    #32346634
Я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Я
Гость
Ну Andyn, пиши более четко задачу тогда... :-))
авторТакой вариант подразумевает использование как минимум события ItemFocusChanged, внешних переменных для хранения имени предыдущего активного столбца, сбрасывания установок цвета по умолчанию для неактивных столбцов и т.д.
Ну ты правильно подметил ...

Ну хорошо, ты не хочешь это писать в событиях, а тебе будет не влом писать это в каждой колонке каждо DW?

авторЯ уж не говорю о том, что такой скрипт меняет настройки цвета для столбца во всех строках, и при стиле DW, отличном от FreeForm это дает нежелательный результат.

А кто тебе мешает:
Modify(dwo.name+'.background.color="536870912~tif(currentRow()=getrow(),rgb(255,0,0),rgb(0,255,0))"').

А если ты хочешь, что-то более универсальное, то надо покрутить функциями, которые позволяет PB использовать в своих выражениях...
Так что дерзай, сделаешь напиши...
Любопытно посмотреть :-))
...
Рейтинг: 0 / 0
Подсветка текущего поля при редактировании
    #32346770
PaulJB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что если заделать так:
добавить текстовое поле t_colindex
в него записываем индекс или имя (в зависимости что обрабатывать см. ниже) активной колонки (поля) в событии ItemFocusChanged

Для каждого поля в сценарии св-ва backgroundcolor пишем (например для 1 колонки ):
if( getrow() = currentrow() and describe( 't_colindex.text' ) = '1', 0,255)

для второй соотв.:
if( getrow() = currentrow() and describe( 't_colindex.text' ) = '2', 0,255)

часть выражения "getrow() = currentrow()" определяет строку
часть выражения "describe( 't_colindex.text' ) = '2'" определяет колонку

сам не пробовал (только что придумал :) ), но думаю должно сработать.
...
Рейтинг: 0 / 0
Подсветка текущего поля при редактировании
    #32347220
Andyn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PaulJB
А что если заделать так:
добавить текстовое поле t_colindex
в него записываем индекс или имя (в зависимости что обрабатывать см. ниже) активной колонки (поля) в событии ItemFocusChanged
....
сам не пробовал (только что придумал :) ), но думаю должно сработать.


Да, так я тоже пробовал, только вместо текста использовал computed field, действительно все работает. Есть только один минус - для каждого столбца приходится писать свое выражение. Попытался придумать что-то универсальное, чтобы можно было всем столбцам сразу установить один скрипт - не вышло, нет аналогов CurrentRow() и GetRow() для столбца. Остается только написать в Sybase, может в следующих версиях добавят. А пока остановился на варианте PaulJB .
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Подсветка текущего поля при редактировании
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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