Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Пт мар 29, 2024 01:08

...
Google Search
Forth-FAQ Spy Grafic

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 55 ]  На страницу Пред.  1, 2, 3, 4  След.
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: Вт янв 08, 2008 10:29 
Не в сети
Аватара пользователя

Зарегистрирован: Пт май 05, 2006 06:19
Сообщения: 192
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
пара вопросов созрела :)
экспериментируя с wincc-example.f
1. можно ли делать вложенные закладки ?
2. если изменить тип окна на стандартное (create-window вместо dialog-window) то появляется белёсая рамка видимо гдето что то с размерами надо указать или свойства окна дополнить, не подскажите?
3. сдесь был еще один вопрос но на него ответ я нашел в процессе написания :)

P.S. максимум чего удалось добиться вложенная группа закладок создается под основной

_________________
SPF


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вт янв 08, 2008 15:37 
Не в сети

Зарегистрирован: Сб май 06, 2006 12:01
Сообщения: 959
Откуда: Украина, Харьков
Благодарил (а): 2 раз.
Поблагодарили: 7 раз.
mrack писал(а):
2. если изменить тип окна на стандартное (create-window вместо dialog-window) то появляется белёсая рамка видимо гдето что то с размерами надо указать или свойства окна дополнить, не подскажите?

Стандартное окно белого цвета. Если изменить цвет окна на серый(обычно) или на цвет кнопок (рекомендуется) - рамки быть не должно.
Код:
   0 create-window TO winmain
   W: color_3dface syscolor winmain -bgcolor!  \ серый фон (if станд. цвета)

_________________
With best wishes, in4.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вт янв 08, 2008 20:38 
Не в сети
Аватара пользователя

Зарегистрирован: Пт май 05, 2006 06:19
Сообщения: 192
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
in4 спасибо, помогло
еще вопрос,
Код:
" цикл проверки (мин.) " label -xfixed | edit -left W: uds_setbuddyint this add-updown | filler -xspan |

даный участок сетки растягивается на все окно по ширине, и поле edit складывается до размера стрелок add-updown
как добиться от поля edit размерности в длину например 3 символа ?
пользоваться (/ -size x y /) не хотелось бы по тому что, это потенциальная проблема если приложение будет запущено с иными стандартными шрифтами ( хотя конечно как вариант указать шрифты и размер жестко самому) и символы могут просто не влезть по высоте, а растягивать во всю ширину не красиво.

_________________
SPF


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср янв 09, 2008 23:25 
Не в сети

