powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Drag( Begin! ) и Editable Column
25 сообщений из 30, страница 1 из 2
Drag( Begin! ) и Editable Column
    #32344028
Фотография Вовик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хочу инициировать "перетаскивание" Datawindow с помощью скрипта на событие clicked()

Код: plaintext
1.
if row> 0  and ib_DragOnRowClick=true then this.Drag(Begin!)


Так вот. Это срабатывает всегда , за исключением случая , когда пытаемся начать перетаскивать , находясь в поле , где в данный момент находится фокус ввода и есть мигающий курсор.
В этом случае происходит выделение текста с помощью мыши.
Это не лечится ?
...
Рейтинг: 0 / 0
Drag( Begin! ) и Editable Column
    #32344091
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет.
...
Рейтинг: 0 / 0
Drag( Begin! ) и Editable Column
    #32344361
Фотография Вовик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда перефразирую вопрос : можно ли с помощью кода "вывести" элемент (поле) dw из режима редактирования? Может как-то с фокусом можно поиграться?
...
Рейтинг: 0 / 0
Drag( Begin! ) и Editable Column
    #32344371
Ermak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Режим редактирования" - такого термина применительно к полю DW не существует.

Быть может поможет acceptText() ???
...
Рейтинг: 0 / 0
Drag( Begin! ) и Editable Column
    #32344379
Я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Я
Гость
И чем тебе Ермак поможет AcceptText, интересно узнать :-)) Фокус, то все равно останется в том поле :-))
...
Рейтинг: 0 / 0
Drag( Begin! ) и Editable Column
    #32344412
Фотография Вовик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно ли с помощью WinAPI убрать курсор из поля ввода?
...
Рейтинг: 0 / 0
Drag( Begin! ) и Editable Column
    #32344482
Фотография brahew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А разве нельзя отработать TabKey, перед началом перетаскивания
...
Рейтинг: 0 / 0
Drag( Begin! ) и Editable Column
    #32344504
Я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Я
Гость
Я написал твой скрипт на clicked DW, ну и если у поля есть свойство Auto Selection, то действительно оно выделяется :-)), но перетаскивание начинается!!!
Что-то я не въехал, а в чем проблема то?
...
Рейтинг: 0 / 0
Drag( Begin! ) и Editable Column
    #32344527
Фотография Вовик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А ты попробуй перетащить , если ты уже находишься в этом поле , и при этом там есть мерцающий курсор , а поле не выделено целиком.

Т.е. проблема возникает , когда ты один раз кликнул мышью и отпустил кнопку мыши, а затем опять ее нажимаешь и пытаешься начать перетаскивать. Вместо перетаскивания начинается выделение части текста в поле.
...
Рейтинг: 0 / 0
Drag( Begin! ) и Editable Column
    #32344566
Я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Я
Гость
Вовик, да это так...
Встречный вопрос, а на кой это тебе надо, тоесть перетаскивание DW???
...
Рейтинг: 0 / 0
Drag( Begin! ) и Editable Column
    #32344577
Ermak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
if acceptText() =  1  then
   if row> 0  and ib_DragOnRowClick=true then
      this.POST Drag(begin!)
   end if
end if	


Да, действительно просто acceptText() здесь не поможет.
...
Рейтинг: 0 / 0
Drag( Begin! ) и Editable Column
    #32344593
Я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Я
Гость
Молодец Ермак, но AcceptText все равно не нужен!

if row>0 and ib_DragOnRowClick=true then
this.POST Drag(begin!)
end if

Только я все равно не понял, а накой это надо!!!
Вовик ответь, может ты просто в чем-то заблуждаешься...
...
Рейтинг: 0 / 0
Drag( Begin! ) и Editable Column
    #32344611
Фотография Вовик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Склоняю голову, огромное спасибо, Ермак !!!
Кстати , можно и без AcceptText() , главное Post !!!

Код: plaintext
1.
2.
3.
if row> 0  and ib_DragOnRowClick=true then
 this.Post Drag(Begin!)
end if


А нужно это как всегда для удобства интерфейса и экономии места на
экране. Есть 2 DW на одной форме. Перетаскивая записи с одного DW
пользователь выполняет Insert в другое.
Обратное перетаскивание вызывает Delete. ( Кроме того , те же действия
можно выполнить с помощью двойного щелчка мышью , кому как нравится ).
В результате на форме не нужны лишние кнопки.
...
Рейтинг: 0 / 0
Drag( Begin! ) и Editable Column
    #32344660
Я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Я
Гость
Вовик, так получается, что ты даешь редактировать окно, сохранять, добавлять и перетаскивать строки...
Какое-то не очень хорошое реализация интерфейса... Если б это было разнесено - то и проблем не было :-))
Ну в общем смотри сам :-)) Хозяин - БАРИН.
...
Рейтинг: 0 / 0
Drag( Begin! ) и Editable Column
    #32344866
Ermak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторКстати , можно и без AcceptText() , главное Post !!!
Действительно Post в данном вопросе - главное.

Однако.
Первоначально при добавлении или изменении данных пользователь просто вводит текст в так называемый edit control , который находится поверх текущей ячейки.
Для программного чтения/записи содержимого edit control можно использовать gettext() / settext() .
После того как пользователь завершил редактирование, т.е например нажал ENTER или ушел из текущей ячейки, DataWindow выполняет процесс записи содержимого edit control в свой внутренний буфер, естественно выполнив соответствующие проверки, как-то конвертирование строки в соответствующий формат данных, проверка правил валидации, тех что прописаны в validation Expression. Что бы программным способом сбросить данные из edit control в буфер dataWindow необходимо использовать accepttext() .

