PureBasic - форум

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » PureBasic - форум » PureBasic для Windows » CHM для новичка


CHM для новичка

Сообщений 1 страница 12 из 12

1

PureBasic-beginner.7z
Решил сделать небольшой справочник подсказку со ссылками на те вещи которыми сам постоянно пользуюсь.

Также см. PB_User

Отредактировано AZJIO (09.03.2022 23:28:20)

0

2

DebugView - отладчик для плагинов, которые невозможно запустить как исходник, а только скомпилировав

Хорошая замена https://github.com/CobaltFusion/DebugViewPP

0

3

AZJIO написал(а):

справочник подсказку со ссылками на те вещи которыми сам постоянно пользуюсь.

"
IceDesign,PureFORM - создание GUI, хотя для этого есть встроенный инструмент в самой IDE. Бесплатная версия IceDesign имеет ограничение 16 элементов.
"

Буквально до последнего изменения, а именно пока  IceDesign после превышения лимита в 16 элементов выдавал предупреждение, что типа извините, но демо, и больше ни как нельзя, это недоразумение можно было исправить в течении 3 минут в отладчике.
Поиск по строке с этим сообщением, потом правка в 4-х местах, где оно вылезало путём вставки безусловного перехода типа JMP и всё, у вас уже полная версия на не ограниченное кол-во элементов.
Но видать автору кто то подсказал, что это очень просто лечится, и он в последней версии отключил все сообщения об ограничениях!
Ну так то молодец, но теперь чтобы найти где исправить надо напрячься. А это уже лень, тем более за 16 е.

0

4

ВиниПур
какие преимущества у IceDesign перед ИДЕ PB? Какие новые фишки появились в новой версии? Есть ли старая версия с сообщениями? - адреса скорее всего остались те же самые - можно по шаблону поискать..

0

5

bizdon написал(а):

Какие новые фишки появились в новой версии?

В основном это более глубокая поддержка DPI + встроенный просмотр кода в реальном времени.
https://github.com/ChrisRfr/IceDesign/raw/master/gif_demo/Code_Display_Demo.png

bizdon написал(а):

какие преимущества у IceDesign перед ИДЕ PB?

Тут чистая вкусовщина. Мне нравится, что генерирует 1 файл кода, как и старый PureFORM.
Много всяких удобняшек по копированию, форматированию гаджетов, современный внешний вид, работает независимо от IDE Пурика.

bizdon написал(а):

Есть ли старая версия с сообщениями?

Есть. Ковыряйте на здоровье:
https://cloud.mail.ru/public/jzPm/WSS9AkZzM

0

6

bizdon написал(а):

какие преимущества у IceDesign

Читая последние обновы встроена изменение размеров вместе с окном. Если честно я не юзал активно, так как это всегда индивидуальный подход и в принципе как я в той же теме отписал, что для меня в большинстве нужно получить координаты элементов, т.е. скомпоновал элементы, а потом сделал всё по своему, копируя строку с 4-мя числами (позиция/координаты).

0

7

Старая версия патчится одним байтом, изменением перехода возле первого сообщения. А вот в новой не просто сообщения отсутствуют, там куча проверок на стадии предпросмотра и сохранения.. пока не ломается.

0

8

А выложите последнюю ломанную, плиз!

0

9

Тут не ломанная : https://1drv.ms/u/s!Auurs2F0cQKFgfIuqMcCiVFq5e84fQ
Пароль -  мой ник.

+1

10

Скачать PB User.chm
Попробовал собирать пользовательскую справку на AutoIt3-компиляторе справки. Подкорректировал немного в плане заголовочных текстов и значков, единственная проблема подсветка кода. Если бы SciTE (Scintilla) изначально подсвечивал бы код PureBasic, то проблем бы не было, вставил бы свои цвета в конфиг-файл и получил бы готовый результат, но этого не происходит, а переписывать весь этот движок пока лень. Ну и 2-я проблема - конечно же лучше собирать используя исходники PureBasic, но переделать компилятор справки так, чтобы собрал справку в стиле справки AutoIt3, а если делать по своему, то потом это не будет поддерживаться ни кем, не будет компилироваться под Linux, Mac.

