Нужно чтобы окно програмы отображалось на сайте, т. е. в браузере?
Если так, то нужно генерировать HTML код страницы и обрабатывать запросы браузера, примерно как здесь USB градусник с передачей данных через интернет
Вопросы новичка (продолжение…)
Сообщений 421 страница 450 из 990
Поделиться42114.03.2011 23:59:12
Поделиться42215.03.2011 23:30:43
Извеняюсь за вопрос не потеме, а что это было, уже несколько недель форум как будто заснул. Я думал мало-ли, всех поголовно взломали. А тут проснелся вдруг!?
Поделиться42316.03.2011 00:41:27
За это время появилось несколько тем, к примеру
Журнал: ПРОграммист
Музыкальный плеер
Cвернуть все окна
Как запустить фаил из той-же директории WebGadget "index.html"
Поделиться42416.03.2011 22:21:29
Нужно чтобы окно програмы отображалось на сайте, т. е. в браузере?
Если так, то нужно генерировать HTML код страницы и обрабатывать запросы браузера, примерно как здесь USB градусник с передачей данных через интернет
Там должно быть так, что любой человек заходит на сайт и на страничке сайта есть интерфейс (пару кнопок и куда вводить и где будет результат отображаться), вводят текст и нажмают на кнопку и приложение действует там по алгоритму, этот пример в этом поможет? Я всё это время пытался в нём разобраться и не помогу понять там почти ничего, если Вам не трудно объясните пожалуйста, что да как можно сделать.
Поделиться42516.03.2011 22:49:15
Для этого нужно писать программу-сервер, которая будет генерировать WEB-страничку с кнопками, полями ввода текста и т. д., а потом, обрабатывать GET/POST запросы браузера с инфой из этих полей.
Но для этого нужно хорошо знать HTML.
Поделиться42617.03.2011 20:34:11
Пётр, спасибо.
Поделиться42719.03.2011 22:55:24
А скажите, допустим у меня есть папка к которой я знаю путь, а в этой папке есть ещё одна папка имени которой я незнаю. Но она там только одна. Мне надо открыть файл находящийся в папке имени которой я не знаю. Как открыть папку имени которой незнаешь если знаешь её содержимое и то что она в папке только одна?
Поделиться42819.03.2011 23:32:42
Копай в этом направлении:
Directory$ = "C:\" ; Lists all entries in the Windows directory (without the contents of sub-directories) If ExamineDirectory(0, Directory$, "*.*") While NextDirectoryEntry(0) If DirectoryEntryType(0) = #PB_DirectoryEntry_File Type$ = " [File] " Else Type$ = " [Sub-Dir] " EndIf Debug DirectoryEntryName(0) + Type$ + "- Size in byte: " + Str(DirectoryEntrySize(0)) Wend FinishDirectory(0) EndIf
Поделиться42921.03.2011 20:07:05
Мне нужно чтоб программа выполняла определённые действия как только комп подключится к интернету. Как это осуществить?
Поделиться43021.03.2011 20:10:22
Для XP
Procedure.l InternetConnected() Protected dwConnectionTypes.l = #INTERNET_CONNECTION_MODEM + #INTERNET_CONNECTION_LAN + #INTERNET_CONNECTION_PROXY ProcedureReturn InternetGetConnectedState_(@dwConnectionTypes,0) EndProcedure Debug InternetConnected()
Поделиться43121.03.2011 20:40:53
Спасиб, но у меня win7, но я попробовал, тоже идёт
Поделиться43221.03.2011 22:31:31
Проверить наличие доступа в интернет, можно соединившись с любым сайтом, скажем, с wwwgoogle.ru
InitNetwork() Connect=OpenNetworkConnection("www.google.ru",80) If Connect CloseNetworkConnection(Connect) MessageRequester("", "Инет есть", #MB_OK|#MB_ICONINFORMATION) Else MessageRequester("", "Инета нету", #MB_OK|#MB_ICONWARNING) EndIf
Поделиться43329.03.2011 14:23:51
У меня есть программа которая при запуске через какоето время вылетает с ошибкой. Я сделал exeшник и проблема осталась. Но в свойствах в разделе "Совместимость" я поставил галочку "Запускать в совместимости с Win95" и всё заработало. Ну а мой вопрос в том, как в PureBasic запускать код в совместимость с превидущими версиями винды. У меня Win7. Заранее спасибо.
Поделиться43406.04.2011 16:37:15
Поделитесь примером изменения размера окна и гаджета мышкой (окно и гаджет одного размера, окно без рамки)
Поделиться43506.04.2011 16:53:09
Поделитесь примером
Вырезал из Онлайн переводчика, разбирайся...
Enumeration #Window_0 #But EndEnumeration OpenWindow(#Window_0,0,0,200,100,"Онлайн перевод",#PB_Window_ScreenCentered|#PB_Window_Invisible|#PB_Window_BorderLess) SetWindowColor(#Window_0,$473929) ButtonGadget(#But,120,70,70,20,"") HideWindow(#Window_0,0) Repeat Event = HotkeyWaitWindowEvent() mx.l = WindowMouseX(#Window_0) my.l = WindowMouseY(#Window_0) x = WindowWidth(#Window_0) y=WindowHeight(#Window_0) If Event=#PB_Event_SizeWindow ResizeGadget(#But,x-80,y-30,#PB_Ignore,#PB_Ignore) EndIf If ((mx > 0 And mx < x) And (my > y-5 And my < y)) Or ((mx >x-5 And mx < x) And (my > 0 And my < y)) ; растянуть SetCursor_(LoadCursor_(0,#IDC_SIZEALL)) ; курсор стрелка EndIf Select Event Case #WM_LBUTTONDOWN ; перемещение If mx >= 0 And mx <= 350-85 And my >= 0 And my <= 35 ReleaseCapture_() SendMessage_(WindowID(#Window_0), #WM_NCLBUTTONDOWN, #HTCAPTION, 0) EndIf ; растягивание If ((mx > 0 And mx < x) And (my > y-5 And my < y)) Or ((mx >x-5 And mx < x) And (my > 0 And my < y)) ReleaseCapture_() SendMessage_(WindowID(#Window_0), #WM_NCLBUTTONDOWN, #HTBOTTOMRIGHT , 0) EndIf Case #PB_Event_Gadget Select EventGadget() Case #But EndSelect EndSelect ForEver
Отредактировано mirashic (06.04.2011 16:56:42)
Поделиться43606.04.2011 18:04:04
mirashic
Спасибо, почти то, но у меня винда в виртуалке, и пурик ругается на HotkeyWaitWindowEvent, это первое и второе у меня есть события: нажали ПКМ, отпустили ПКМ и мышь на границе окна(гаджета) и самое главное у меня нет SendMessage_
отсюда следует, что мне нужно высчитывать положение мыши и её перемещение, далее ResizeWindow() и ResizeGadget(). Перепробовал всяко, то не растягивается, то мышь улетает на 100 пиксел а окно растягивается на30 пиксел, то ещё чего нибудь, весь мозг сломал, а результата ноль, поэтому и спросил может кто делал подобное
Поделиться43706.04.2011 18:23:36
HotkeyWaitWindowEvent() - это я случайно оставил замени её WaitWindowEvent()
Поделиться43806.04.2011 18:33:35
У меня есть программа которая при запуске через какоето время вылетает с ошибкой.
Запусти прогу в среде PureBasic и при возникновении ошибки, будет отмечена строка в которой она произошла и появится краткое описание ошибки.
я поставил галочку "Запускать в совместимости с Win95" и всё заработало.
Это не решение проблемы - нужно искать ошибку в коде.
Поделиться43906.04.2011 19:00:42
mirashic
Как вариант пойдёт, но нужно иметь возможность тянуть окно за любую сторону, а не как здесь(только за правый нижний угол). Может ещё какие варианты есть?
Поделиться44006.04.2011 19:45:26
Как вариант, нарисовать своё окно (где рамка о фон совпадают) и применить библиотеку: SkinFeature.dll
Тогда можно тянуть за все 4 стороны...
http://purebasic.info/phpBB2/viewtopic.php?t=1465
что то типа: http://purebasic.ucoz.com/77.rar
Отредактировано mirashic (06.04.2011 19:49:51)
Поделиться44106.04.2011 20:34:15
применить библиотеку: SkinFeature.dll
Интересно как её прикрутить к Linux-проге?
Поделиться44206.04.2011 20:36:12
А негде не сказано про Linux ? Я наверно пропустил...
Отредактировано mirashic (06.04.2011 20:37:13)
Поделиться44306.04.2011 21:11:13
А негде не сказано про Linux ?
Косвенный признак
и самое главное у меня нет SendMessage_
Поделиться44410.04.2011 15:44:05
Где в XP хранятся настройки PureBasic, после сбоя пропали все панели инструментов, всё востановил, а панель шаблонов -нет ?
Поделиться44510.04.2011 15:51:46
Где в XP хранятся настройки PureBasic
C:\Documents and Settings\User\Application Data\PureBasic
Поделиться44610.04.2011 15:52:25
Спасибо.
Поделиться44715.04.2011 01:05:11
Запусти прогу в среде PureBasic и при возникновении ошибки, будет отмечена строка в которой она произошла и появится краткое описание ошибки.
Дело в том что ошибки как таковой нет. Программа "не отвечает" и зависает.
Вот программа:
; English forum: ; Author: Franco (updated for PB4.00 by benny) ; Date: 31. December 2004 ; OS: Windows ; Demo: No ; 3D_Example coded by Franco ; based on an initial isometric 3D-code from Deeйm2031 (german forum) ;#PI = 3.1415626 ;Don't know what this is... anyway: ;good visual results for CAD with 36000 Constant.f=360 * 360 ; to be on the save side... ;For gaming: 2.828 -> isometric ;Constant.f = 2 * Sqr(2) Global _sin.f, _cos.f Dim _sin.f(360) Dim _cos.f(360) CameraPosition.f = 18 Procedure d_init3d(ScreenWidth.l,ScreenHeight.l) ; write sin und cos in Array ; Dim _sin.f(360) ; Dim _cos.f(360) Shared _sin(), _cos() For i = 0 To 360 _sin(i) = Sin(i/(180/#PI)) _cos(i) = Cos(i/(180/#PI)) Next i ; Screen stuff... Global ScreenWidth2.l Global ScreenHeight2.l ScreenWidth2.l = Round((ScreenWidth/2),0) ScreenHeight2.l = Round((ScreenHeight/2),0) Global wx.l Global wy.l Global wz.l EndProcedure Procedure.f CalcXRotation(x.f,y.f,z.f) Shared _cos(), _sin() Result.f = _cos(wy) * _cos(wz) * x - _cos(wy) * _sin(wz) * y + _sin(wy) * z ProcedureReturn Result EndProcedure Procedure.f CalcYRotation(x.f,y.f,z.f) Shared _cos(), _sin() Result.f = (_cos(wx) * _sin(wz) + _sin(wx) * _sin(wy) * _cos(wz)) * x + (_cos(wx) * _cos(wz) - _sin(wx) * _sin(wy) * _sin(wz)) * y - _sin(wx) * _cos(wy) * z ProcedureReturn Result EndProcedure Procedure.f CalcZRotation(x.f,y.f,z.f) Shared _cos(), _sin() Result.f = (_sin(wx) * _sin(wz) - _cos(wx) * _sin(wy) * _cos(wz)) *y + (_sin(wx) * _cos(wz) + _cos(wx) * _sin(wy) * _sin(wz)) * y + _cos(wx) * _cos(wy) * z ProcedureReturn Result EndProcedure Procedure CheckXRotation(x.l) If x >= 360 Repeat x - 360 Until x >= 0 And x < 360 EndIf If x < 0 Repeat x + 360 Until x >= 0 And x < 360 EndIf ProcedureReturn x EndProcedure Procedure CheckYRotation(y.l) If y >= 360 Repeat y - 360 Until y >= 0 And y < 360 EndIf If y < 0 Repeat y + 360 Until y >= 0 And y < 360 EndIf ProcedureReturn y EndProcedure Procedure CheckZRotation(z.l) If z >= 360 Repeat z - 360 Until z >= 0 And z < 360 EndIf If z < 0 Repeat z + 360 Until z >= 0 And z < 360 EndIf ProcedureReturn z EndProcedure Procedure d_circle3d(x1.f,y1.f,z1.f,diameter.f) Shared Constant, CameraPosition ; calculate rotation xx.f = CalcXRotation(x1*CameraPosition,y1*CameraPosition,z1*CameraPosition) yy.f = CalcYRotation(x1*CameraPosition,y1*CameraPosition,z1*CameraPosition) zz.f = CalcZRotation(x1*CameraPosition,y1*CameraPosition,z1*CameraPosition) ; 1. convert to 2D coordinates ; 2. draw it... Circle(Round(xx-zz/Constant,0)+ScreenWidth2,Round(yy-zz/Constant,0)+ScreenHeight2, diameter*CameraPosition) EndProcedure Procedure d_line3d(x1.f,y1.f,z1.f,x2.f,y2.f,z2.f) Shared Constant,CameraPosition ; calculate rotation xx.f = CalcXRotation(x1*CameraPosition,y1*CameraPosition,z1*CameraPosition) yy.f = CalcYRotation(x1*CameraPosition,y1*CameraPosition,z1*CameraPosition) zz.f = CalcZRotation(x1*CameraPosition,y1*CameraPosition,z1*CameraPosition) xx2.f = CalcXRotation(x2*CameraPosition,y2*CameraPosition,z2*CameraPosition) yy2.f = CalcYRotation(x2*CameraPosition,y2*CameraPosition,z2*CameraPosition) zz2.f = CalcZRotation(x2*CameraPosition,y2*CameraPosition,z2*CameraPosition) ; 1. convert to 2D coordinates ; 2. draw it... LineXY(Round(xx-zz/Constant,0)+ScreenWidth2,Round(yy-zz/Constant,0)+ScreenHeight2,Round(xx2-zz2/Constant,0)+ScreenWidth2,Round(yy2-zz2/Constant,0)+ScreenHeight2) EndProcedure ;- Init stuff InitSprite() InitMouse() InitKeyboard() d_init3d(1021,716) OpenWindow(1,100,200,750,480,"Test",#PB_Window_SystemMenu) OpenWindowedScreen( WindowID(1),10,10,800,600,1,10,10) ;- main program x.f = 0 y.f = 0 z.f = 0 Start.l = 1 Repeat ExamineMouse() ExamineKeyboard() ; check rotation -> if x, y and z <0 or >360 error wx = CheckXRotation(x) wy = CheckYRotation(y) wz = CheckZRotation(z) ClearScreen(RGB(0,0,0)) StartDrawing(ScreenOutput()) ; DrawingMode: ; 0: Default mode, text is displayed with background, graphics shape are filled ; 1: Set the text background transparent ; 2: Enable the XOr mode (all graphics are XOR'ed with current background) ; 4: Enable the outlined shape. Circle, Box etc... will be only outlined, no more filled. DrawingMode(0) ; set the circle on top of the component FrontColor(RGB(255,0,0)) d_circle3d(0,0,4,0.2) FrontColor(RGB(255,255,255)) ; IC SOL18-P-300-1.27 Toshiba ULN2803 ; dimensions in millimeter ; body top d_line3d( -15.775, 3.75, 1.15,-25.775, 3.75, 1.15) d_line3d( -15.775,-3.75, 1.15,-25.775,-3.75, 1.15) d_line3d( -25.775, 3.75, 1.15,-25.775,-3.75, 1.15) d_line3d( -15.775, 3.75, 1.15,-15.775,-3.75, 1.15) ;body bottom d_line3d( -15.775, 3.75,-1.15,-25.775, 3.75,-1.15) d_line3d( -15.775,-3.75,-1.15,-25.775,-3.75,-1.15) d_line3d( -25.775, 3.75,-1.15,-25.775,-3.75,-1.15) d_line3d( -15.775, 3.75,-1.15,-15.775,-3.75,-1.15) ;body z corners d_line3d( -25.775, 3.75, 1.15,-25.775, 3.75,-1.15) d_line3d( -15.775, 3.75, 1.15,-15.775, 3.75,-1.15) d_line3d( -25.775,-3.75, 1.15,-25.775,-3.75,-1.15) d_line3d( -15.775,-3.75, 1.15,-15.775,-3.75,-1.15) ; IC SOL18-P-300-1.27 Toshiba ULN2803 ; dimensions in millimeter ; body top d_line3d( -5.775, 3.75, 1.15, 5.775, 3.75, 1.15) d_line3d( -5.775,-3.75, 1.15, 5.775,-3.75, 1.15) d_line3d( 5.775, 3.75, 1.15, 5.775,-3.75, 1.15) d_line3d( -5.775, 3.75, 1.15,-5.775,-3.75, 1.15) ;body bottom d_line3d( -5.775, 3.75,-1.15, 5.775, 3.75,-1.15) d_line3d( -5.775,-3.75,-1.15, 5.775,-3.75,-1.15) d_line3d( 5.775, 3.75,-1.15, 5.775,-3.75,-1.15) d_line3d( -5.775, 3.75,-1.15,-5.775,-3.75,-1.15) ;body z corners d_line3d( 5.775, 3.75, 1.15, 5.775, 3.75,-1.15) d_line3d( -5.775, 3.75, 1.15,-5.775, 3.75,-1.15) d_line3d( 5.775,-3.75, 1.15, 5.775,-3.75,-1.15) d_line3d( -5.775,-3.75, 1.15,-5.775,-3.75,-1.15) ;lead # 5 d_line3d( 0.24, 3.75, 0.14,-0.24, 3.75, 0.14) d_line3d( 0.24, 3.75,-0.14,-0.24, 3.75,-0.14) d_line3d( 0.24, 3.75, 0.14, 0.24, 3.75,-0.14) d_line3d( -0.24, 3.75, 0.14,-0.24, 3.75,-0.14) d_line3d( 0.24, 3.75, 0.14, 0.24, 4.49, 0.14) d_line3d( -0.24, 3.75, 0.14,-0.24, 4.49, 0.14) d_line3d( 0.24, 3.75,-0.14, 0.24, 4.31,-0.14) d_line3d( -0.24, 3.75,-0.14,-0.24, 4.31,-0.14) d_line3d( 0.24, 4.49, 0.14, 0.24, 4.49,-1.22) d_line3d( -0.24, 4.49, 0.14,-0.24, 4.49,-1.22) d_line3d( 0.24, 4.31,-0.14, 0.24, 4.31,-1.50) d_line3d( -0.24, 4.31,-0.14,-0.24, 4.31,-1.50) d_line3d( 0.24, 4.49, 0.14,-0.24, 4.49, 0.14) d_line3d( 0.24, 3.75,-0.14,-0.24, 3.75,-0.14) d_line3d( 0.24, 4.49,-1.22, 0.24, 5.15,-1.22) d_line3d( -0.24, 4.49,-1.22,-0.24, 5.15,-1.22) d_line3d( 0.24, 4.31,-1.50, 0.24, 5.15,-1.50) d_line3d( -0.24, 4.31,-1.50,-0.24, 5.15,-1.50) d_line3d( 0.24, 5.15,-1.22,-0.24, 5.15,-1.22) d_line3d( 0.24, 5.15,-1.50,-0.24, 5.15,-1.50) d_line3d( 0.24, 5.15,-1.22, 0.24, 5.15,-1.50) d_line3d( -0.24, 5.15,-1.22,-0.24, 5.15,-1.50) StopDrawing() FlipBuffers() ExamineKeyboard() If KeyboardPushed(#PB_Key_Home) Constant = Constant * 1.02 SetWindowText_(WindowID(1),StrF(Constant)) EndIf If KeyboardPushed(#PB_Key_End) Constant = Constant * 0.98 SetWindowText_(WindowID(1),StrF(Constant)) EndIf If KeyboardPushed(#PB_Key_PageUp) CameraPosition = CameraPosition * 1.02 EndIf If KeyboardPushed(#PB_Key_PageDown) CameraPosition = CameraPosition * 0.98 EndIf If KeyboardPushed(#PB_Key_Up) x = x - 1 ;normally it should be y EndIf If KeyboardPushed(#PB_Key_Down) x = x + 1 ;normally it should be y EndIf If KeyboardPushed(#PB_Key_Right) y = y - 1 ;normally it should be x EndIf If KeyboardPushed(#PB_Key_Left) y = y + 1 ;normally it should be x EndIf If KeyboardPushed(#PB_Key_Delete) z = z - 1 EndIf If KeyboardPushed(#PB_Key_Insert) z = z + 1 EndIf If KeyboardPushed(#PB_Key_F1) x = 0 y = 0 z = 0 EndIf SetWindowText_(WindowID(1)," X: " + Str(wx) + " Y: " + Str(wy) + " Z: " + Str(wz) + " SinX: " + StrF(_sin(wx),2) + " SinY: " + StrF(_sin(wy),2) + " SinZ: " + StrF(_sin(wz),2) + " CosX: " + StrF(_cos(wx),2) + " CosY: " + StrF(_cos(wy),2) + " CosZ: " + StrF(_cos(wz),2) + " Constant: " + StrF(Constant)) Until MouseButton(1) Or KeyboardPushed(#PB_Key_Escape) End
Поделиться44815.04.2011 02:20:00
Подскажите пожалуйста, вот у меня программа
OpenWindow(0, 0, 0, 270, 140, "ListViewGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) ListViewGadget(0, 10, 10, 250, 120) AddGadgetItem (0, 0, "1") AddGadgetItem (0, 1, "2") Repeat event=WindowEvent() If event=#PB_Event_Gadget And EventType() =#PB_EventType_LeftDoubleClick Debug "был клик на одну штуку, а как определить на какую???" EndIf Until event =#PB_Event_CloseWindow
которая выводит список. Я например хочу кликнуть на один из пунктов. Но я незнаю как проработать сабытие. Представленное событие говорит о том что я нажал что то. А как определить что я нажал?
Поделиться44915.04.2011 08:21:10
Я например хочу кликнуть на один из пунктов
#List=1 OpenWindow(0, 0, 0, 270, 140, "ListViewGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) ListViewGadget(#List, 10, 10, 250, 120) AddGadgetItem (#List,-1, "1") AddGadgetItem (#List,-1, "2") AddGadgetItem (#List,-1, "3") AddGadgetItem (#List,-1, "4") Repeat Event = WaitWindowEvent() Select Event Case #PB_Event_Gadget Select EventGadget() Case #List Debug GetGadgetText(#List) EndSelect EndSelect If Event = #PB_Event_CloseWindow Break EndIf ForEver
Поделиться45015.04.2011 11:16:04
Дело в том что ошибки как таковой нет. Программа "не отвечает" и зависает.
У меня она почему-то не висла.
Возможно что виснет в цикле одной из процедур при некоторых условиях.
А как определить что я нажал?
Для этого есть функции GetGadgetState чтобы узнать позицию пункта и GetGadgetText чтобы получить текст пункта, по которому кликнули.
Похожие темы
Какая версия? | OffTop | 03.10.2021 |
Мне постоянно пищет вот это | Вопросы по PureBasic | 14.10.2011 |
Размер экрана в пикселях | Вопросы по PureBasic | 13.02.2011 |
консоль | Вопросы по PureBasic | 19.03.2015 |
Полноэкранные приложения на purebasic | Вопросы по PureBasic | 08.03.2011 |