Уроки PureBasic

Categories

Other Sites

Other Sites

Other Sites



             Поиск по сайту

     

                


    Оставить мне сообщение:



Проект Константы

Уроки PureBasic

Своего рода записная книжка.
С возможностью добавлять свои заметки и дальнейшее их редактирование.
Включает перечень констант гаджетов и функций PureBasic.
Добавлена функция подсветки синтаксиса (не совсем корректно работает).
Комментарии и примеры к константам добавляем самостоятельно.

Спасибо за оказанную помощь:

Виталию Крячко
Петру Высочанскому


Скачать архив

Proekt Konstanty


Уроки PureBasic

Код реализации для версии PB 4.40 :
;-------------------------------------Proekt_Konstanty------------------------------------------- ; ; PureBasic 4.40 ; ; (c) 2010 - mirashic ; ;------------------------------------------------------------------------------------------------ UsePNGImageDecoder() Enumeration #Window_0 #Window_1 EndEnumeration Enumeration #ComboBoxGadget_0 #ListIconGadget_2 #PanelGadget_3 #TextGadget_1 #TextGadget_2 #StringGadget_1 #StringGadget_2 #StringGadget_3 #Save #New_Entry #Delete_1 #Agree #img_0 #img_1 #img_2 #img_3 #Image_3 #Font_Editor_0 #Font_1 #Link #Inf EndEnumeration IncludeFile "SyntaxhighlightingEditorGadget.pbi" IncludeFile "con_fyn.pb" CatchImage(#img_1, ?Im1, ?Im1End-?Im1) CatchImage(#img_2, ?Im2, ?Im2End-?Im2) Procedure IsMouseOver(wnd) ; Определяем находится ли курсор мышки в пределах данного окна (гаджета) GetWindowRect_(wnd,re.RECT) GetCursorPos_(pt.POINT) ProcedureReturn PtInRect_(@re, pt\x|(pt\y<<32)) EndProcedure ;{-------------------Окно------------------------------------ OpenWindow (#Window_0, 78, 90, 940, 645, "PureConstants", #PB_Window_MinimizeGadget|#PB_Window_ScreenCentered) ;SetWindowColor(#Window_0,RGB(255, 255, 255)) ImageGadget(#img_3, 380, 5, 60, 47, ImageID(#img_1)) ImageGadget(#img_0, 845, 5, 60, 47, ImageID(#img_2)) ComboBoxGadget(#ComboBoxGadget_0, 5, 10, 275, 20) ButtonGadget(#Delete_1, 340, 610, 130, 20, "Удалить запись") ButtonGadget(#New_Entry,540, 610, 130, 20, "Новая запись") ButtonGadget(#Save, 740, 610, 130, 20, "Сохранить изменения") ListIconGadget(#ListIconGadget_2, 5, 35, 275, 585, "Темы:", 100, #PB_ListIcon_AlwaysShowSelection|#PB_ListIcon_GridLines|#PB_ListIcon_FullRowSelect) SendMessage_(GadgetID(#ListIconGadget_2), #LVM_SETCOLUMNWIDTH, 0, #LVSCW_AUTOSIZE_USEHEADER) TextGadget (#TextGadget_1, 290, 56, 60, 15, "Имя темы :") TextGadget (#TextGadget_2, 290, 77, 60, 15, "Описание :") EditorGadget (#StringGadget_1, 285, 95, 650, 500) SetGadgetFont(#StringGadget_1, LoadFont(#Font_Editor_0, "Courier", 10, 16)) CheckBoxGadget(#Font_1, 290, 33, 40 , 20, "Max") SetGadgetState(#Font_1, 0) HyperLinkGadget(#Link,50, 625,100,15,"http://purebasic.info",RGB(255,0,0)) HyperLinkGadget(#Inf, 925, 5, 10, 15, "?", RGB(255,0,0)) StringGadget (#StringGadget_2, 360, 54, 470, 20, "Имя отсутствует") If CreatePopupMenu(1) MenuItem(1,"Отменить") MenuItem(2,"Повторить") MenuBar () MenuItem(3,"Вырезать") MenuItem(4,"Копировать") MenuItem(5,"Вставить") MenuBar () MenuItem(6,"Выделить всё") EndIf ;}----------------------------------------------------------- ;{-----------Чтение Preferences------------------------------ Procedure AddConstant() Result$ = GetGadgetText(#ComboBoxGadget_0) ClearGadgetItems(#ListIconGadget_2) OpenPreferences("constants.pcs") PreferenceGroup(Result$) If ExaminePreferenceKeys() While NextPreferenceKey()>0 keyValue$ = PreferenceKeyValue() AddGadgetItem(#ListIconGadget_2, 0,keyValue$) Wend EndIf ClosePreferences() EndProcedure OpenPreferences("constants.pcs") If ExaminePreferenceGroups() While NextPreferenceGroup()>0 Group$ = PreferenceGroupName() AddGadgetItem(#ComboBoxGadget_0, -1,Group$) Wend SetGadgetState(#ComboBoxGadget_0,0) AddConstant() EndIf ClosePreferences() ;}-------------------------------------------------------- Repeat Event= WaitWindowEvent() If Event=#WM_RBUTTONUP If IsMouseOver(GadgetID(#StringGadget_1)) DisplayPopupMenu(1,WindowID(0)) EndIf EndIf Window=EventWindow() Gadget=EventGadget() Syntax(#StringGadget_1) Select Event Case #PB_Event_Gadget EventGadget = EventGadget() EventType = EventType() Select EventGadget() Case #ListIconGadget_2 Fast$=GetGadgetText(#ListIconGadget_2) SetGadgetText(#StringGadget_2,Fast$) Name.s = GetGadgetText(#ListIconGadget_2)+".txt" ;------------------------------------------------------- OpenFile(0, "files\"+Name) ;если файла нет, создаем новый CloseFile(0) ;------------------------------------------------------- If ReadFile(1,"files\"+Name) Content$="" Size=Lof(1) If Size>0 Content$=Space(Size) ReadData(1,@Content$,Size) EndIf CloseFile(1) Else MessageRequester("", "Файл не обноружен! В названии не допустимый знак! Удалить вручную запись из constants.pcs!", #MB_OK|#MB_ICONERROR) End EndIf SetGadgetText(#StringGadget_1, Content$) Case #Save DeleteFile("files\"+Name) OpenFile(0,"files\"+Name) FileSeek(0, 0) WriteStringN(0, GetGadgetText(#StringGadget_1)) CloseFile(0) MessageRequester("Ok","Фаил сохранен") Case #New_Entry OpenWindow(#Window_1, 0, 0, 450, 70, "Набери новое имя записи", #PB_Window_MinimizeGadget|#PB_Window_ScreenCentered) StringGadget(#StringGadget_3, 10, 10, 430, 20, "") ButtonGadget(#Agree, 140, 40, 130, 20, "Согласны ?") Case #Agree AddGadgetItem(#ListIconGadget_2, 0,GetGadgetText(#StringGadget_3)) If OpenPreferences("constants.pcs") WritePreferenceString(GetGadgetText(#StringGadget_3),GetGadgetText(#StringGadget_3) ) ClosePreferences() EndIf CloseWindow(#Window_1) Case #ComboBoxGadget_0 AddConstant() Case #Delete_1 If OpenPreferences("constants.pcs") PreferenceGroup("Мои записи") RemovePreferenceKey(GetGadgetText(#ListIconGadget_2)) ClosePreferences() EndIf DeleteFile("files\"+Name) RemoveGadgetItem(#ListIconGadget_2, GetGadgetState(#ListIconGadget_2)) Case #Font_1 Toggle = Toggle ! 1 If Toggle SetGadgetFont(#StringGadget_1, LoadFont(#Font_Editor_0, "Courier New", 10, 16)) Else SetGadgetFont(#StringGadget_1, LoadFont(#Font_Editor_0, "Courier", 10, 16)) EndIf Case #Link RunProgram("http://purebasic.info") Case #Inf ;{-----------------------------О программе------------------------------------- CatchImage(69, ?Im3, ?Im3End-?Im3) OpenWindow(59, 0, 0, 320, 320, "Информация о программе", #PB_Window_MinimizeGadget|#PB_Window_ScreenCentered) SetWinBackgroundImage(WindowID(59), ImageID(69) ) TextGadget (70, 20, 295, 95, 15, "Сайт программы :") HyperLinkGadget(71, 140, 295, 150,15,"http://www.mirashic.narod.ru",RGB(255, 4, 0)) TextGadget (72, 120, 124, 65, 15, "Версия : 1.0") TextGadget (73, 30, 250, 165, 15, "Автор : Мирошниченко Олег") TextGadget (74, 30, 144, 265, 15, "Проект Константы") TextGadget (75, 30, 160, 265, 15, "Бесплатная версия") TextGadget (76, 30, 176, 265, 15, "Сделано в программной среде : ") HyperLinkGadget(77, 50, 200, 130, 30, "PureBasic",RGB(255, 4, 0)) SetGadgetFont (77, LoadFont(77, "Arial", 20, 16)) SetGadgetColor(77, #PB_Gadget_FrontColor,RGB(255, 81, 78)) SetGadgetColor(77, #PB_Gadget_BackColor, RGB(0, 0, 0)) For k=70 To 76 SetGadgetColor(k, #PB_Gadget_FrontColor,RGB(129, 129, 129)) SetGadgetColor(k, #PB_Gadget_BackColor, RGB(0, 0, 0)) Next k ;}----------------------------------------------------------------------------- Case 71 RunProgram("http://www.mirashic.narod.ru/") Case 77 RunProgram("http://purebasic.com/") EndSelect EndSelect ;{--------------------- Сохранить/вставить --------------------------------------------- If Event=#PB_Event_Menu Menu=EventMenu() Select Menu Case 1 SendMessage_(GadgetID(#StringGadget_1), #EM_UNDO, #Null, #Null) Case 2 SendMessage_(GadgetID(#StringGadget_1), #EM_REDO, #Null, #Null) Case 3, 4 SendMessage_(GadgetID(#StringGadget_1), #EM_GETSEL, @Min,@Max) If Min<>Max If Min<Max xx=Max-Min Else xx=Min-Max EndIf lpText.s=Space(xx) SendMessage_(GadgetID(#StringGadget_1), #EM_GETSELTEXT, #Null, @lpText) SetClipboardText(lpText) If Menu=3 SendMessage_(GadgetID(#StringGadget_1),#EM_REPLACESEL,0,@"") EndIf EndIf Case 5 Text.s=GetClipboardText() SendMessage_(GadgetID(#StringGadget_1),#EM_REPLACESEL,0,@Text) Case 6 SendMessage_(GadgetID(#StringGadget_1),#EM_SETSEL,0,-1) EndSelect EndIf ;}------------------------------------------------------------------------------------- If Event=#PB_Event_CloseWindow CloseWindow(Window) EndIf Until Event=#PB_Event_CloseWindow And Window=#Window_0 DataSection Im1: IncludeBinary "111.png" Im1End: Im2: IncludeBinary "222.png" Im2End: Im3: IncludeBinary "info.png" Im3End: EndDataSection </plaintext> </div><br><br><br><br> <img src="img/lin.jpg" width="700" height="20" alt="Уроки PureBasic"><br><br><br> </div> </div> <!-- copyright (t4) --><div align="center">Используются технологии <a href="http://www.ucoz.ru/" title="Создать сайт бесплатно"><b>uCoz</b></a><br /></div><!-- /copyright --> </body> </html>