Удалось присоединить подсветку кода на основе библиотеки SyntaxHighlighting.dll.

Отредактировано AZJIO (03.12.2021 16:17:06)

0

11

Smitis
https://disk.yandex.ru/d/qumiOYHtbD7TZw
думаю, (судя по структуре процедур) в последней демке зашито ограничение на 16 элементов, т.е. это именно демка, а не полноценная версия (об этом же говорит отсутствие окна для ввода ключа).

0

12

AZJIO написал(а):

Удалось присоединить подсветку кода на основе библиотеки SyntaxHighlighting.dll

Делал как-то это дело:

Код:


; Purebasic Syntax Highlight To Html
; Author: Webarion

Global NewMap SHL_Template.s()

Global NewList SHL_Index$()

Global Pattern_REGEX_SHL$ = "(?mi)"
Global REGEX_SHL


Procedure _Get_Count_Groups_Pattern_SHL( Pattern$ )
  Protected Counter = -1
  Protected REGEX_SHL_Groups = CreateRegularExpression( #PB_Any, Pattern$ )
  If IsRegularExpression( REGEX_SHL_Groups )
    Counter = CountRegularExpressionGroups( REGEX_SHL_Groups )
    FreeRegularExpression( REGEX_SHL_Groups )
    ProcedureReturn Counter
  EndIf
  ProcedureReturn Counter
EndProcedure

Procedure _Add_Pattern_REGEX_SHL( Name$, Pattern$ )
  Static Sep$ = "", i
  Protected CountGroups = _Get_Count_Groups_Pattern_SHL( Pattern$ )
  If CountGroups > 0
    For i = 1 To CountGroups
      AddElement( SHL_Index$() )
      SHL_Index$() = Name$ 
    Next
    Pattern_REGEX_SHL$ + Sep$ + Pattern$
    Sep$ = "|" 
  EndIf
EndProcedure

Procedure.a _Init_REGEX_SHL()
  REGEX_SHL = CreateRegularExpression( #PB_Any, Pattern_REGEX_SHL$  )
  ProcedureReturn REGEX_SHL
EndProcedure

; PureBasic IDE standard color regular expressions
; Регулярки стандартной расцветки IDE PureBasic
_Add_Pattern_REGEX_SHL( "StringColor", "(~"+#DQUOTE$+"(?:\\.|[^\\])*?(?:"+#DQUOTE$+"|$)|"+#DQUOTE$+"[^"+#DQUOTE$+"]*?(?:"+#DQUOTE$+"|$))" )
_Add_Pattern_REGEX_SHL( "CustomKeywordColor", "\b(Procedure|EndProcedure)\b" )
_Add_Pattern_REGEX_SHL( "BasicKeywordColor", "\b(And|Array|As|Break|CallDebugger|Case|CompilerCase|CompilerDefault|CompilerElse|CompilerElseIf|CompilerEndIf|CompilerEndSelect|CompilerError|CompilerIf|CompilerSelect|CompilerWarning|Continue|Data|DataSection|EndDataSection|Debug|DebugLevel|Declare|DeclareC|DeclareCDLL|DeclareDLL|DeclareModule|EndDeclareModule|Default|Define|Dim|DisableASM|DisableDebugger|DisableExplicit|Else|ElseIf|EnableASM|EnableDebugger|EnableExplicit|End|Enumeration|EnumerationBinary|EndEnumeration|FakeReturn|For|ForEach|ForEver|Global|Gosub|Goto|If|EndIf|Import|EndImport|ImportC|IncludeBinary|IncludeFile|IncludePath|Interface|EndInterface|List|Macro|EndMacro|MacroExpandedCount|Map|Module|EndModule|NewList|NewMap|Next|Not|Or|Procedure|EndProcedure|ProcedureC|ProcedureCDLL|ProcedureDLL|ProcedureReturn|Protected|Prototype|PrototypeC|Read|ReDim|Repeat|Restore|Return|Runtime|Select|EndSelect|Shared|Static|Step|Structure|EndStructure|StructureUnion|EndStructureUnion|Swap|Threaded|To|UndefineMacro|Until|UseModule|UnuseModule|Wend|While|With|EndWith|XIncludeFile|XOr|Align|Extends)\b" )
_Add_Pattern_REGEX_SHL( "CommentColor", "(;.*\r\n?)" )
_Add_Pattern_REGEX_SHL( "ConstantColor", "(\#[a-z_]\w*\$?)" )
_Add_Pattern_REGEX_SHL( "PureKeywordColor", "(\w+\$?(?=(?:\s*\.\s*\w+\s*|\s*)\())" )
_Add_Pattern_REGEX_SHL( "ASMKeywordColor", "^\s*(!.*?)(?=;|$)" )
_Add_Pattern_REGEX_SHL( "PointerColor", "((?:\@\*?|\*|\?)[a-z_]\w+(?:\$|\(\))?)" )
_Add_Pattern_REGEX_SHL( "NumberColor", "((?:\b\d+\.?\d*(?:e[+\-]?\d+)?|\$[\dabcdef]+|\%[01]+))" )
_Add_Pattern_REGEX_SHL( "StructureColor", "([a-z_]\w*(?=\s*\.[^abcdfilqsuw]))|(?![\r\n])(?<=\.)\s*([^abcdfilqsuw][a-z_]\w*)|([a-z_]\w*(?=\s*\\)(?!\r\n))|(?<=\\)\s*([a-z_]\w*)" )
_Add_Pattern_REGEX_SHL( "ModuleColor", "(\w+(?=\s*::))" )
_Add_Pattern_REGEX_SHL( "LabelColor", "(^\s*\w+\$?\s*:(?!:))" )
_Add_Pattern_REGEX_SHL( "OperatorColor", "((?:[+*/\-|!%=~]|::|&gt;|&lt;|&amp;)+)" )
_Add_Pattern_REGEX_SHL( "SeparatorColor", "([()\[\]\\,.:])" )

_Init_REGEX_SHL()

; Conversion Procedure
; Процедура преобразования
Procedure.s PB_Syntax_Highlighting( Code$ )  
  Protected Result$ = "", i
  Code$ = ReplaceString( Code$, "&", "&amp;" )  
  Code$ = ReplaceString( Code$, "<", "&lt;" )
  Code$ = ReplaceString( Code$, ">", "&gt;" )
  If IsRegularExpression( REGEX_SHL ) And MatchRegularExpression( REGEX_SHL, Code$ ) And ExamineRegularExpression( REGEX_SHL, Code$ )
    Protected PrevPos = 1
    While NextRegularExpressionMatch( REGEX_SHL )
      Protected CountGroups = CountRegularExpressionGroups( REGEX_SHL )
      If CountGroups
        For i = 1 To CountGroups
          Protected Replacement_Code$ = Trim( RegularExpressionGroup( REGEX_SHL, i ) )
          If Replacement_Code$
            Protected Position = RegularExpressionMatchPosition( REGEX_SHL ) + RegularExpressionGroupPosition( REGEX_SHL, i ) - 1
            Protected FirstCode$ = Mid( Code$, PrevPos, Position - PrevPos ) 
            SelectElement( SHL_Index$(), i-1 )
            Protected Template$ = SHL_Template( SHL_Index$() )
            If Template$
              Template$ = ReplaceString( Template$, "%1", Replacement_Code$)
              Result$ + FirstCode$ + Template$
              PrevPos = Position + Len(Replacement_Code$)
            EndIf
          EndIf  
        Next
      EndIf
    Wend
  EndIf
  ProcedureReturn Result$
EndProcedure

; template loading procedure
; процедура загрузки шаблона
Procedure.s Load_INI_File_SHL( PathFile$, Section$ )
  
  OpenPreferences( PathFile$ )
  
  PreferenceGroup(Section$)
  SHL_Template("EditorFontName")  = ReadPreferenceString("EditorFontName",  "Consolas" )
  SHL_Template("EditorFontSize")  = ReadPreferenceString("EditorFontSize",  "10" )
  SHL_Template("EditorFontStyle") = ReadPreferenceString("EditorFontStyle", "" )
  SHL_Template("NormalTextColor") = ReadPreferenceString("NormalTextColor", "#FFFFFF" )
  SHL_Template("BackgroundColor") = ReadPreferenceString("BackgroundColor", "#002240" )
  
  SHL_Template("LabelColor")         = ReadPreferenceString( "LabelColor",         "<font color='#D33682'>%1</font>" )
  SHL_Template("NumberColor")        = ReadPreferenceString( "NumberColor",        "<font color='#FF628C'>%1</font>" )
  SHL_Template("StringColor")        = ReadPreferenceString( "StringColor",        "<font color='#3AD900'>%1</font>" )
  SHL_Template("ModuleColor")        = ReadPreferenceString( "ModuleColor",        "<font color='#CB4B16'>%1</font>" )
  SHL_Template("PointerColor")       = ReadPreferenceString( "PointerColor",       "<font color='#5DAEF2'>%1</font>" )
  SHL_Template("CommentColor")       = ReadPreferenceString( "CommentColor",       "<font color='#0088FF'>%1</font>" )
  SHL_Template("ConstantColor")      = ReadPreferenceString( "ConstantColor",      "<font color='#FF628C'>%1</font>" )
  SHL_Template("OperatorColor")      = ReadPreferenceString( "OperatorColor",      "<font color='#FF9D00'>%1</font>" )
  SHL_Template("SeparatorColor")     = ReadPreferenceString( "SeparatorColor",     "<font color='#FFD715'>%1</font>" )
  SHL_Template("StructureColor")     = ReadPreferenceString( "StructureColor",     "<font color='#60B66D'>%1</font>" )
  SHL_Template("ASMKeywordColor")    = ReadPreferenceString( "ASMKeywordColor",    "<font color='#6C71C4'>%1</font>" ) 
  SHL_Template("PureKeywordColor")   = ReadPreferenceString( "PureKeywordColor",   "<font color='#FFB454'>%1</font>" )
  SHL_Template("BasicKeywordColor")  = ReadPreferenceString( "BasicKeywordColor",  "<font color='#FFB054'>%1</font>" )
  SHL_Template("CustomKeywordColor") = ReadPreferenceString( "CustomKeywordColor", "<font color='#FB86CD'>%1</font>" )
  
  ClosePreferences()

EndProcedure 


;- EXAMPLE
;- ПРИМЕР

CompilerIf #PB_Compiler_IsMainFile 
  If OpenWindow(0, 0, 0, 700, 500, "", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
    
    Define PBCode$ = ""
    
    Load_INI_File_SHL( "", "" ) ; Load default style. Грузим стиль по умолчанию
    
    If ReadFile(0, #PB_Compiler_File, #PB_File_SharedRead)
      PBCode$ = ReadString(0, #PB_File_IgnoreEOL)
      CloseFile(0)
    EndIf
    
    Define HTML$ = "<head><meta charset='utf-8'></head>"+
                   "<body>"+
                   "<pre style='color:"+SHL_Template("NormalTextColor")+
                   ";background:"+SHL_Template("BackgroundColor")+";display:table;padding:10px;'>" +
                   "<code>"+PB_Syntax_Highlighting( PBCode$ )+"</code>" + 
                   "</pre>"+
                   "</body>"
    
    WebGadget(0, 10, 10, 680, 480, "")
    
    SetGadgetItemText( 0, #PB_Web_HtmlCode, HTML$ )
    
    Repeat
    Until WaitWindowEvent() = #PB_Event_CloseWindow
  EndIf

CompilerEndIf

Отредактировано Webarion (10.06.2023 02:29:30)

0


Вы здесь » PureBasic - форум » PureBasic для Windows » CHM для новичка