Моя программа создаёт 2 окна. Я так понимаю что знчек этих окон указывается не кодом, а в самой оболочке Pure Basic в настройках. Значит все 2 созданные моей программой окна будут под одним и тем же значком. А нелзя зделать так чтобы 2 окна были под разными значками?
Вопросы новичка (продолжение…)
Сообщений 361 страница 390 из 990
Поделиться36227.02.2011 21:38:10
Enumeration #Window_0 #Window_1 #But EndEnumeration OpenWindow(#Window_0,0,0,380,200,"Окно",#PB_Window_MinimizeGadget|#PB_Window_SystemMenu|#PB_Window_ScreenCentered) ButtonGadget(#But,10,50,80,20,"") IconHandle=ExtractIcon_(#Window_0,"c:\windows\system32\shell32.dll",130) SetWindowIcon(WindowID(#Window_0),IconHandle) Repeat Event = WaitWindowEvent() Window = EventWindow() Gadget = EventGadget() Select Event Case #PB_Event_Gadget Select EventGadget() Case #But OpenWindow(#Window_1,200,100,380,200,"Окно",#PB_Window_SystemMenu) IconHandle=ExtractIcon_(#Window_1,"c:\windows\system32\shell32.dll",70) SetWindowIcon(WindowID(#Window_1),IconHandle) EndSelect EndSelect If Event = #PB_Event_CloseWindow Break EndIf ForEver
в место IconHandle загружаешь свои иконки.
Отредактировано mirashic (27.02.2011 21:40:07)
Поделиться36327.02.2011 22:07:21
У меня почему-то ошибка вылетает, хотя я и менял на свою иконку.
Поделиться36427.02.2011 23:11:12
У меня почему-то ошибка вылетает
Это друпия не установлена.
Так должно компилироваться:
Enumeration #Window_0 #Window_1 #But EndEnumeration OpenWindow(#Window_0,0,0,380,200,"Окно",#PB_Window_MinimizeGadget|#PB_Window_SystemMenu|#PB_Window_ScreenCentered) ButtonGadget(#But,10,50,80,20,"") IconHandle=ExtractIcon_(#Window_0,"c:\windows\system32\shell32.dll",130) SendMessage_(WindowID(#Window_0),#WM_SETICON,0,IconHandle) Repeat Event = WaitWindowEvent() Window = EventWindow() Gadget = EventGadget() Select Event Case #PB_Event_Gadget Select EventGadget() Case #But OpenWindow(#Window_1,200,100,380,200,"Окно",#PB_Window_SystemMenu) IconHandle=ExtractIcon_(#Window_1,"c:\windows\system32\shell32.dll",70) SendMessage_(WindowID(#Window_1),#WM_SETICON,0,IconHandle) EndSelect EndSelect If Event = #PB_Event_CloseWindow Break EndIf ForEver
Поделиться36527.02.2011 23:20:50
Ага спасибо, теперь работает
Поделиться36628.02.2011 00:00:43
Если в окне есть избражение (ImageGadget) то все остальные гаджеты которые появляются после изображения использовать невозможно. Есть конечно выход разместить гаджет до изображения, но в моей программе это очень неудобно. Может есть ещё способ разместить гаджет после изображения, и чтоб он был работоспособен?
Вот например:
OpenWindow(0,10,10,500,200,"окно") UseJPEGImageDecoder() LoadImage(1, "b.jpg") ImageGadget(888, 0, 0, 0, 0, ImageID(1)) ButtonGadget(2,10,10,100,100,"button1") Repeat q=WaitWindowEvent() If EventGadget()=2 Debug "Гаджет был нажат!!!" EndIf Until q=#PB_Event_CloseWindow
Отредактировано Илья (28.02.2011 00:01:56)
Поделиться36728.02.2011 00:44:42
А если попробовать так?
ImageGadget(888, 0, 0, 0, 0, ImageID(1)) : DisableGadget(888,1)
Поделиться36828.02.2011 01:40:34
Получилось, спс
Поделиться36901.03.2011 13:47:46
Потребовалось написать маленькую программку. Лет 20 этим не занимался, поэтому посмотрел, какие сейчас есть языки и остановился на РВ. Написал следующее
Enumeration #Window_0 EndEnumeration Enumeration #Button_0 #Button_1 #Button_2 #Button_3 #Button_4 #Button_5 #Button_6 #Button_7 #Button_8 #Button_9 #Button_10 #Button_11 #Button_12 #Button_13 #Button_14 #Button_15 EndEnumeration If OpenWindow(#Window_0, 216, 0, 600, 300, "Stud") And CreateGadgetList(WindowID(#Window_0)) Repeat ButtonGadget(#Button_1, 40, 30, 30, 30, "clear") ButtonGadget(#Button_0, 80, 30, 30, 30, "1") ButtonGadget(#Button_2, 120, 30, 30, 30, "2") ButtonGadget(#Button_3, 40, 100, 30, 30, "3",#PB_Button_Toggle) ButtonGadget(#Button_4, 80, 100, 30, 30, "4",#PB_Button_Toggle) ButtonGadget(#Button_5, 120, 100, 30, 30, "5",#PB_Button_Toggle) ButtonGadget(#Button_6, 40, 140, 30, 30, "6",#PB_Button_Toggle) ButtonGadget(#Button_7, 80, 140, 30, 30, "7",#PB_Button_Toggle) ButtonGadget(#Button_8, 120, 140, 30, 30, "8",#PB_Button_Toggle) ButtonGadget(#Button_9, 40, 180, 30, 30, "9",#PB_Button_Toggle) ButtonGadget(#Button_10, 80, 180, 30, 30, "10",#PB_Button_Toggle) ButtonGadget(#Button_11, 120, 180, 30, 30, "11",#PB_Button_Toggle) ButtonGadget(#Button_12, 40, 220, 30, 30, "12",#PB_Button_Toggle) ButtonGadget(#Button_13, 80, 220, 30, 30, "13",#PB_Button_Toggle) ButtonGadget(#Button_14, 120, 220, 30, 30, "14",#PB_Button_Toggle) Repeat If A=#PB_Event_Gadget B= EventGadget() MessageRequester("Сообщение", "Нажата кнопка "+Str(B)+Str(C), 0) ; это для контроля, потом уберу If B<3 C=B EndIf EndIf A= WaitWindowEvent() If A=#PB_Event_CloseWindow Q=1 EndIf Until EventGadget()=1 Until B=1 And Q=1 EndIf End
Надо сделать кнопки в верхнем ряду цветными, но никак не получается. Честно прочитал учебники и "Вопросы новичка" но ничего не нашел. Правда у меня ХР, а в примечании к "цветным" операторам написано, что в ХР там что-то не отражается.
Отредактировано a1951 (01.03.2011 13:49:43)
Поделиться37001.03.2011 15:12:30
Так подходит ?
Enumeration #Window_0 EndEnumeration Procedure.l MyImage(ImageNumber.l,text.s, Color.l) ImageID.l = CreateImage(ImageNumber, 30, 30) StartDrawing(ImageOutput(ImageNumber)) Box(0, 0,30,30, Color) DrawText( 11,6,text,RGB(255, 241, 238),Color.l ) StopDrawing() ProcedureReturn ImageID EndProcedure Enumeration #Button_0 #Button_1 #Button_2 #Button_3 #Button_4 #Button_5 #Button_6 #Button_7 #Button_8 #Button_9 #Button_10 #Button_11 #Button_12 #Button_13 #Button_14 #Button_15 EndEnumeration If OpenWindow(#Window_0, 216, 0, 600, 300, "Stud") And CreateGadgetList(WindowID(#Window_0)) Repeat ButtonGadget(#Button_1, 40, 30, 30, 30, "clear") ButtonImageGadget(#Button_0, 80, 30, 30, 30,MyImage(#Button_0,"1",RGB(249, 53, 6))) ButtonImageGadget(#Button_2, 120, 30, 30, 30,MyImage(#Button_2,"2",RGB(120, 192, 241))) ButtonGadget(#Button_3, 40, 100, 30, 30, "3",#PB_Button_Toggle) ButtonGadget(#Button_4, 80, 100, 30, 30, "4",#PB_Button_Toggle) ButtonGadget(#Button_5, 120, 100, 30, 30, "5",#PB_Button_Toggle) ButtonGadget(#Button_6, 40, 140, 30, 30, "6",#PB_Button_Toggle) ButtonGadget(#Button_7, 80, 140, 30, 30, "7",#PB_Button_Toggle) ButtonGadget(#Button_8, 120, 140, 30, 30, "8",#PB_Button_Toggle) ButtonGadget(#Button_9, 40, 180, 30, 30, "9",#PB_Button_Toggle) ButtonGadget(#Button_10, 80, 180, 30, 30, "10",#PB_Button_Toggle) ButtonGadget(#Button_11, 120, 180, 30, 30, "11",#PB_Button_Toggle) ButtonGadget(#Button_12, 40, 220, 30, 30, "12",#PB_Button_Toggle) ButtonGadget(#Button_13, 80, 220, 30, 30, "13",#PB_Button_Toggle) ButtonGadget(#Button_14, 120, 220, 30, 30, "14",#PB_Button_Toggle) Repeat If A=#PB_Event_Gadget B= EventGadget() MessageRequester("Сообщение", "Нажата кнопка "+Str(B)+Str(C), 0) ; это для контроля, потом уберу If B<3 C=B EndIf EndIf A= WaitWindowEvent() If A=#PB_Event_CloseWindow Q=1 EndIf Until EventGadget()=1 Until B=1 And Q=1 EndIf End
Поделиться37101.03.2011 15:33:57
Правда у меня ХР, а в примечании к "цветным" операторам написано, что в ХР там что-то не отражается.
Да это так, но можно отключить стиль WinXP.
А для изменения цвета кнопки нужно скачать и установить библиотеку PureCOLOR http://gnozal.ucoz.com/#UserLibs
Enumeration #Window_0 EndEnumeration Enumeration #Button_0 #Button_1 #Button_2 #Button_3 #Button_4 #Button_5 #Button_6 #Button_7 #Button_8 #Button_9 #Button_10 #Button_11 #Button_12 #Button_13 #Button_14 #Button_15 EndEnumeration ThemeLibID = OpenLibrary(#PB_Any,"UxTheme.dll") If OpenWindow(#Window_0, 216, 0, 600, 300, "Stud") ButtonGadget(#Button_1, 40, 30, 30, 30, "clear") CallFunction(ThemeLibID, "SetWindowTheme",GadgetID(#Button_1) , @"", @"") ; Выключаем стиль WinXP для кнопки PureCOLOR_SetButtonColor(#Button_1, 0, $6E77FA) ; Устанавливаем цвет кнопки ButtonGadget(#Button_0, 80, 30, 30, 30, "1") ButtonGadget(#Button_2, 120, 30, 30, 30, "2") ButtonGadget(#Button_3, 40, 100, 30, 30, "3",#PB_Button_Toggle) ButtonGadget(#Button_4, 80, 100, 30, 30, "4",#PB_Button_Toggle) ButtonGadget(#Button_5, 120, 100, 30, 30, "5",#PB_Button_Toggle) ButtonGadget(#Button_6, 40, 140, 30, 30, "6",#PB_Button_Toggle) ButtonGadget(#Button_7, 80, 140, 30, 30, "7",#PB_Button_Toggle) ButtonGadget(#Button_8, 120, 140, 30, 30, "8",#PB_Button_Toggle) ButtonGadget(#Button_9, 40, 180, 30, 30, "9",#PB_Button_Toggle) ButtonGadget(#Button_10, 80, 180, 30, 30, "10",#PB_Button_Toggle) ButtonGadget(#Button_11, 120, 180, 30, 30, "11",#PB_Button_Toggle) ButtonGadget(#Button_12, 40, 220, 30, 30, "12",#PB_Button_Toggle) ButtonGadget(#Button_13, 80, 220, 30, 30, "13",#PB_Button_Toggle) ButtonGadget(#Button_14, 120, 220, 30, 30, "14",#PB_Button_Toggle) Repeat Event = WaitWindowEvent() If Event=#PB_Event_Gadget Gadget = EventGadget() MessageRequester("Сообщение", "Нажата кнопка "+Str(B)+Str(C), 0) ; это для контроля, потом уберу If Gadget<3 C=Gadget EndIf EndIf Until Event=#PB_Event_CloseWindow EndIf CloseLibrary(ThemeLibID) End
Поделиться37201.03.2011 15:35:34
Спасибо, попробую.
Я предполагал что здесь есть какой-то оператор, чтобы дать цвет гаджету (кнопке), а тут просто рисуется квадрат на этих координатах.
Это я только на пробу немного кнопок нарисовал, а так их штук 60 будет.
Кроме того после нажатия кнопки из верхнего ряда будет нажата кнопка из нижних рядов и она должна получить цвет той кнопки, а при нажатии Clear все должно вернутся в исходное состояние (без цвета).
Поделиться37301.03.2011 15:40:10
Пока писал ответ увидел в другом ответе PureColor. Похоже это то, на что я рассчитывал.
Буду пробовать.
Спасибо
Поделиться37401.03.2011 15:51:58
Скажите, а какой оператор закрывает все гаджеты?
Поделиться37501.03.2011 16:13:01
Скажите, а какой оператор закрывает все гаджеты?
Гаждет можно уничтожить с помощью функции FreeGadget.
Если нужно просто скрыть (сделать не видимым не уничтожая), то можно использовать функцию HideGadget.
Это я только на пробу немного кнопок нарисовал, а так их штук 60 будет.Кроме того после нажатия кнопки из верхнего ряда будет нажата кнопка из нижних рядов и она должна получить цвет той кнопки,
Правда у меня ХР, а в примечании к "цветным" операторам написано, что в ХР там что-то не отражается.
Можно отключить в свойствах проекта стиль WinXP.
Поделиться37601.03.2011 17:46:17
Из этих обозначений
Enumeration #Button_0 #Button_1 #Button_2 #Button_3 #Button_4 #Button_5 #Button_6 #Button_7 #Button_8 #Button_9 #Button_10 #Button_11 #Button_12 #Button_13 #Button_14 #Button_15 EndEnumeration
можно сделать массив, чтобы потом его использовать в цикле с оператором PureCOLOR_SetButtonColor(#Button_3, 0, $6E77FA) ???
Аналогично, из обозначений цвета можно сделать массив ?? это будет массив символьных(текстовых) переменных?
Я еще в здешней терминологии не силен.(((
Отредактировано a1951 (01.03.2011 17:46:58)
Поделиться37701.03.2011 18:04:02
используй нумерацию от 0 до ....
Enumeration #Window_0=150 #image #Ima EndEnumeration Procedure.l MyImage(ImageNumber.l, Color.l) ImageID.l = CreateImage(ImageNumber, 40, 40) StartDrawing(ImageOutput(ImageNumber)) Box(0, 0,40,40, Color) StopDrawing() ProcedureReturn ImageID EndProcedure OpenWindow (#Window_0, 0, 0, 490, 490, "Заглавие", #PB_Window_MinimizeGadget |#PB_Window_ScreenCentered|#PB_Window_SizeGadget) For a=0 To 224 RGB=Random(15176728) If 5+(40*a)<446 ButtonImageGadget(a,5+(40*a), 5, 40,40,MyImage(a,RGB)) ElseIf 5+(40*a)<926 ButtonImageGadget(a,5+(40*(a-12)),45, 40,40,MyImage(a,RGB)) ElseIf 5+(40*a)<1406 ButtonImageGadget(a,5+(40*(a-24)),85, 40,40,MyImage(a,RGB)) ElseIf 5+(40*a)<1886 ButtonImageGadget(a,5+(40*(a-36)),125,40,40,MyImage(a,RGB)) ElseIf 5+(40*a)<2366 ButtonImageGadget(a,5+(40*(a-48)),165,40,40,MyImage(a,RGB)) ElseIf 5+(40*a)<2846 ButtonImageGadget(a,5+(40*(a-60)),205,40,40,MyImage(a,RGB)) ElseIf 5+(40*a)<3326 ButtonImageGadget(a,5+(40*(a-72)),245,40,40,MyImage(a,RGB)) ElseIf 5+(40*a)<3806 ButtonImageGadget(a,5+(40*(a-84)),285,40,40,MyImage(a,RGB)) ElseIf 5+(40*a)<4286 ButtonImageGadget(a,5+(40*(a-96)),325,40,40,MyImage(a,RGB)) ElseIf 5+(40*a)<4766 ButtonImageGadget(a,5+(40*(a-108)),365,40,40,MyImage(a,RGB)) ElseIf 5+(40*a)<5246 ButtonImageGadget(a,5+(40*(a-120)),405,40,40,MyImage(a,RGB)) ElseIf 5+(40*a)<5726 ButtonImageGadget(a,5+(40*(a-132)),445,40,40,MyImage(a,RGB)) EndIf Next Repeat Event = WaitWindowEvent() Until Event = #PB_Event_CloseWindow
или
Enumeration #Window_0=150 EndEnumeration OpenWindow (#Window_0, 0, 0, 490, 490, "Заглавие", #PB_Window_MinimizeGadget |#PB_Window_ScreenCentered|#PB_Window_SizeGadget) For a=0 To 224 If 5+(40*a)<446 ButtonGadget(a,5+(40*a), 5, 40,40,"") ElseIf 5+(40*a)<926 ButtonGadget(a,5+(40*(a-12)),45, 40,40,"") ElseIf 5+(40*a)<1406 ButtonGadget(a,5+(40*(a-24)),85, 40,40,"") ElseIf 5+(40*a)<1886 ButtonGadget(a,5+(40*(a-36)),125,40,40,"") ElseIf 5+(40*a)<2366 ButtonGadget(a,5+(40*(a-48)),165,40,40,"") ElseIf 5+(40*a)<2846 ButtonGadget(a,5+(40*(a-60)),205,40,40,"") ElseIf 5+(40*a)<3326 ButtonGadget(a,5+(40*(a-72)),245,40,40,"") ElseIf 5+(40*a)<3806 ButtonGadget(a,5+(40*(a-84)),285,40,40,"") ElseIf 5+(40*a)<4286 ButtonGadget(a,5+(40*(a-96)),325,40,40,"") ElseIf 5+(40*a)<4766 ButtonGadget(a,5+(40*(a-108)),365,40,40,"") ElseIf 5+(40*a)<5246 ButtonGadget(a,5+(40*(a-120)),405,40,40,"") ElseIf 5+(40*a)<5726 ButtonGadget(a,5+(40*(a-132)),445,40,40,"") EndIf PureCOLOR_SetButtonColor(a, 0,Random(15176728)) ; Устанавливаем цвет кнопки Next Repeat Event = WaitWindowEvent() Until Event = #PB_Event_CloseWindow
Отредактировано mirashic (01.03.2011 18:07:46)
Поделиться37801.03.2011 18:09:49
можно сделать массив, чтобы потом его использовать в цикле
Для этого не нужен массив.
В цивле можно так обработать:
For i=#Button_0 To #Button_14 PureCOLOR_SetButtonColor(i, 0, $6E77FA) ; Устанавливаем цвет кнопки Next i
Enumeration #Window_0 EndEnumeration Enumeration #Button_0 #Button_1 #Button_2 #Button_3 #Button_4 #Button_5 #Button_6 #Button_7 #Button_8 #Button_9 #Button_10 #Button_11 #Button_12 #Button_13 #Button_14 #Button_15 EndEnumeration If OpenWindow(#Window_0, 216, 0, 600, 300, "Stud") ButtonGadget(#Button_1, 40, 30, 30, 30, "clear") ButtonGadget(#Button_0, 80, 30, 30, 30, "1") ButtonGadget(#Button_2, 120, 30, 30, 30, "2") ButtonGadget(#Button_3, 40, 100, 30, 30, "3",#PB_Button_Toggle) ButtonGadget(#Button_4, 80, 100, 30, 30, "4",#PB_Button_Toggle) ButtonGadget(#Button_5, 120, 100, 30, 30, "5",#PB_Button_Toggle) ButtonGadget(#Button_6, 40, 140, 30, 30, "6",#PB_Button_Toggle) ButtonGadget(#Button_7, 80, 140, 30, 30, "7",#PB_Button_Toggle) ButtonGadget(#Button_8, 120, 140, 30, 30, "8",#PB_Button_Toggle) ButtonGadget(#Button_9, 40, 180, 30, 30, "9",#PB_Button_Toggle) ButtonGadget(#Button_10, 80, 180, 30, 30, "10",#PB_Button_Toggle) ButtonGadget(#Button_11, 120, 180, 30, 30, "11",#PB_Button_Toggle) ButtonGadget(#Button_12, 40, 220, 30, 30, "12",#PB_Button_Toggle) ButtonGadget(#Button_13, 80, 220, 30, 30, "13",#PB_Button_Toggle) ButtonGadget(#Button_14, 120, 220, 30, 30, "14",#PB_Button_Toggle) For i=#Button_0 To #Button_14 PureCOLOR_SetButtonColor(i, 0, $6E77FA) ; Устанавливаем цвет кнопки Next i Repeat Event = WaitWindowEvent() If Event=#PB_Event_Gadget Gadget = EventGadget() MessageRequester("Сообщение", "Нажата кнопка "+Str(B)+Str(C), 0) ; это для контроля, потом уберу If Gadget<3 C=Gadget EndIf EndIf Until Event=#PB_Event_CloseWindow EndIf End
Поделиться37901.03.2011 19:45:30
Бьюсь с инструментом с буржуйского форума [IDE Tool] Add date to source code!
Он дописывает при сохранении PB файла всякую ерунду, вроде времени в начало файла.
Создаю инструмент как написано, но не работает...
С принципом вроде разобрался, если в место source.s = ProgramParameter(0) указываю реальный путь к файлу, то работает...
То есть, как через компилятор PB узнать путь к открытому в данный момент файлу ? чтоб потом автоматом в него дописать...
Отредактировано mirashic (01.03.2011 19:46:41)
Поделиться38001.03.2011 20:11:02
То есть, как через компилятор PB узнать путь к открытому в данный момент файлу ? чтоб потом автоматом в него дописать...
Вот список параметров, может поможет.
%PATH : will be replaced with the path of the current source code. Remains empty if the source was not saved. %FILE : filename of the current source code. Remains empty if it has not yet been saved. If you configure the tool to replace the file viewer, this token represents the file that is to be opened. %TEMPFILE : When this option is given, the current source code is saved in a temporary file, and the filename is inserted here. You may modify or delete the file at will. %COMPILEFILE : This token is only valid for the compilation triggers (see below). This is replaced with the temporary file that is sent to the compiler for compilation. By modifying this file, you can actually change what will be compiled. %EXECUTABLE : This will be replaced by the name of the executable that was created in with the last "Create Executable". For the "After Compile/Run" trigger, this will be replaces with the name of the temporary executable file created by the compiler. %CURSOR : this will be replaced by the current cursor position. In the form of LINExCOLUMN. %SELECTION : this will be replaced by the current selection in the form of LINESTARTxCOLUMNSTARTxLINEENDxCOLUMNEND. This can be used together with %TEMPFILE, if you want your tool to do some action based on the selected area of text. %WORD : contains the word currently under the cursor
Поделиться38101.03.2011 21:24:03
может поможет
Не помогло...
Создаю к примеру инструмент
OpenWindow(0,0,0,450,40,ProgramParameter(),#PB_Window_SystemMenu|#PB_Window_ScreenCentered) Repeat Event = WaitWindowEvent() Until Event = #PB_Event_CloseWindow
Компилирую и задаю параметры инструмента:
По идее при загрузке любого файла pb должно выскакивать окно с заголовком пути...
а выходит:
Может что то упускаю?
И Перенос строк в стандартной IDE PureBasic тоже по этой причине не смог запустить...
Отредактировано mirashic (01.03.2011 21:27:26)
Поделиться38201.03.2011 22:07:54
Гаждет можно уничтожить с помощью функции FreeGadget.Если нужно просто скрыть (сделать не видимым не уничтожая), то можно использовать функцию HideGadget.
да, но я это знаю, они закрывают только 1 гаджет. А у меня в программе столько гаджетов открывается что очень пригодился бы оператор который закрывает все открытые гаджеты. Или такого нет?
Поделиться38302.03.2011 00:58:14
Не помогло...
А если попробовать
"%PATH"
А у меня в программе столько гаджетов открывается что очень пригодился бы оператор который закрывает все открытые гаджеты. Или такого нет?
Можно позакрывать окна, тогда гаджеты исчезнут.
Или как вариант, создавать гаджеты в контейнере и уничтожать контейнер, что уничтожит все гаджеты в нем.
В крайнем случае, должны быть известны идентификаторы все гаджетов и можно их уничтожить поштучно.
Поделиться38402.03.2011 01:02:54
Да спасиб, просто я думал что в PureBasic чтоб сразу все гаджеты уничтожить специальный оператор предусмотрен.
Поделиться38502.03.2011 10:34:39
Для этого не нужен массив.
В цикле можно так обработать:
Код:For i=#Button_0 To #Button_14
PureCOLOR_SetButtonColor(i, 0, $6E77FA) ; Устанавливаем цвет кнопки
Next i
В таком цикле я смогу установить цвет кнопок в верхнем ряду, но мне нужен будет видимо массив "цвет кнопки" про который я спрашивал, так как цвет кнопок в верхнем ряду у каждой кнопки свой.
Цвет кнопок в четырех нижних рядах должен устанавливаться в зависимости от того, какая кнопка в верхнем ряду нажата перед этим, то есть работа с этой программой происходит так:
нажимается кнопка 1, нажимается одна из кнопок в 4-х нижних рядах, которая остается нажатой с цветом кнопки №1
нажимается кнопка 2, нажимается одна из кнопок в 4-х нижних рядах, которая остается нажатой с цветом кнопки №2
...
потом все это повторяется некоторое число раз
затем нажимается Clear и все кнопки нижних рядов без цвета восстанавливаются для повторения работы.
В самом первом коде, который был в самом первом моем сообщении это было реализовано, только без цвета.
Поделиться38602.03.2011 10:36:21
Можно отключить в свойствах проекта стиль WinXP.
увеличить
Где и что надо нажать, чтобы выйти на это окно ? (почему-то оно при цитировании не скопировалось)
Отредактировано a1951 (02.03.2011 10:37:56)
Поделиться38702.03.2011 11:16:28
Спасибо ! Нигде не написано про заключение в скобки "%PATH" - теперь работает
Поделиться38802.03.2011 11:35:17
но мне нужен будет видимо массив "цвет кнопки" про который я спрашивал, так как цвет кнопок в верхнем ряду у каждой кнопки свой.
Цвет кнопки можно узнать с помощью функции PureCOLOR_GetButtonColor
Enumeration #Window_0 EndEnumeration Enumeration #Button_0 #Button_1 #Button_2 #Button_3 #Button_4 #Button_5 #Button_6 #Button_7 #Button_8 #Button_9 #Button_10 #Button_11 #Button_12 #Button_13 #Button_14 #Button_15 EndEnumeration If OpenWindow(#Window_0, 216, 0, 600, 300, "Stud") ButtonGadget(#Button_1, 40, 30, 30, 30, "clear") ButtonGadget(#Button_0, 80, 30, 30, 30, "1") ButtonGadget(#Button_2, 120, 30, 30, 30, "2") ButtonGadget(#Button_3, 40, 100, 30, 30, "3",#PB_Button_Toggle) ButtonGadget(#Button_4, 80, 100, 30, 30, "4",#PB_Button_Toggle) ButtonGadget(#Button_5, 120, 100, 30, 30, "5",#PB_Button_Toggle) ButtonGadget(#Button_6, 40, 140, 30, 30, "6",#PB_Button_Toggle) ButtonGadget(#Button_7, 80, 140, 30, 30, "7",#PB_Button_Toggle) ButtonGadget(#Button_8, 120, 140, 30, 30, "8",#PB_Button_Toggle) ButtonGadget(#Button_9, 40, 180, 30, 30, "9",#PB_Button_Toggle) ButtonGadget(#Button_10, 80, 180, 30, 30, "10",#PB_Button_Toggle) ButtonGadget(#Button_11, 120, 180, 30, 30, "11",#PB_Button_Toggle) ButtonGadget(#Button_12, 40, 220, 30, 30, "12",#PB_Button_Toggle) ButtonGadget(#Button_13, 80, 220, 30, 30, "13",#PB_Button_Toggle) ButtonGadget(#Button_14, 120, 220, 30, 30, "14",#PB_Button_Toggle) For i=#Button_0 To #Button_14 PureCOLOR_SetButtonColor(i, 0, $6E77FA) ; Устанавливаем цвет кнопки Next i Repeat Event = WaitWindowEvent() If Event=#PB_Event_Gadget Gadget = EventGadget() MessageRequester("Сообщение", "Код цвета кнопки: "+Str(PureCOLOR_GetButtonColor(Gadget, 2))) ; это для контроля, потом уберу If Gadget<3 C=Gadget EndIf EndIf Until Event=#PB_Event_CloseWindow EndIf End
Где и что надо нажать, чтобы выйти на это окно ?
Поделиться38902.03.2011 12:02:45
Цвет кнопки можно узнать с помощью функции PureCOLOR_GetButtonColor
То есть вы предлагаете каждый раз после нажатия на кнопку верхнего ряда определять цвет этой кнопки и присваивать его нужной кнопке нижних рядов? В верхнем ряду ведь эти цвета изначально закреплены за кнопками и они не меняются, поэтому может проще определять цвет по номеру кнопки верхнего ряда?
Поделиться39002.03.2011 12:26:10
То есть вы предлагаете каждый раз после нажатия на кнопку верхнего ряда определять цвет этой кнопки и присваивать его нужной кнопке нижних рядов?
Можно сохранять в переменной, а когда кликнут по кнопке нижнего ряда, присваивать ей цвет, сохранённый в переменной.
ведь эти цвета изначально закреплены за кнопками и они не меняются, поэтому может проще определять цвет по номеру кнопки верхнего ряда
Можно и так.
Похожие темы
Какая версия? | OffTop | 03.10.2021 |
Мне постоянно пищет вот это | Вопросы по PureBasic | 14.10.2011 |
Размер экрана в пикселях | Вопросы по PureBasic | 13.02.2011 |
консоль | Вопросы по PureBasic | 19.03.2015 |
Полноэкранные приложения на purebasic | Вопросы по PureBasic | 08.03.2011 |