FreeBasic
Главная
Вход
Регистрация
Вторник, 15.10.2024, 16:20Приветствую Вас Гость | RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 2 из 5
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • »
Пожелания или дополнения к библиотеке
javitelДата: Понедельник, 14.10.2013, 14:44 | Сообщение # 16
Рядовой
Группа: Пользователи
Сообщений: 4
Репутация: 0
Статус: Offline
Here is a demo of wifi info in PowerBASIC

http://somesite.zzl.org/PowerBASIC/WiFi.html


Сообщение отредактировал javitel - Понедельник, 14.10.2013, 14:44
 
haavДата: Вторник, 15.10.2013, 09:03 | Сообщение # 17
Генералиссимус
Группа: Администраторы
Сообщений: 1366
Репутация: 49
Статус: Offline
Цитата javitel ()
Here is a demo of wifi info in PowerBASIC

http://somesite.zzl.org/PowerBASIC/WiFi.html


Thank you, I be see.


Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
 
electrikДата: Среда, 26.02.2014, 11:31 | Сообщение # 18
Полковник
Группа: Друзья
Сообщений: 182
Репутация: 3
Статус: Offline
пожелание. сделать навигацию по элементам tab, shift+tab - пурик это делать умеет.
причем, надо делать свой обработчик на уровне главного окна. почему? можно конечно заюзать isDialogMessage, в цикле сообщений, но тут можно поиметьмного проблем, например, не переходит фокус на другое окно с окна  edit с флагом MULTYLINE.
далее, можно в главном окне при создании поставить флаг WS_EX_CONTROLPARENT - микрософт говорит, что должно перемещаться по элементам, но без IsDialogMessage, оно не работает, и если даже убрать этот флаг и оставить IsDialogMessage, навигация всеравно происходит.
можно просто в главном окне отслеживать нажатие этих клавишь, выяснять какой ща элемент в фокусе, а потом каким-нибудь NextWindow, можно перемещать фокус на следующий элемент или на предыдущий.
естественно, при старте программы, фокус должен вставать на первый элемент, если это вдруг статик, значит ищем первый элемент, который может получать вод от пользователя, кнопка, список, окно редактирование и т.д.
понятно, что юзер в какой-нибудь своейй программе захочет, чтоб таб и шифт+таб, обрабатывались в главном окне, пусть, юзеровские горячки будут в приоритете, но без назначенных, они будут выполнять предназначенную им функцию навигации по элементам.
когда я, наконец доберусь до сурсов, может и  такое сделаю, а так, если не влом, подумай, ведь именно по этой причине я не юзаю window9, так как лазить по элементам навигатором встроенным в мою читалку экрана, обломно, эт приходится по дереву окон лазить.
 
haavДата: Среда, 26.02.2014, 12:59 | Сообщение # 19
Генералиссимус
Группа: Администраторы
Сообщений: 1366
Репутация: 49
Статус: Offline
Да я так и сделал с помощью isDialogMessage несколько версий назад. Даже не знал , что такой косяк возникает с многострочным EDIT. Сейчас проверил, в EDIT кнопка TAB (табуляция текста) не действует. Там много хрени написал, чтобы это создавало имитацию перехода по контролам и не конфликтовало. Из-за этого был геморрой с номерами меню. Я пошел на то, что
меню может обойтись без номера 1 ,  от 2 до 65535 . Что же раз такие косяки,  придется выбрать время и убирать к черту эту конструкцию. Если честно с самого начала мне эта идея с isDialogMessage не нравилась. Не знаю, сделаю ли я другой костыль для переключения по TAB, но этот точно уберу

Что касается исходника, то конечно ты можешь посмотреть, но боюсь ты там мало что поймешь , в особенности того, что касается внутренней обработки событий и внутренних связей функций. Я начинал писать библиотеку, когда еще слабо понимал в WinAPI , имел плохую стилизацию кода, да и не комментировал там ничего. Зря конечно ничего не комментировал, но мне в принципе то понятны мои каракули. Но если разберешься и что-то улучшишь или добавишь, то я всегда рад.

P.S. Если тебе очень важны переключатели по TAB , я советую тебе посмотреть в сторону библиотеки FLTK: Ссылка на скачивание Она кстати и для Linux. Размер dll всего чуть больше 1 мб.  Но в ней есть все необходимые контролы и диалоги. Туда даже редактор с подсветкой синтаксиса внедрили. Есть и табличка. В общем я как нибудь найду время и попробую в ней разобраться.  Еще 2-3 года назад у Freebasic не было нормальной GUI библиотеки, а сейчас и FLTK и IUP адаптировали. Обе либы просто прелесть.

Добавлено позже

