Уроки PureBasic

Categories

Other Sites

Other Sites

Other Sites



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

     

                


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



HTML редактор

Уроки PureBasic

Попытка создания простенького редактора HTML кода на языке PureBasic .
Из функций пока подсветка тегов, возможность их быстрой вставки.

При открытии html файла, в этой директории создается новый файл с новым именем.
Дальнейшее редактирование производится над ним.

Пока не надоест, буду развивать редактор.

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

HTML редактор


Уроки PureBasic

Код реализации для версии PB 4.40 :
;---------------------------------------- Редактор HTML ------------------------------------------------- ; ; PureBasic 4.40 ; ; (c) 2010 - mirashic ;-------------------------------------------------------------------------------------------------------- Enumeration #Window_0 EndEnumeration Enumeration #File_1 #Editor #Web #Open #Template #Save #Refresh #Font_0 #Save_1 #Break_1 #Split #ListIconGadget_2 #ListIconGadget_3 EndEnumeration Global file.s,Nasd.s UsePNGImageDecoder() UseJPEGImageDecoder() IncludeFile "SyntaxhighlightingEditorGadget.pb" IncludeFile "teg.pb" ;---------------Определяем находится ли курсор мышки в пределах данного окна (гаджета)--------- Procedure IsMouseOver(wnd) GetWindowRect_(wnd,re.RECT) GetCursorPos_(pt.POINT) ProcedureReturn PtInRect_(@re, pt\x|(pt\y<<32)) EndProcedure ;---------------------------------------------------------------------------------------------- ;-------Чтение и запись файла в EditorGadget при клике "Открыть"-------------- Procedure OFile(file.s) d=ReadFile(#File_1, file) If d While Eof(#File_1)=0 Text$ = Text$+ReadString(#File_1)+Chr(13)+ Chr(10) Wend CloseFile(#File_1) SetGadgetText(#Editor, Text$) EndIf EndProcedure ;------------------------------------------------------------------------------ OpenWindow(#Window_0, 0, 0, 1010, 800, "HTML редактор", #PB_Window_ScreenCentered) ;SetWindowColor(#Window_0,RGB(255, 255, 255)) EditorGadget (#Editor, 5, 30, 1000, 200 ) SetGadgetFont(#Editor, LoadFont(#Font_0, "Courier New", 10, 16)) ; шрифт 16/272 Courier New ListIconGadget(#ListIconGadget_2, 5, 35, 130, 370, "Теги HTML", 100, #PB_ListIcon_AlwaysShowSelection|#PB_ListIcon_GridLines|#PB_ListIcon_FullRowSelect) ListIconGadget(#ListIconGadget_3, 5, 410,130, 380, "Теги CSS", 100, #PB_ListIcon_AlwaysShowSelection|#PB_ListIcon_GridLines|#PB_ListIcon_FullRowSelect) ;------------------Чтение пути и тегов html, CSS----------------------- ClearGadgetItems(#ListIconGadget_2) ClearGadgetItems(#ListIconGadget_3) If OpenPreferences("теги.pcs") PreferenceGroup("путь") Rep.s = ReadPreferenceString("директория", "Нет") ; чтение старого пути PreferenceGroup("html") ;Rep.s = ReadPreferenceString("путь", "Нет") ; чтение старого пути If ExaminePreferenceKeys() While NextPreferenceKey()>0 keyValue$ = PreferenceKeyValue() AddGadgetItem(#ListIconGadget_2, -1,keyValue$) Wend EndIf PreferenceGroup("css") If ExaminePreferenceKeys() While NextPreferenceKey()>0 keyValue$ = PreferenceKeyValue() AddGadgetItem(#ListIconGadget_3, -1,keyValue$) Wend EndIf ClosePreferences() EndIf ;---------------------------------------------------------------- OFile(Rep.s) ; Открываем старый файл при запуске программы ButtonGadget(#Open, 20, 5, 70, 20, "Открыть") ButtonGadget(#Template, 100, 5, 70, 20, "Шаблон") ;ButtonGadget(#Save, 200, 5, 70, 20, "Сохранить") ButtonGadget(#Refresh, 500, 5, 160, 20, "Обновить браузер") ButtonGadget(222,900, 5,100,20,"Закрыть") ;-------Создаем меню--------- If CreatePopupMenu(1) MenuItem(1,"Отменить") MenuItem(2,"Повторить") MenuBar () MenuItem(3,"Вырезать") MenuItem(4,"Копировать") MenuItem(5,"Вставить") MenuBar () MenuItem(6,"Выделить всё") EndIf ;---------------------------- ProgPath.s=GetPathPart(ProgramFilename()) WebGadget(#Web,5,235,1000,555,Rep.s) SplitterGadget(#Split, 140, 35, 865, 755, #Editor, #Web) ; двиг. панель SetGadgetText(#Web,"file://localhost/"+ProgPath+Rep.s) file.s = Rep.s Repeat Event=WaitWindowEvent() If Event=#WM_RBUTTONUP If IsMouseOver(GadgetID(#Editor)) DisplayPopupMenu(1,WindowID(0)) EndIf EndIf Window=EventWindow() Gadget=EventGadget() Syntax(#Editor) Select Event ;----------------------------------------------------------------------------------- Case #WM_LBUTTONDBLCLK ; обработка события на двойной клик If Gadget = #ListIconGadget_2 Fast$=GetGadgetText(#ListIconGadget_2) SendMessage_(GadgetID(#Editor),#EM_REPLACESEL,0,Fast$) ; запись после курсора EndIf If Gadget = #ListIconGadget_3 Fast$=GetGadgetText(#ListIconGadget_3) SendMessage_(GadgetID(#Editor),#EM_REPLACESEL,0,Fast$) ; запись после курсора EndIf Case #PB_Event_Gadget ;------------------------------------------------------------------------------------ Select EventGadget() Case #Open ; Открываем новый файл при запуске программы DeleteFile(Rep.s) ; удаляем старую запись file.s = OpenFileRequester("Открыть файл","","Все файлы|*.*",1) ; путь к файлу OFile(file.s) Nasd.s= GetFilePart(file.s) ; получаем имя файла DeleteFile(GetPathPart(file.s)+"~"+Nasd.s) ; стираем старый файл перед новой записью (можно строку убрать) OpenFile(0, GetPathPart(file.s)+"~"+Nasd.s) ; создаем файл с изменённым именем в открытой директории FileSeek(0, 0) ; устанавливаем позицию записи WriteStringN(0, GetGadgetText(#Editor)) ; записываем в файл инфу из EditorGadget CloseFile(0) SetGadgetText(#Web,GetPathPart(file.s)+"~"+Nasd.s) ; загружаем в браузер созданный файл ;------------Запись в настройки нового пути-------------------------------- OpenPreferences("теги.pcs") PreferenceGroup("путь") WritePreferenceString("директория",GetPathPart(file.s)+"~"+Nasd.s) ClosePreferences() ;-------------------------------------------------------------- ;Case #Save ;DeleteFile(GetPathPart(file.s)+"~"+Nasd.s) ;OpenFile(0, GetPathPart(file.s)+"~"+Nasd.s) ;FileSeek(0, 0) ;WriteStringN(0, GetGadgetText(#Editor)) ;CloseFile(0) Case #Refresh If OpenPreferences("теги.pcs") PreferenceGroup("путь") Rep.s = ReadPreferenceString("директория", "Нет") ; чтение старого пути PreferenceGroup("html") ClosePreferences() EndIf DeleteFile(Rep.s) OpenFile(0, Rep.s) FileSeek(0, 0) WriteStringN(0, GetGadgetText(#Editor)) CloseFile(0) SetGadgetState(#Web, #PB_Web_Refresh) ; SetGadgetText(#Web, Rep.s) Case 222 OpenWindow(59, 0, 0, 210, 40, "Сохранить изменения перед выходом?", #PB_Window_ScreenCentered) ButtonGadget(#Save_1, 130, 10, 70, 20, "Сохранить") ButtonGadget(#Break_1, 10, 10, 70, 20, "Выйти") Case #Break_1 DeleteFile(GetPathPart(file.s)+"~"+Nasd.s) Break Case #Save_1 If OpenPreferences("теги.pcs") PreferenceGroup("путь") Rep.s = ReadPreferenceString("директория", "Нет") ; чтение старого пути PreferenceGroup("html") ClosePreferences() EndIf DeleteFile(Rep.s) ; DeleteFile(GetPathPart(file.s)+Nasd.s) OpenFile(0, Rep.s) ; OpenFile(0, GetPathPart(file.s)+Nasd.s) FileSeek(0, 0) WriteStringN(0, GetGadgetText(#Editor)) CloseFile(0) Break Case #Template OFile("Template.htm") DeleteFile("~Template.htm") ; стираем старый файл перед новой записью OpenFile(0,"~Template.htm") ; создаем файл с изменённым именем в открытой директории FileSeek(0, 0) ; устанавливаем позицию записи WriteStringN(0, GetGadgetText(#Editor)) ; записываем в файл инфу из EditorGadget CloseFile(0) SetGadgetText(#Web,"file://localhost/"+ProgPath+"~Template.htm") ; загружаем в браузер созданный файл ;------------Запись в настройки нового пути-------------------------------- OpenPreferences("теги.pcs") PreferenceGroup("путь") WritePreferenceString("директория","~Template.htm") ClosePreferences() ;-------------------------------------------------------------- EndSelect EndSelect ;{--------------------- Сохранить/вставить --------------------------------------------- If Event=#PB_Event_Menu Menu=EventMenu() Select Menu Case 1 SendMessage_(GadgetID(#Editor), #EM_UNDO, #Null, #Null) Case 2 SendMessage_(GadgetID(#Editor), #EM_REDO, #Null, #Null) Case 3, 4 SendMessage_(GadgetID(#Editor), #EM_GETSEL, @Min,@Max) If Min<>Max If Min<Max xx=Max-Min Else xx=Min-Max EndIf lpText.s=Space(xx) SendMessage_(GadgetID(#Editor), #EM_GETSELTEXT, #Null, @lpText) SetClipboardText(lpText) If Menu=3 SendMessage_(GadgetID(#Editor),#EM_REPLACESEL,0,@"") EndIf EndIf Case 5 Text.s=GetClipboardText() SendMessage_(GadgetID(#Editor),#EM_REPLACESEL,0,@Text) Case 6 SendMessage_(GadgetID(#Editor),#EM_SETSEL,0,-1) EndSelect EndIf ;}------------------------------------------------------------------------------------- ForEver </plaintext> </div><br><br><br><br> <img src="img/lin.jpg" width="700" height="20" alt="Уроки PureBasic"><br><br><br> Решил не обновлять код, а дописывать новые решения.<br/><br/> Добавил возможность растягивать программу по ширине монитора.<br/> Заменил кнопки на <b>MenuTitle </b>.<br/> Добавил кнопки <b>вперед, назад</b> для браузера.<br/> Куча кнопок, пока не реагируют на действия.<br/><br/> Долго работал над <b>открыть сохранить старый - новый документ</b>. более менее получилось.<br/> Пока программа в разработке, убрал функцию редактировать оригинальный файл.<br/><br/> <b>Редактирую эту страницу данным редактором - если честно, то очень не удобно.</b><br/><br/> Проблема - большая задержка при вводе теста.<br/><br/> Проверил - из за подсветки синтаксиса. Вариант не совсем удачный.<br/><br/> Фукция: <b>Syntax(#Editor)</b><br/><br/> Убрал ее и всё работает, но не интересно.<br/><br/> <center><img src="img/html_Editor_1.png" width="710" height="829" alt="HTML редактор"></center><br><br> <img src="img/lin.jpg" width="700" height="20" alt="Уроки PureBasic"><br> <div class="con3"> <plaintext id="PureBasic"> ;---------------------------------------- Редактор HTML ------------------------------------------------- ; ; PureBasic 4.40 ; ; (c) 2010 - mirashic ;-------------------------------------------------------------------------------------------------------- Enumeration #Window_0 #Window_1 EndEnumeration Enumeration #File_1 #Editor #Web #Open #Template #Save #Refresh #Close #Font_0 #Save_1 #Break_1 #Split #ListIconGadget_2 #ListIconGadget_3 #But_1:#But_2:#But_3:#But_4:#But_5:#But_6:#But_7:#But_8:#But_9:#But_10:#But_11:#But_12:#But_13:#But_27: #But_14:#But_15:#But_16:#But_17:#But_18:#But_19:#But_20:#But_21:#But_22:#But_23:#But_24:#But_25:#But_26: #Cr_Menu_1 #Cr_Menu_2 #Cr_Menu_3 #Cr_Menu_4 #Cr_Menu_5 #Cr_Menu_6 #Cr_Menu_7 #Img_1 #Web_1 #Web_2 #a1 #a2 #a3 #a4 #a5 #a6 EndEnumeration UsePNGImageDecoder() UseJPEGImageDecoder() IncludeFile "SyntaxhighlightingEditorGadget.pb" IncludeFile "teg.pb" ;{---------------Определяем находится ли курсор мышки в пределах данного окна (гаджета)--------- Procedure IsMouseOver(wnd) GetWindowRect_(wnd,re.RECT) GetCursorPos_(pt.POINT) ProcedureReturn PtInRect_(@re, pt\x|(pt\y<<32)) EndProcedure ;}---------------------------------------------------------------------------------------------- ;{-------Чтение и запись файла в EditorGadget при клике "Открыть"-------------- Procedure OFile(file.s) d=ReadFile(#File_1, file) If d While Eof(#File_1)=0 Text$ = Text$+ReadString(#File_1)+Chr(13)+ Chr(10) Wend CloseFile(#File_1) SetGadgetText(#Editor, Text$) EndIf EndProcedure ;}------------------------------------------------------------------------------ ;{---------------------Растягивание программы---------------------------------------- ;Procedure Resize() ;ShowWindow_(WindowID(#Window_0), #SW_MAXIMIZE) ;EndProcedure Procedure WCB(wnd, msg, wParam, lParam) Result = #PB_ProcessPureBasicEvents Select msg Case #WM_SIZE ResizeGadget(#Split,#PB_Ignore,#PB_Ignore, WindowWidth(#Window_0)-165, WindowHeight(#Window_0)-45) EndSelect ProcedureReturn Result EndProcedure ;}----------------------------------------------------------------------------------- CatchImage(1, ?Im1, ?Im1End-?Im1) CatchImage(2, ?Im2, ?Im2End-?Im2) CatchImage(3, ?Im3, ?Im3End-?Im3) CatchImage(4, ?Im4, ?Im4End-?Im4) CatchImage(5, ?Im5, ?Im5End-?Im5) CatchImage(6, ?Im6, ?Im6End-?Im6) OpenWindow(#Window_0, 0, 0, 1010, 800, "HTML редактор",#PB_Window_MinimizeGadget|#PB_Window_MaximizeGadget|#PB_Window_ScreenCentered|#PB_Window_SizeGadget) EditorGadget(#Editor, #Null, #Null, #Null, #Null) SetGadgetFont(#Editor, LoadFont(#Font_0, "Courier New", 10, 16)) ; шрифт 16/272 Courier New ListIconGadget(#ListIconGadget_2, 5, 28, 130, 370, "Теги HTML", 100, #PB_ListIcon_AlwaysShowSelection|#PB_ListIcon_GridLines|#PB_ListIcon_FullRowSelect) ListIconGadget(#ListIconGadget_3, 5, 400,130, 373, "Теги CSS", 100, #PB_ListIcon_AlwaysShowSelection|#PB_ListIcon_GridLines|#PB_ListIcon_FullRowSelect) ;{------------------Чтение пути и тегов html, CSS----------------------- ClearGadgetItems(#ListIconGadget_2) ClearGadgetItems(#ListIconGadget_3) If OpenPreferences("теги.pcs") PreferenceGroup("путь") Rep.s = ReadPreferenceString("директория", "Нет") ; чтение старого пути PreferenceGroup("html") ;Rep.s = ReadPreferenceString("путь", "Нет") ; чтение старого пути If ExaminePreferenceKeys() While NextPreferenceKey()>0 keyValue$ = PreferenceKeyValue() AddGadgetItem(#ListIconGadget_2, -1,keyValue$) Wend EndIf PreferenceGroup("css") If ExaminePreferenceKeys() While NextPreferenceKey()>0 keyValue$ = PreferenceKeyValue() AddGadgetItem(#ListIconGadget_3, -1,keyValue$) Wend EndIf ClosePreferences() EndIf ;}---------------------------------------------------------------- OFile(Rep.s) ; Открываем старый файл при запуске программы If CreateMenu(#Cr_Menu_1,WindowID(#Window_0)) MenuTitle("Файл") MenuItem(#Open,"Открыть") MenuBar() MenuItem(#Template,"Шаблон") MenuBar() MenuItem(1,"Сохранить") MenuBar() MenuItem(2,"Выход") MenuTitle("Настройки") MenuItem(3,"Настр 1") MenuItem(4,"Настр 1") MenuItem(5,"Настр 1") MenuTitle("Справка") MenuItem(6,"О программе") MenuTitle(" ") MenuTitle("Выйти") MenuItem(#Close,"Выйти") EndIf ImageGadget(#Img_1, 10, 2, 180, 25, ImageID(4)) ButtonImageGadget(#Web_1, 650, 0, 25, 25, ImageID(2)) ButtonGadget(#Refresh,680, 0, 110, 25, "Обновить браузер") ButtonImageGadget(#Web_2, 795, 0, 25, 25, ImageID(3)) ButtonGadget(#But_1, 136, 35, 25,25,"br") ButtonGadget(#But_2, 136, 60, 25,25,"b") ButtonGadget(#But_3, 136, 85, 25,25,"div") ButtonGadget(#But_4, 136, 110,25,25,"p") ButtonImageGadget(#But_5, 136, 135,25,25,ImageID(6)) GadgetToolTip(#But_5, "Вставить изображение") ButtonImageGadget(#But_6, 136, 160,25,25,ImageID(5)) GadgetToolTip(#But_6, "Вставить гиперссылка") ButtonGadget(#But_7, 136, 185,25,25,"") ButtonGadget(#But_8, 136, 220,25,25,"h1") ButtonGadget(#But_9, 136, 245,25,25,"h2") ButtonGadget(#But_10, 136, 270,25,25,"h3") ButtonGadget(#But_11, 136, 295,25,25,"h4") ButtonGadget(#But_12, 136, 320,25,25,"h5") ButtonGadget(#But_13, 200, 0,25,25,"") ButtonGadget(#But_14, 225, 0,25,25,"") ButtonGadget(#But_15, 250, 0,25,25,"") ButtonGadget(#But_16, 275, 0,25,25,"") ButtonGadget(#But_17, 300, 0,25,25,"") ButtonGadget(#But_18, 335, 0,25,25,"") ButtonGadget(#But_19, 360, 0,25,25,"") ButtonGadget(#But_20, 385, 0,25,25,"") ButtonGadget(#But_21, 410, 0,25,25,"") ButtonGadget(#But_22, 435, 0,25,25,"") ButtonGadget(#But_23, 470, 0,25,25,"") ButtonGadget(#But_24, 495, 0,25,25,"") ButtonGadget(#But_25, 520, 0,25,25,"") ButtonGadget(#But_26, 545, 0,25,25,"") ;ButtonGadget(#Close, 980, 0,25,25,"X") ButtonImageGadget(#Close, 980, 0, 25, 25, ImageID(1)) ;-------Всплывающее меню--------- If CreatePopupMenu(1) MenuItem(#a1,"Отменить") MenuItem(#a2,"Повторить") MenuBar () MenuItem(#a3,"Вырезать") MenuItem(#a4,"Копировать") MenuItem(#a5,"Вставить") MenuBar () MenuItem(#a6,"Выделить всё") EndIf ;------------------------------- ProgPath.s=GetPathPart(ProgramFilename()) WebGadget(#Web, #Null, #Null, #Null, #Null,Rep.s) SplitterGadget(#Split, 162, 28, WindowWidth(#Window_0)-165, WindowHeight(#Window_0)-55, #Editor, #Web) ; двиг. панель SetGadgetState(#Split, 450) SetGadgetText(#Web,"file://localhost/"+ProgPath+Rep.s) file.s = Rep.s SetWindowCallback(@WCB()) Repeat Event=WaitWindowEvent(10) If Event=#WM_RBUTTONUP If IsMouseOver(GadgetID(#Editor)) DisplayPopupMenu(1,WindowID(0)) EndIf EndIf Window=EventWindow() Gadget=EventGadget() Syntax(#Editor) Select Event ;----------------------------------------------------------------------------------- Case #WM_LBUTTONDBLCLK ; обработка события на двойной клик If Gadget = #ListIconGadget_2 Fast$=GetGadgetText(#ListIconGadget_2) SendMessage_(GadgetID(#Editor),#EM_REPLACESEL,0,Fast$) ; запись после курсора EndIf If Gadget = #ListIconGadget_3 Fast$=GetGadgetText(#ListIconGadget_3) SendMessage_(GadgetID(#Editor),#EM_REPLACESEL,0,Fast$) ; запись после курсора EndIf Case #PB_Event_Gadget ;------------------------------------------------------------------------------------ Select EventGadget() Case #Web_1 SetGadgetState(#Web, #PB_Web_Back) Case #Refresh If OpenPreferences("теги.pcs") PreferenceGroup("путь") Rep.s = ReadPreferenceString("директория", "Нет") ; чтение старого пути ClosePreferences() EndIf DeleteFile(Rep.s) OpenFile(0, Rep.s) FileSeek(0, 0) WriteStringN(0, GetGadgetText(#Editor)) CloseFile(0) SetGadgetState(#Web, #PB_Web_Refresh) Case #Web_2 SetGadgetState(#Web, #PB_Web_Forward) Case #Close OpenWindow(#Window_1, 0, 0, 210, 40, "Сохранить изменения перед выходом?", #PB_Window_ScreenCentered) ButtonGadget(#Save_1, 130, 10, 70, 20, "Сохранить") ButtonGadget(#Break_1,10, 10, 80, 20, "Не сохранять" ) Case #Break_1 DeleteFile(Rep.s) Break Case #Save_1 If OpenPreferences("теги.pcs") PreferenceGroup("путь") Rep.s = ReadPreferenceString("директория", "Нет") ; чтение старого пути ClosePreferences() EndIf DeleteFile(Rep.s) ; DeleteFile(GetPathPart(file.s)+Nasd.s) OpenFile(0, Rep.s) ; OpenFile(0, GetPathPart(file.s)+Nasd.s) FileSeek(0, 0) WriteStringN(0, GetGadgetText(#Editor)) CloseFile(0) Break Case #Template OFile("Template.htm") DeleteFile("~Template.htm") ; стираем старый файл перед новой записью OpenFile(0,"~Template.htm") ; создаем файл с изменённым именем в открытой директории FileSeek(0, 0) ; устанавливаем позицию записи WriteStringN(0, GetGadgetText(#Editor)) ; записываем в файл инфу из EditorGadget CloseFile(0) SetGadgetText(#Web,"file://localhost/"+ProgPath+"~Template.htm") ; загружаем в браузер созданный файл ;------------Запись в настройки нового пути-------------------------------- OpenPreferences("теги.pcs") PreferenceGroup("путь") WritePreferenceString("директория","~Template.htm") ClosePreferences() ;-------------------------------------------------------------- EndSelect EndSelect ;{--------------------- Сохранить/вставить --------------------------------------------- If Event=#PB_Event_Menu Menu=EventMenu() Select Menu Case #a1 SendMessage_(GadgetID(#Editor), #EM_UNDO, #Null, #Null) Case #a2 SendMessage_(GadgetID(#Editor), #EM_REDO, #Null, #Null) Case #a3, #a4 SendMessage_(GadgetID(#Editor), #EM_GETSEL, @Min,@Max) If Min<>Max If Min<Max xx=Max-Min Else xx=Min-Max EndIf lpText.s=Space(xx) SendMessage_(GadgetID(#Editor), #EM_GETSELTEXT, #Null, @lpText) SetClipboardText(lpText) If Menu=#a3 SendMessage_(GadgetID(#Editor),#EM_REPLACESEL,0,@"") EndIf EndIf Case #a5 Text.s=GetClipboardText() SendMessage_(GadgetID(#Editor),#EM_REPLACESEL,0,@Text) Case #a6 SendMessage_(GadgetID(#Editor),#EM_SETSEL,0,-1) ;----------------------------Меню---------------------------------------- Case #Open ; Открываем новый файл при запуске программы DeleteFile(Rep.s) ; удаляем старую запись file.s = OpenFileRequester("Открыть файл","","Все файлы|*.*",1) ; путь к файлу OFile(file.s) Nasd.s= GetFilePart(file.s) ; получаем имя файла DeleteFile(GetPathPart(file.s)+"~"+Nasd.s) ; стираем старый файл перед новой записью (можно строку убрать) OpenFile(0, GetPathPart(file.s)+"~"+Nasd.s) ; создаем файл с изменённым именем в открытой директории FileSeek(0, 0) ; устанавливаем позицию записи WriteStringN(0, GetGadgetText(#Editor)) ; записываем в файл инфу из EditorGadget CloseFile(0) SetGadgetText(#Web,GetPathPart(file.s)+"~"+Nasd.s) ; загружаем в браузер созданный файл ;{------------Запись в настройки нового пути-------------------------------- If OpenPreferences("теги.pcs") PreferenceGroup("путь") WritePreferenceString("директория",GetPathPart(file.s)+"~"+Nasd.s) ClosePreferences() EndIf ;}-------------------------------------------------------------- Case #Template OFile("Template.htm") DeleteFile("~Template.htm") ; стираем старый файл перед новой записью OpenFile(0,"~Template.htm") ; создаем файл с изменённым именем в открытой директории FileSeek(0, 0) ; устанавливаем позицию записи WriteStringN(0, GetGadgetText(#Editor)) ; записываем в файл инфу из EditorGadget CloseFile(0) SetGadgetText(#Web,"file://localhost/"+ProgPath+"~Template.htm") ; загружаем в браузер созданный файл ;------------Запись в настройки нового пути-------------------------------- OpenPreferences("теги.pcs") PreferenceGroup("путь") WritePreferenceString("директория","~Template.htm") ClosePreferences() ;-------------------------------------------------------------- Case #Close OpenWindow(#Window_1, 0, 0, 210, 40, "Сохранить изменения перед выходом?", #PB_Window_ScreenCentered) ButtonGadget(#Save_1, 130, 10, 70, 20, "Сохранить") ButtonGadget(#Break_1,10, 10, 80, 20, "Не сохранять") EndSelect EndIf ;}------------------------------------------------------------------------------------- ForEver DataSection Im1: IncludeBinary "stop.png" Im1End: Im2: IncludeBinary "web_1.png" Im2End: Im3: IncludeBinary "web_2.png" Im3End: Im4: IncludeBinary "лого_1.png" Im4End: Im5: IncludeBinary "linc_1.png" Im5End: Im6: IncludeBinary "img_1.png" Im6End: EndDataSection </plaintext> </div><br><br> <img src="img/lin.jpg" width="700" height="20" alt="Уроки PureBasic"><br><br> <a href="fail/Editor_1.rar">Скачать архив</a><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>