Зарегистрирован: Сб май 06, 2006 12:01
Сообщения: 959
Откуда: Украина, Харьков
Благодарил (а): 2 раз.
Поблагодарили: 7 раз.
Тут у нас с автором (~yz) возникли разногласия.
Мое принципиальное мнение - если пишешь, что ширина n символов, то гарантировано должно помещаться n любых символов. Поэтому использую символ максимальной ширины - "W". Побочный эффект - при обычном вводе часть поля остается пустой. :(

Предлагаю использовать такое слово:
Код:
: edit-resize { n ctl -- }
\ размер поля ввода по максимальному числу символов
  n ctl limit-edit
  " W" ctl text-size SWAP n * 6 + SWAP 6 + ctl resize ;

_________________
With best wishes, in4.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср янв 09, 2008 23:56 
Не в сети
Аватара пользователя

Зарегистрирован: Пт май 05, 2006 06:19
Сообщения: 192
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
ну в этом споре все вроде понятно,
спорный момент: что должен ограничивать параметр n в limit-edit ( n ctl -- )
1 строго ширину поля и вводимую в него строку
2 только вводимую в него строку ибо ограничение на длину вводимого текста может превышать возможности размещение строки ввода необходимой длинны в GUI, а размер ограниичивать есть отдельные методы
Вот мне ближе второй вариант, вот тока инструментария в категории "ограничивать размер" нехватает в базовом варианте с возможностью привязки к размерам дефолтных шрифтов.

_________________
SPF


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт янв 10, 2008 01:59 
Не в сети

Зарегистрирован: Сб май 06, 2006 12:01
Сообщения: 959
Откуда: Украина, Харьков
Благодарил (а): 2 раз.
Поблагодарили: 7 раз.
IMHO, в видимое поле должно помещаться n символов.

_________________
With best wishes, in4.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Особенности работы WinLib by ~yz+~ygrek
СообщениеДобавлено: Вт июл 06, 2010 00:38 
Подскажите кто знает, как можно создать multiedit с вертикальной полосой прокрутки? Хотелось бы элемент похожий на memo в Delphi .


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Особенности работы WinLib by ~yz+~ygrek
СообщениеДобавлено: Ср июл 07, 2010 12:28 
Не в сети

Зарегистрирован: Сб май 06, 2006 12:01
Сообщения: 959
Откуда: Украина, Харьков
Благодарил (а): 2 раз.
Поблагодарили: 7 раз.
Гость писал(а):
Подскажите кто знает, как можно создать multiedit с вертикальной полосой прокрутки? Хотелось бы элемент похожий на memo в Delphi .

У меня работает такое:
Код:
DIS-OPT \ для SPF ниже 4.10 под NT
\ REQUIRE toolbar ~yz/lib/wincc.f
REQUIRE toolbar ~ygrek/~yz/lib/wincc.f
SET-OPT


0 VALUE e

: make-grids
  GRID -yfixed
    " Редактор:" label |
    ===
    multiedit  200 200 this ctlresize
    TRUE W: sb_vert this -hwnd@ ShowScrollBar DROP |
  GRID;  winmain -grid!
  ;

: 0WINDOWS
  0 create-window TO winmain
  W: color_3dface syscolor winmain -bgcolor!  \ серый фон (if станд. цвета)
  " HEd" winmain -text

  make-grids
  winmain wincenter
  winmain winshow
   ;

: run
  WINDOWS...  0WINDOWS
  ...WINDOWS
  BYE
;

run
BYE

_________________
With best wishes, in4.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Особенности работы WinLib by ~yz+~ygrek
СообщениеДобавлено: Ср июл 07, 2010 12:58 
Не в сети
Аватара пользователя

Зарегистрирован: Чт июл 20, 2006 11:31
Сообщения: 2168
Откуда: Екб
Благодарил (а): 0 раз.
Поблагодарили: 41 раз.
in4 писал(а):
" HEd" winmain -text

Надо
Код:
" HEd" winmain -text!

а то заголовка окна не будет

_________________
С уважением, chess


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Особенности работы WinLib by ~yz+~ygrek
СообщениеДобавлено: Чт июл 08, 2010 21:29 
Не в сети

Зарегистрирован: Сб май 06, 2006 12:01
Сообщения: 959
Откуда: Украина, Харьков
Благодарил (а): 2 раз.
Поблагодарили: 7 раз.
chess писал(а):
Надо
Код:
:" HEd" winmain -text!а то заголовка окна не будет
Да, точно. Ошибка исправлена в 11 файлах, огромное спасибо! ;)

_________________
With best wishes, in4.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Особенности работы WinLib by ~yz+~ygrek
СообщениеДобавлено: Пн июл 26, 2010 03:29 
in4 спасибо за код. Немного его переработал и дальше возникли некторые вопросы. Вот код, в него по ходу работы вставлял коментарии для себя и возникшие вопросы:
Код:
DIS-OPT \ для SPF ниже 4.10 под NT

REQUIRE toolbar ~yz/lib/wincc.f
\ 1) Если подключить  либу str5.f  перед wincc.f тогда при работе со строками программа вылетает !??почему так?
\ 2) При подключении либы str5.f все надписи на кнопках, лейблах, мемо пишутся абракадаброй :( как это исправить?
REQUIRE STR@ ~ac/lib/str5.f 

SET-OPT

0 VALUE multiedit_in
"" VALUE text_multiedit_in

"" VALUE text_in
"" VALUE text_out
"" VALUE text_in_out

\ процедура запуска скрипта
PROC: RunScript 
S" 2 2 * . "  text_in STR+    \ заносим в текст в строку
text_in multiedit_in set-text \ присваеваем элементу multiedit наш текст
\ 3) Надо как то выполнить введенный текст в multiedit. У меня здесь вылетает, не показав даже ошибку
\   пытался сделать так:
\   text_in STR@ EVALUATE
\ 4) Как вывести результат выполнения (интерпритации/компиляции) строки в multiedit ?
\ 5) Как сделать возможным добавления в multiedit текста большого объема( 1 Мбайт например ) ?
PROC;

MESSAGES: multiedit_in_msg \ назначаем обработку сообщений от элемента multiedit
  M: en_killfocus
    multiedit_in TO text_multiedit_in   
  M;
MESSAGES;

: make-grids
  GRID -yfixed
     " Введите текст (in): " label (/ -align right /) -left |
    ===
    multiedit   (/ -name multiedit_in -size 400 200 -notify multiedit_in_msg /)
    TRUE W: sb_vert this -hwnd@ ShowScrollBar DROP
    TRUE W: SB_HORZ this -hwnd@ ShowScrollBar DROP |
    \ W: ( ->bl; -- n) Выбрать следующее слово, найти его в списке констант и вернуть значение   
    \ sb_vert (скрул бар вертикальный ) из файла констант винды ( windows.const )
    \ this Переменная, в которой хранится последний созданный элемент управления.
    \ -hwnd Системный дескриптор окна. Часто требуется для прямого вызова
    \ функций Windows, не предусмотренных в библиотеке.
    \ -hwnd@ взять дескриптор
    \ ShowScrollBar из winlib.f ( WINAPI: ShowScrollBar   USER32.DLL )
    ===
     \ создаем кнопку с надписю " >>" которая будет выполнять определенную нами процедуру
    " Выполнить! >> " button (/ -command RunScript /) |
  GRID;  winmain -grid!
  ;

: 0WINDOWS
  0 create-window TO winmain
  W: color_3dface syscolor winmain -bgcolor!  \ серый фон (if станд. цвета)
  " Редактор" winmain -text!

  make-grids
  winmain wincenter
  winmain winshow
   ;

: run
  WINDOWS...  0WINDOWS
  ...WINDOWS
  BYE
;

run
BYE

Собственно вынесу интересующие вопросы:
1) Если подключить либу str5.f перед wincc.f тогда при работе со строками программа вылетает !?? почему так? Похоже на то как будто вообще не подключается если стоит первой.
2) При подключении либы str5.f все надписи на кнопках, лейблах, мемо пишутся абракадаброй :( как это исправить?
3) Надо как то выполнить введенный текст в multiedit. У меня здесь вылетает, не показав даже ошибку, пытался сделать так:
text_in STR@ EVALUATE
4) Как вывести результат выполнения (интерпритации/компиляции) строки в multiedit ?
5) Как сделать возможным добавления в multiedit текста большого объема (1 Мбайт например) ?


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Особенности работы WinLib by ~yz+~ygrek
СообщениеДобавлено: Пн июл 26, 2010 13:34 
Не в сети

Зарегистрирован: Сб май 06, 2006 12:01
Сообщения: 959
Откуда: Украина, Харьков
Благодарил (а): 2 раз.
Поблагодарили: 7 раз.
Гость писал(а):
1) Если подключить либу str5.f перед wincc.f тогда при работе со строками программа вылетает !?? почему так? Похоже на то как будто вообще не подключается если стоит первой.
Из-за разных представлений в библиотеках строк, определенных через ".
~ac писал(а):
Слово " [кавычка] возвращает строку не в виде addr u, а в виде
одного числа s, которое можно преобразовать в addr u с помощью
слова

STR@ [ s -- addr u ]
~yz писал(а):
Код:
: " ( -->") c: " PARSE ( a #)
  STATE @ IF
   POSTPONE ALITERAL
       HERE DUP >R ESC-CZMOVE R> ZLEN 1+ ALLOT
  ELSE
       PAD 512 + ESC-CZMOVE PAD 512 +
  THEN
; IMMEDIATE

: Z" [COMPILE] " ; IMMEDIATE


Гость писал(а):
2) При подключении либы str5.f все надписи на кнопках, лейблах, мемо пишутся абракадаброй :( как это исправить?
В WinLib для определения констант-строк можно использовать Z" вместо ". Строки будут нормальные, проверил.

_________________
With best wishes, in4.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Особенности работы WinLib by ~yz+~ygrek
СообщениеДобавлено: Пн июл 26, 2010 16:09 
Не в сети

Зарегистрирован: Сб май 06, 2006 12:01
Сообщения: 959
Откуда: Украина, Харьков
Благодарил (а): 2 раз.
Поблагодарили: 7 раз.
Гость писал(а):
3) Надо как то выполнить введенный текст в multiedit. У меня здесь вылетает, не показав даже ошибку, пытался сделать так: text_in STR@ EVALUATE
Решение 1..3
Код:
DIS-OPT \ для SPF ниже 4.10 под NT

REQUIRE toolbar ~yz/lib/wincc.f
\ 1) Если подключить  либу str5.f  перед wincc.f тогда при работе со строками программа вылетает !??почему так?
\ 2) При подключении либы str5.f все надписи на кнопках, лейблах, мемо пишутся абракадаброй :( как это исправить?
REQUIRE STR@ ~ac/lib/str5.f 

SET-OPT

0 VALUE multiedit_in
"" VALUE text_multiedit_in

"" VALUE text_in
"" VALUE text_out
"" VALUE text_in_out

\ процедура запуска скрипта
PROC: RunScript 
S" 2 2 * . CR "  text_in STR+    \ заносим в текст в строку
text_in STRA  multiedit_in set-text \ присваеваем элементу multiedit наш текст
\ 3) Надо как то выполнить введенный текст в multiedit. У меня здесь вылетает, не показав даже ошибку
\   пытался сделать так:
text_in STR@ EVALUATE
\ 4) Как вывести результат выполнения (интерпритации/компиляции) строки в multiedit ?
\ 5) Как сделать возможным добавления в multiedit текста большого объема( 1 Мбайт например ) ?
PROC;

MESSAGES: multiedit_in_msg \ назначаем обработку сообщений от элемента multiedit
  M: en_killfocus
    multiedit_in TO text_multiedit_in   
  M;
MESSAGES;

: make-grids
  GRID -yfixed
     Z" Введите текст (in): " label (/ -align right /) -left |
    ===
    multiedit   (/ -name multiedit_in -size 400 200 -notify multiedit_in_msg /)
    TRUE W: sb_vert this -hwnd@ ShowScrollBar DROP
    TRUE W: SB_HORZ this -hwnd@ ShowScrollBar DROP |
    \ W: ( ->bl; -- n) Выбрать следующее слово, найти его в списке констант и вернуть значение   
    \ sb_vert (скрул бар вертикальный ) из файла констант винды ( windows.const )
    \ this Переменная, в которой хранится последний созданный элемент управления.
    \ -hwnd Системный дескриптор окна. Часто требуется для прямого вызова
    \ функций Windows, не предусмотренных в библиотеке.
    \ -hwnd@ взять дескриптор
    \ ShowScrollBar из winlib.f ( WINAPI: ShowScrollBar   USER32.DLL )
    ===
     \ создаем кнопку с надписю " >>" которая будет выполнять определенную нами процедуру
    Z" Выполнить! >> " button (/ -command RunScript /) |
  GRID;  winmain -grid!
  ;

: 0WINDOWS
  0 create-window TO winmain
  W: color_3dface syscolor winmain -bgcolor!  \ серый фон (if станд. цвета)
  Z" Редактор" winmain -text!

  make-grids
  winmain wincenter
  winmain winshow
   ;

: run
  WINDOWS...  0WINDOWS
  ...WINDOWS
  BYE
;

run
BYE
Но при повторном нажатии на кнопку "Выполнить!" SPF вылетает :(. Пока не разобрался... Может, кто поможет? ;)

_________________
With best wishes, in4.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Особенности работы WinLib by ~yz+~ygrek
СообщениеДобавлено: Пн июл 26, 2010 16:23 
Не в сети

Зарегистрирован: Сб май 06, 2006 12:01
Сообщения: 959
Откуда: Украина, Харьков
Благодарил (а): 2 раз.
Поблагодарили: 7 раз.
Гость писал(а):
5) Как сделать возможным добавления в multiedit текста большого объема (1 Мбайт например) ?
Послать edit-у сообщение wParam=EM_LIMITTEXT , в Edit controls on Windows NT/2000/XP можно удлинить до 0x7FFFFFFE символов (байтовых или 2байтовых). Это для однострочных edit-ов. Для многострочных - -1.

_________________
With best wishes, in4.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Особенности работы WinLib by ~yz+~ygrek
СообщениеДобавлено: Вс авг 01, 2010 18:41 
Ктонибудь знает в какой библиотеке определяется слово -text@ ? Делал поиск по всем либам, нашел только использование его в winctl.f в описании другого слова:
Код:
: size-of-text { ctl \ [ 255 ] str -- tx ty }
  str ctl -text@  str ctl text-size ;
И что то винда ХП не хочет искать по слову в файлах если разширение у них .f


Вернуться к началу
  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 55 ]  На страницу Пред.  1, 2, 3, 4  След.

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7


Вы не можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
phpBB сборка от FladeX // Русская поддержка phpBB