То есть имеено эта команда "выводит" элемент (поле) dataWindow из режима редактирования.

О чем Вовик собственно и спрашивал.
авторТогда перефразирую вопрос : можно ли с помощью кода "вывести" элемент (поле) dw из режима редактирования?

Если просто сделать
Код: plaintext
 this.Post Drag(Begin!)

То последние изменения сделанные пользовтелем не будут пернесены в другое DW, потому что Event clicked(...) сделанное в текущей ячейке не вызовет автоматического сброса содержимого edit control в буфер datawindow.
Поэтому чтобы избежать гемороя в дальнейшем себе дешевле убедиться, что данные были записаны в буфер dataWindow
Поэтому мой рецепт примерно такой:

Код: plaintext
1.
2.
3.
4.
5.
6.
if acceptText() =  1  then
   this.POST Drag(begin!)
else
   setText(getText())
   return  1 
end if	


PS. Подробности можно прочесть в DataWindow Programmer's Guide ,
Chapter 2 Using DataWindow Objects, Manipulating data in DataWindow control .
...
Рейтинг: 0 / 0
Drag( Begin! ) и Editable Column
    #32344903
Я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Я
Гость
Ермак, ты конечно молодец! Но! если парню - Вовику надо скопировать записи из одной DW в другую (типа RowsCopy и RowsMove), то AcceptTect еще раз говорю и утверждаю НАФИГ НЕ НУЖЕН!!! ВСЕ ПЕРЕНЕСЕТСЯ ПРОСТО НА УРА!!! Если не веришь то попробуй и не фиг втирать тут всякую лажу :-))
Это шутка, просьба не обижаться...
Но перед тем как утверждать что-то надо хотябы подумать и попробывать.
С уважением,
Я.
...
Рейтинг: 0 / 0
Drag( Begin! ) и Editable Column
    #32344976
Ermak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не говорил что без accepttext() - это работать не будет.
Перед тем как что-то написать я всегда стараюсь всё (или почти всё) проверить.

Однако:
Можно обойтись и без POST если в dataWindow для всех полей установить tabSequince = 0, но не думаю, что это будет хорошо для пользователей

Можно спокойно обойтись и без aceptText() если все поля в dataWindow readOnly и это тоже не есть хорошо для пользователей.
...
Рейтинг: 0 / 0
Drag( Begin! ) и Editable Column
    #32345040
Я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Я
Гость
Ермак, блин я смотрю ты великий перестраховщик, так и пиши в следующий раз, ну тогда как согласуются эти два выражения (ответь сам себе на них и все прекрасно поймешь) авторЯ не говорил что без accepttext() - это работать не будет. и авторТо последние изменения сделанные пользовтелем не будут пернесены в другое DW, потому что Event clicked(...) сделанное в текущей ячейке не вызовет автоматического сброса содержимого edit control в буфер datawindow.
Согласись полное противоречивание своим же высказываниям, а по поводу авториспользовать accepttext().

То есть имеено эта команда "выводит" элемент (поле) dataWindow из режима редактирования вообще и говорить не стоит :-))
Ладно трепаться больше не хочу, Вовик же получил, что хотел...
...
Рейтинг: 0 / 0
Drag( Begin! ) и Editable Column
    #32345319
Ermak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не вижу никакого притиворечия.

По моему все мои высказывания ни коим образом не противоречат друг другу.
Без использования accepttEXT() POST drag() работать будет, но что бы заметить разницу достаточно просто сравнить твой вариант и предложенный мной.
Выводы делайте сами.
Я рассказал свой взгляд на проблему. Если есть другой, то мне всё равно.

А уж насчет перестраховщик - это ты молодец, мне понравилось.
...
Рейтинг: 0 / 0
Drag( Begin! ) и Editable Column
    #32345401
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Несмотря на кашевидное изложение мыслей, насчёт интерфейса г-н Я Guest прав. Всяческие Drag операции на редактируемых элементах - это странно.
...
Рейтинг: 0 / 0
Drag( Begin! ) и Editable Column
    #32345451
Фотография Вовик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На самом деле ничего странного. Поля вообще-то не редактируемые,
а DisplayOnly. Но фокус ввода на них может устанавливаться,
отсюда и возникает курсор.
Само DW типа Grid, поэтому трудно кликнуть где-либо вне поля.
...
Рейтинг: 0 / 0
Drag( Begin! ) и Editable Column
    #32345479
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда зачем они DisplayOnly?
...
Рейтинг: 0 / 0
Drag( Begin! ) и Editable Column
    #32346124
andy753
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну например для того чтобы скопировать значение поля в клипборду. Если таббордер - 0. Это сделать затруднительно
...
Рейтинг: 0 / 0
Drag( Begin! ) и Editable Column
    #32346980
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Узко мыслите товрищч andy753 , да и не тому объяснять взялись, для чего DisplayOnly использоваться может :-)

Автор же супер удобный юзер интерфейс с Drag and Drop делает. В таком случае нужно просто маркер на ряд сделать. Если за него потянул, значит операция на весь ряд, если за конкретное поле потянул, значит копирование в клипборд, вот и всё. При этом никакой непоследовательности в интерфейсе не наблюдается...
...
Рейтинг: 0 / 0
Drag( Begin! ) и Editable Column
    #32347402
Я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Я
Гость
Классное решение Филипп, что ж ты так долго молчал, по крайней мере Вовику стоит прислушаться.
...
Рейтинг: 0 / 0
25 сообщений из 30, страница 1 из 2
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Drag( Begin! ) и Editable Column
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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