FreeBasic похожий на PureBasic
Участников: 5
Страница 2 из 6
Страница 2 из 6 • 1, 2, 3, 4, 5, 6
Re: FreeBasic похожий на PureBasic
ага, или например сделать размер иконки равной 1
Типа: Var LLIISS=ListViewGadget(1,10,10,300,300,Style,,,1)
И еще: выравнивание по левому краю не работает? Левый столбец по левому, остальные по центру...
Типа: Var LLIISS=ListViewGadget(1,10,10,300,300,Style,,,1)
И еще: выравнивание по левому краю не работает? Левый столбец по левому, остальные по центру...
Re: FreeBasic похожий на PureBasic
DEPOzit пишет:ага, или например сделать размер иконки равной 1
Типа: Var LLIISS=ListViewGadget(1,10,10,300,300,Style,,,1)
И еще: выравнивание по левому краю не работает? Левый столбец по левому, остальные по центру...
Все работает, смотри внимательно стили по умолчанию для столбцов и строк. В столбцах установлено LVCFMT_CENTER поставь LVCFMT_LEFT. Вообще настроек у этого контрола конечно много...
trew- Сообщения : 331
Дата регистрации : 2010-10-14
Re: FreeBasic похожий на PureBasic
Станислав, как создать дочернее окно? Со стилем WS_CHILD ничего не создается.
Re: FreeBasic похожий на PureBasic
DEPOzit пишет:Станислав, как создать дочернее окно? Со стилем WS_CHILD ничего не создается.
Я не делал при создании возможность создавать дочерние окна функцией OpenWindow. Но если уж очень нужно, то можно так:
- Код:
#Include "window9.bi"
Var hwnd=OpenWindow("Main",10,10,500,500)
Var event=0
Var hwnd1=OpenWindow("Child",10,10,200,200)
SetParent(hwnd1,hwnd)
ButtonGadget(1,10,10,100,30,"Button")
Do
event=WaitEvent()
If Event=EventClose Then End
Loop
P.S Может нужно было MDI ? Если так в справке есть примеры создания.
trew- Сообщения : 331
Дата регистрации : 2010-10-14
Re: FreeBasic похожий на PureBasic
Не-не, MDI не надо. Спасибо.
Только происходит некое наслоение:
Только происходит некое наслоение:
- Код:
#Include "window9.bi"
Var hwnd=OpenWindow("Main",10,10,500,500)
ButtonGadget(1,10,10,100,30,"Button1")
Var event=0
Var hwnd1=OpenWindow("Child",10,10,200,200)
SetParent(hwnd1,hwnd)
ButtonGadget(2,10,10,120,30,"Button2")
Do
event=WaitEvent()
If Event=EventClose Then End
Loop
Re: FreeBasic похожий на PureBasic
DEPOzit пишет:Не-не, MDI не надо. Спасибо.
Только происходит некое наслоение:Родительское окно всячески пытается налезть на дочернее.
- Код:
#Include "window9.bi"
Var hwnd=OpenWindow("Main",10,10,500,500)
ButtonGadget(1,10,10,100,30,"Button1")
Var event=0
Var hwnd1=OpenWindow("Child",10,10,200,200)
SetParent(hwnd1,hwnd)
ButtonGadget(2,10,10,120,30,"Button2")
Do
event=WaitEvent()
If Event=EventClose Then End
Loop
Попробуй так:
- Код:
#Include "window9.bi"
Var hwnd=OpenWindow("Main",10,10,500,500)
ButtonGadget(1,10,10,100,30,"Button1",WS_CLIPSIBLINGS)
Var event=0
Var hwnd1=OpenWindow("Child",10,10,200,200,WS_VISIBLE Or WS_OVERLAPPEDWINDOW Or WS_CLIPSIBLINGS)
SetParent(hwnd1,hwnd)
ButtonGadget(2,10,10,120,30,"Button2")
Do
event=WaitEvent()
If Event=EventClose Then End
Loop
trew- Сообщения : 331
Дата регистрации : 2010-10-14
Re: FreeBasic похожий на PureBasic
Станислав, а почему после активации и закрытии дочернего окна в родительском окне перестают создаваться гаджеты (в данном примере кнопка "Button3"):
- Код:
#Include "window9.bi"
Var hwnd=OpenWindow("Main",10,10,500,500)
ButtonGadget(1,10,10,100,30,"Button1",WS_CLIPSIBLINGS)
Var event=0
Var hwnd1=OpenWindow("Child",10,10,200,200,WS_VISIBLE Or WS_OVERLAPPEDWINDOW Or WS_CLIPSIBLINGS)
SetParent(hwnd1,hwnd)
ButtonGadget(2,10,10,120,30,"Button2")
Do
event=WaitEvent()
Select Case event
Case EventClose
If EventHwnd=hwnd1 Then Close_Window(hwnd1): ButtonGadget(3,10,50,120,30,"Button3")
If EventHwnd=hwnd Then End
End Select
Loop
Re: FreeBasic похожий на PureBasic
DEPOzit пишет:Станислав, а почему после активации и закрытии дочернего окна в родительском окне перестают создаваться гаджеты (в данном примере кнопка "Button3"):Может быть как-то надо передать управление главному окну?
- Код:
#Include "window9.bi"
Var hwnd=OpenWindow("Main",10,10,500,500)
ButtonGadget(1,10,10,100,30,"Button1",WS_CLIPSIBLINGS)
Var event=0
Var hwnd1=OpenWindow("Child",10,10,200,200,WS_VISIBLE Or WS_OVERLAPPEDWINDOW Or WS_CLIPSIBLINGS)
SetParent(hwnd1,hwnd)
ButtonGadget(2,10,10,120,30,"Button2")
Do
event=WaitEvent()
Select Case event
Case EventClose
If EventHwnd=hwnd1 Then Close_Window(hwnd1): ButtonGadget(3,10,50,120,30,"Button3")
If EventHwnd=hwnd Then End
End Select
Loop
Есть в библиотеке функция UseGadgetList(hwnd) . В любом месте кода можно менять окно родитель для вновь создаваемых гаджетов.
Пример:
- Код:
#Include "window9.bi"
Var hwnd=OpenWindow("Main",10,10,500,500)
ButtonGadget(1,10,10,100,30,"Button1",WS_CLIPSIBLINGS)
Var event=0
Var hwnd1=OpenWindow("Child",10,10,200,200,WS_VISIBLE Or WS_OVERLAPPEDWINDOW Or WS_CLIPSIBLINGS)
SetParent(hwnd1,hwnd)
ButtonGadget(2,10,10,120,30,"Button2")
Do
event=WaitEvent()
Select Case event
Case EventClose
If EventHwnd=hwnd1 Then Close_Window(hwnd1)
UseGadgetList(hwnd): ButtonGadget(3,10,50,120,30,"Button3")
If EventHwnd=hwnd Then End
End Select
Loop
trew- Сообщения : 331
Дата регистрации : 2010-10-14
Re: FreeBasic похожий на PureBasic
Ага, все отлично.
Еще вопросик - setgadgettext(1,"") вызывает ошибку. Как очистить поле гаджета?
Еще вопросик - setgadgettext(1,"") вызывает ошибку. Как очистить поле гаджета?
Re: FreeBasic похожий на PureBasic
DEPOzit пишет:Ага, все отлично.
Еще вопросик - setgadgettext(1,"") вызывает ошибку. Как очистить поле гаджета?
Не может быть, чтобы при таком вызове была ошибка, потому как именно так и очищается поле гаджета. Ошибка в чем то другом. Если не секрет, выложи код
trew- Сообщения : 331
Дата регистрации : 2010-10-14
Re: FreeBasic похожий на PureBasic
Не секрет конечно: http://freebasic.ru/rash.rar
Нажми на любой вид расхода, потом напиши что-нибудь в "Добавить элемент в список" и нажми кнопку "Добавить".
После ошибки закоментируй 85-ю строку или включи в кавычки символ. Ошибка пропадет.
Нажми на любой вид расхода, потом напиши что-нибудь в "Добавить элемент в список" и нажми кнопку "Добавить".
После ошибки закоментируй 85-ю строку или включи в кавычки символ. Ошибка пропадет.
Re: FreeBasic похожий на PureBasic
DEPOzit пишет:Не секрет конечно: http://freebasic.ru/rash.rar
Нажми на любой вид расхода, потом напиши что-нибудь в "Добавить элемент в список" и нажми кнопку "Добавить".
После ошибки закоментируй 85-ю строку или включи в кавычки символ. Ошибка пропадет.
Ошибка вылетает не на этой строчке, а на 99
AddComboBoxItem(11,GetGadgetText(15, 7),-1)
Ты пытаешься создать новый пункт в ComboBoxGadget с пустой строкой. Так нельзя! Сделай проверку на добавляемую строку. Если равна "" определи ее как " "
trew- Сообщения : 331
Дата регистрации : 2010-10-14
Re: FreeBasic похожий на PureBasic
DEPOzit пишет:Реализация вывода на печать принтера планируется?
Дело в том, что у меня нет принтера, а делать функции вслепую я не хочу.
trew- Сообщения : 331
Дата регистрации : 2010-10-14
Re: FreeBasic похожий на PureBasic
есть же виртуальные принтеры - в том же MS Office, doPDF, PrintToPicture и т.д.
Re: FreeBasic похожий на PureBasic
DEPOzit пишет:есть же виртуальные принтеры - в том же MS Office, doPDF, PrintToPicture и т.д.
Я подумаю над этим
trew- Сообщения : 331
Дата регистрации : 2010-10-14
Re: FreeBasic похожий на PureBasic
Как создать окно изначально развернутым? Стиль WS_MAXIMIZE не срабатывает.
Re: FreeBasic похожий на PureBasic
DEPOzit пишет:Как создать окно изначально развернутым? Стиль WS_MAXIMIZE не срабатывает.
ShowWindow(hwnd,SW_MAXIMIZE)
trew- Сообщения : 331
Дата регистрации : 2010-10-14
Re: FreeBasic похожий на PureBasic
Вообще конечно вопрос интересный ты задал... Если без использования функции ShowWindow, то при создании окна можно вот так:
Дибильно конечно, но это вопрос к Microsoft. Хрен когда додумаешься. Если бы не яндекс....
- Код:
#Include "window9.bi"
Var hwnd=OpenWindow("",CW_USEDEFAULT,SW_MAXIMIZE,CW_USEDEFAULT,CW_USEDEFAULT,WS_OVERLAPPEDWINDOW or WS_VISIBLE Or WS_MAXIMIZE Or SW_SHOWMAXIMIZED)
Do
Var event=WaitEvent()
If Event=EventClose Then End
Loop
Дибильно конечно, но это вопрос к Microsoft. Хрен когда додумаешься. Если бы не яндекс....
trew- Сообщения : 331
Дата регистрации : 2010-10-14
Re: FreeBasic похожий на PureBasic
Мда))). Вот и я разные вариации перебирал, но до такой не додумался))).
Re: FreeBasic похожий на PureBasic
Еще вопросик созрел)))) :
Как реализовать событие нажав клавишу Enter при этом находясь в другом гаджете (например StringGadget). Если гаджеты не активны то все работает, если активны то события не проиходит.
Ну вот например:
Пробовал и с AddKeyboardShortcut и с EventKEY. В чем загвоздка?
Как реализовать событие нажав клавишу Enter при этом находясь в другом гаджете (например StringGadget). Если гаджеты не активны то все работает, если активны то события не проиходит.
Ну вот например:
- Код:
#Include "window9.bi"
Dim As Integer event
Var hwnd=OpenWindow("",10,10,400,400)
AddKeyboardShortcut(hwnd,FVIRTKEY ,vk_RETURN,1) 'Enter
AddKeyboardShortcut(hwnd,FCONTROL,VK_W,2) 'CTRL+W
StringGadget(3,10,120,250,20,"",ES_left,WS_EX_CLIENTEDGE)
Do
event=WaitEvent
If event=EventMenu Then
Select case EventNumber
Case 1
MessBox("","1 ìåíþ")
Case 2
MessBox("","2 ìåíþ")
End Select
EndIf
If event=EventClose Then End
Loop
Пробовал и с AddKeyboardShortcut и с EventKEY. В чем загвоздка?
Re: FreeBasic похожий на PureBasic
DEPOzit пишет:Еще вопросик созрел)))) :
Как реализовать событие нажав клавишу Enter при этом находясь в другом гаджете (например StringGadget). Если гаджеты не активны то все работает, если активны то события не проиходит.
Ну вот например:
- Код:
#Include "window9.bi"
Dim As Integer event
Var hwnd=OpenWindow("",10,10,400,400)
AddKeyboardShortcut(hwnd,FVIRTKEY ,vk_RETURN,1) 'Enter
AddKeyboardShortcut(hwnd,FCONTROL,VK_W,2) 'CTRL+W
StringGadget(3,10,120,250,20,"",ES_left,WS_EX_CLIENTEDGE)
Do
event=WaitEvent
If event=EventMenu Then
Select case EventNumber
Case 1
MessBox("","1 ìåíþ")
Case 2
MessBox("","2 ìåíþ")
End Select
EndIf
If event=EventClose Then End
Loop
Пробовал и с AddKeyboardShortcut и с EventKEY. В чем загвоздка?
Да это баг, надо смотреть
trew- Сообщения : 331
Дата регистрации : 2010-10-14
Страница 2 из 6 • 1, 2, 3, 4, 5, 6
Страница 2 из 6
Права доступа к этому форуму:
Вы не можете отвечать на сообщения