Board.KolibriOS.org http://board.kolibrios.org/ |
|
InputBox http://board.kolibrios.org/viewtopic.php?f=24&t=3767 |
Page 1 of 1 |
Author: | 0CodErr [ Fri Sep 28, 2018 6:03 pm ] |
Post subject: | InputBox |
Начал делать компонент InputBox. Прототип функции такой(UASM\Pascal\C): Code: InputBox Proto Buffer:Ptr, Caption:Ptr, Prompt:Ptr, Default:Ptr, Flags:Dword, BufferSize:Dword, RedrawProc:Ptr Code: Function InputBox(Buffer: Pointer; Caption, Prompt, Default: PChar; Flags, BufferSize: Dword; RedrawProc: Proc) : LongBool; Code: unsigned long __stdcall InputBox(void* Buffer, char* Caption, char* Prompt, char* Default,
Caption — заголовок окна InputBox-а Prompt — сообщение отображаемое в окне и предлагающее пользователю ввести данные Default — значение по умолчанию, отображается в текстовом поле Flags — опции, флаги BufferSize — размер буфера под возвращаемое значение RedrawProc — процедура перерисовки окна, вызывается при активации родительского окна Функция возвращает код ошибки или 0(IBE_NO_ERROR) в случае успеха. Flags = [MOUSE|SCREEN|PARENT][NUMBER|STRING]:
IBF_NUMBER = 1 — в буфер будет записано число IBF_MOUSE_REL = 0 — относительно положения указателя мыши IBF_SCREEN_REL = 8 — относительно экрана IBF_PARENT_REL = 16 — относительно родительского окна
IBE_NUMBER_OVERFLOW = 1 — переполнение при вводе числа Предполагается работать примерно так: Code: Var Для использования нужно загрузить библиотеку InputBox.obj и использовать функцию InputBox из неё. Размер шрифта зависит от системной настройки. Вот так выглядят примеры Attachment: InputBox1.png [ 15.71 KiB | Viewed 8852 times ] Attachment: InputBox2.png [ 13.83 KiB | Viewed 8852 times ] Исходники примеров в TEST_SRC.7z:
другой на C — с помощью BCC32 Attachment:
|
Author: | akron1 [ Fri Sep 28, 2018 8:49 pm ] |
Post subject: | Re: InputBox |
Выглядит симпатично и в использовании удобно. Хорошо бы иметь такую библиотеку для разных диалоговых окон: MsgBox, FindReplace... Знаю, что есть такая библиотека, но она устарела -- мелкий шрифт. |
Author: | Siemargl [ Fri Sep 28, 2018 10:34 pm ] |
Post subject: | Re: InputBox |
Закрытые библиотеки это саботаж 100% |
Author: | Leency [ Fri Sep 28, 2018 10:54 pm ] |
Post subject: | Re: InputBox |
Похоже исходник лежит в kolibri.img\$$$_TEST_$$$\InputBox_SRC.7z\lib\InputBox.asm |
Author: | 0CodErr [ Mon Oct 01, 2018 2:57 pm ] |
Post subject: | Re: InputBox |
Siemargl wrote: Закрытые библиотеки это саботаж 100% А к чему ты это написал здесь? Сможешь объяснить? Или так, от нефиг делать? Leency wrote: Похоже исходник лежит в kolibri.img\$$$_TEST_$$$\InputBox_SRC.7z\lib\InputBox.asm Да, именно это я и написал в первом сообщенииAttachment: 1.PNG [ 9.19 KiB | Viewed 8763 times ] Я изначально делал по аналогии с OpenDialog и ColorDialog: приложение + библиотека. Но что-то существенных профитов от этого не обнаружил. Интересно, какие цели преследовал Марат при разработке OpenDialog и ColorDialog? Разве что раздельное адресное пространство — может в этом была задумка? Плюсы варианта "всё вместе в библиотеке":
не нужно запускать новый процесс упрощается код один файл вместо двух Для вызывающего приложения существенной разницы нет — интерфейс остаётся такой же. Теперь поддерживается ввод 64-битных чисел. Добавился ещё один код ошибки IBE_RESULT_TOO_LONG. Все константы: Code: ; Flags = [mouse|screen|parent][number|string] Я переделал вариант "приложение + библиотека", теперь стало "всё вместе в библиотеке". Исходники примеров остались без изменений. Если возражений нет, я закоммичу такой вариант. Если нужны ещё какие-нибудь примеры — могу сделать ещё. Attachment:
|
Author: | Leency [ Mon Oct 01, 2018 3:15 pm ] |
Post subject: | Re: InputBox |
В случае с OpenDialog, Марат возможно изначально писал KFM2, потом превратив его в OpenDialog. Что точно знаю, что он хотел на основе OpenDialog потом сделать KFM2. Возможно отсюда и такая связка. |
Author: | 0CodErr [ Mon Oct 01, 2018 3:44 pm ] |
Post subject: | Re: InputBox |
Leency wrote: он хотел на основе OpenDialog потом сделать KFM2 Ну это он говорил. А ColorDialog просто по аналогии?
|
Author: | Siemargl [ Mon Oct 01, 2018 5:01 pm ] |
Post subject: | Re: InputBox |
0CodErr wrote: Siemargl wrote: Закрытые библиотеки это саботаж 100% А к чему ты это написал здесь? Сможешь объяснить? Или так, от нефиг делать? .... Наверное потому что посчитал это частью дельфийской твоей либы, от которой не нашел исходников, когда хотел натравить на нее фрипаскаль. А первый пост просто проглядел видимо |
Author: | 0CodErr [ Mon Oct 01, 2018 5:52 pm ] |
Post subject: | Re: InputBox |
Siemargl wrote: посчитал это частью дельфийской твоей либы Первый вариант InputBox как раз был с ней собран, но теперь всё в одной библиотеке.А так как линкера coff->coff нет, то пришлось скопипастить из неё некоторый код. Если и как только перейдём на PE, то снова можно будет собирать, просто прилинковав эту библиотеку. Siemargl wrote: не нашел исходников Плохо искал, значит. Папка "Src" там есть. А ещё вон там viewtopic.php?f=33&t=735&p=68255#p68255 есть ссылки на pastebin.
|
Author: | Siemargl [ Mon Oct 01, 2018 8:03 pm ] |
Post subject: | Re: InputBox |
0CodErr wrote: Siemargl wrote: посчитал это частью дельфийской твоей либы Первый вариант InputBox как раз был с ней собран, но теперь всё в одной библиотеке.А так как линкера coff->coff нет, то пришлось скопипастить из неё некоторый код. Если и как только перейдём на PE, то снова можно будет собирать, просто прилинковав эту библиотеку. Siemargl wrote: не нашел исходников Плохо искал, значит. Папка "Src" там есть....."Там" это где? Про СВН в профильной теме |
Author: | 0CodErr [ Sat Oct 13, 2018 11:00 am ] |
Post subject: | Re: InputBox |
Загрузил исходники InputBox на svn( http://websvn.kolibrios.org/listing.php ... 8aa795be26 ) и добавил в автосборку. Также были добавлены примеры использования InputBox(в папке "Examples"). |
Page 1 of 1 | All times are UTC+03:00 |
Powered by phpBB® Forum Software © phpBB Limited https://www.phpbb.com/ |