В общем выкинул я код переключения по TAB из библиотеки , пока это исправление только на моем компьютере. Вообще реализовать переключение по TAB можно легко и в своем коде. Вот простой пример переключения для 4 кнопок.


Код
#Include "window9.bi"

Dim As Integer event
Var hwnd=OpenWindow("",10,10,400,400):CenterWindow(hwnd)
AddKeyboardShortcut(hwnd,FVIRTKEY,VK_TAB,1001)
AddKeyboardShortcut(hwnd,FSHIFT,VK_TAB,1002)  
ButtonGadget(1,10,10,100,20,"1 кнопка")
ButtonGadget(2,10,40,100,20,"2 кнопка")
ButtonGadget(3,10,70,100,20,"3 кнопка")
ButtonGadget(4,10,100,100,20,"4 кнопка")
Dim As Integer TabStop(1 To 4) = {1,2,3,4}, iNumberSelect = 1
SetFocus(GadgetID(TabStop(iNumberSelect)))
Do
  event=WaitEvent
  If event=EventMenu Then
   Select case EventNumber
       Case 1001
     iNumberSelect = iNumberSelect + 1
     If iNumberSelect>UBound(TabStop) Then iNumberSelect = 1
     SetFocus(GadgetID(TabStop(iNumberSelect)))
       Case 1002
     iNumberSelect = iNumberSelect - 1
     If iNumberSelect<LBound(TabStop) Then iNumberSelect = UBound(TabStop)
     SetFocus(GadgetID(TabStop(iNumberSelect)))    
   End Select
  EndIf
  If event=EventClose Then End
Loop


Как видишь в нем нет ничего сложного. Так что даже не буду заморачиваться ни с какими костылями, кому надо легко напишут реализацию переключения по TAB хотя бы на основе моего примера, а может и лучше способ придумают.


Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
 
electrikДата: Среда, 26.02.2014, 23:08 | Сообщение # 20
Полковник
Группа: Друзья
Сообщений: 182
Репутация: 3
Статус: Offline
странно, что работает. у меня window9, вообще не переключалась. ни ужели старая версия. я же вродь качал. ну это ладно. да костыли костылями, мне то не западло, но всё-же, будет время, попробую помудрить, так сказать пусть будет, за библиотечку спасибо, я ищу именно кроссплатформенные. хотя, чесно говоря, я на винде сижу, но хочется, чтоб народ что-то моё юзал на других платформах. мечта идиота, чтоб FreeBasic на андройд работал, ну это уже другая тема.
 
WQДата: Понедельник, 05.05.2014, 12:20 | Сообщение # 21
Полковник
Группа: Проверенные
Сообщений: 215
Репутация: 7
Статус: Offline
В функциях для проигрывания видео (Movie) хотелось бы функцию получения продолжительности видео в секундах
 
haavДата: Понедельник, 05.05.2014, 17:22 | Сообщение # 22
Генералиссимус
Группа: Администраторы
Сообщений: 1366
Репутация: 49
Статус: Offline
Сейчас пока у меня нет времени заниматься библиотекой, но приму к сведению

Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
 
AlecДата: Пятница, 18.07.2014, 19:24 | Сообщение # 23
Лейтенант
Группа: Друзья
Сообщений: 73
Репутация: 1
Статус: Offline
Моё пожелание: больше функции для работы с сетью. Да, есть функции для FTP и другие, но так как моё программирование по большей части связано с играми, я бы хотел функции для работы с LAN и т.п. для игр в режиме мультиплеера. Я конечно просмотрел многое на офиц. сайте по работе сетью,но удобные функции облегчили бы задачу, как и др. функции Window9.

WorldSim3D - 3D движок для FreeBasic, для PC. Мощная 3D графика и простота программирования. Ознакомиться.
 
haavДата: Суббота, 19.07.2014, 06:30 | Сообщение # 24
Генералиссимус
Группа: Администраторы
Сообщений: 1366
Репутация: 49
Статус: Offline
Цитата Alec ()
Моё пожелание: больше функции для работы с сетью. Да, есть функции для FTP и другие, но так как моё программирование по большей части связано с играми, я бы хотел функции для работы с LAN и т.п. для игр в режиме мультиплеера. Я конечно просмотрел многое на офиц. сайте по работе сетью,но удобные функции облегчили бы задачу, как и др. функции Window9.


Не могу обещать, что что-то буду делать в этом направлении, но в любом случае вопросы по window9 буду решать , когда полностью закончу работу с переводом справки FB.


Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
 
electrikДата: Понедельник, 15.09.2014, 19:47 | Сообщение # 25
Полковник
Группа: Друзья
Сообщений: 182
Репутация: 3
Статус: Offline
думаю, стоит пересобрать на новой версии, простой объект с оператором new весит 18 килобайт. что-то там они сделали с ним, и это радует. теперь, приятно пользоваться new.
 
haavДата: Вторник, 16.09.2014, 06:44 | Сообщение # 26
Генералиссимус
Группа: Администраторы
Сообщений: 1366
Репутация: 49
Статус: Offline
Цитата electrik ()
думаю, стоит пересобрать на новой версии, простой объект с оператором new весит 18 килобайт. что-то там они сделали с ним, и это радует. теперь, приятно пользоваться new.

Пересобирать все равно придется, потому что библиотека, собранная на ранних версиях не работает на новой версии. Что касается оператора NEW , то я тоже рад, что наконец разработчики подумали о размере конечного файла с использованием этого оператора.


Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
 
electrikДата: Четверг, 18.09.2014, 12:40 | Сообщение # 27
Полковник
Группа: Друзья
Сообщений: 182
Репутация: 3
Статус: Offline
они в операторе new используют malloc, во всяком случае так asm выдаёт. видимо, память выделяется malloc, ну а запуск конструкторов и всякой ерунды, уже компилятором обрабатывается. видимо раньше, возможно, они юзали какой-то костыль из mingw.
 
WQДата: Вторник, 10.04.2018, 20:45 | Сообщение # 28
Полковник
Группа: Проверенные
Сообщений: 215
Репутация: 7
Статус: Offline
В функции ColorRequester неплохо было бы добавить изменяемый параметр для контроля результата, т.е., было ли в Окне выбора цвета нажатие ОК или Отмена\кнопка закрытия
Как-то так:

Код
Function ColorRequester(ByVal rgbCurrentUSER As Integer=0,ByVal flagg As Integer=2,ByVal hwnd As HWND=0, ByRef result As Integer=0) As COLORREF
   Static acrCustClr(16) As COLORREF
   Static rgbCurrent As Integer
   If rgbCurrentUSER<>0 Then
      rgbCurrent=rgbCurrentUSER
   EndIf
   ZeroMemory(Cast(PVOID,@cc), Cast(DWORD,SizeOf(cc)))
   cc.lStructSize = SizeOf(cc)
   cc.hwndOwner = hwnd
   cc.lpCustColors = @acrCustClr(0)
   cc.rgbResult = rgbCurrent
   cc.Flags = 1 Or flagg
   If ChooseColor(Cast(LPCHOOSECOLOR,@cc))=1 Then
      rgbCurrent=cc.rgbResult
      result=1
      Return cc.rgbResult
   Else
      result=0
      Return rgbCurrentUSER
   EndIf
End Function
 
salexeiyДата: Пятница, 27.09.2019, 13:49 | Сообщение # 29
Лейтенант
Группа: Пользователи
Сообщений: 72
Репутация: 2
Статус: Offline
Сделать присвоение виджетов к окну или другому виджету не по номерам, а по их названиям и указании родителя, к примеру, как это сделано в библиотеке tkinter.
Пример:
Код
root1=Tk()
root2=Tk()
button = Button(root, bg="red", text="Кнопка на окне 1", command=button_clicked)
button2=Button(root2, bg="red", text="Кнопка на окне 2", command=button_clicked)

root1 и root2 - окна, дальше пишется переменная, отвечающая за какой либо гаджет, в данном случае кнопка. Дальше указывается, что это кнопка будет располагаться на первом окне (параметр root) с красным цветом фона, текстом и связанной с ней командой.

На мой взгляд так намного понятнее и удобнее, чем думать и гадать, за что отвечает та или иная цифра гаджета. К тому же, можно легко назначать гаджеты другим окнам или гаджетам, независимо от их расположения в тексте программы, в отличие от window9, где важна последовательность. Ну, и очень удобно указывать все параметры гаджета в одну строчку, а не делать отдельными, к примеру на закрытие окна, его скрытия/видимости и т.д.
 
haavДата: Пятница, 27.09.2019, 18:01 | Сообщение # 30
Генералиссимус
Группа: Администраторы
Сообщений: 1366
Репутация: 49
Статус: Offline
Цитата salexeiy ()
К тому же, можно легко назначать гаджеты другим окнам или гаджетам, независимо от их расположения в тексте программы, в отличие от window9, где важна последовательность


В window9 тоже можно, для этого есть функция UseGadgetList .

В библиотеке гаджеты размещать на гаджетах стандартными средствами нельзя. Это ограничение не касается гаджетов , для которых это разрешено изначально: ContainerGadget ,  MDIGadget , PanelGadget , RebarGadget . В любом случае, с прямыми руками можно сделать почти все что захочешь.


Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
 
  • Страница 2 из 5
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • »
Поиск: