Gui mit 2 Button und Textedit , Events und Timer.....
Übersicht BlitzMax, BlitzMax NG Beginners-Corner
funkheldBetreff: Gui mit 2 Button und Textedit , Events und Timer..... |
Fr, Aug 12, 2016 8:47 Antworten mit Zitat |
|
---|---|---|
Hallo, guten Tag.
Ich habe hier schon mehrere Guis angeschaut. Die sind aber immer so geschrieben, das ich meine Fragen da nicht so raussuchen kann. Ich möchte eine Gui anschauen zb mit mehreren Button und ein Textedit. Ein Button schreibt etwas hinein un der der andere Button löscht es. Ich komme mit den Events und Events nicht so recht klar und auch den Timer , der irgendwie eine Rolle da drin spielt, aber welche ? Danke. Gruss |
||
Midimaster |
Fr, Aug 12, 2016 9:34 Antworten mit Zitat |
|
---|---|---|
Ein MaxGui-Beispiel oder denktst Du an eine eigene GUI?
sowas? BlitzMax: [AUSKLAPPEN] SuperStrict |
||
Mathias-Kwiatkowski |
Fr, Aug 12, 2016 13:27 Antworten mit Zitat |
|
---|---|---|
er meint schon die maxgui
also grundlegend gibt es zum thema maxgui sehr viel stoff selbst die eigene doku ist gut gelungen. hier im forum wirst du 1000 prozent fündig desweiteren schau mal im bmax example ordner da gibt es nahezu zu jedem modul auch ein bsp dazu startest du mal maxide standart rechts im treeview klickst du auf modul sorce dann z.b. auf threads.mod dann auf doc und da haste bsp's. oder soll ich dir gleich ein gui server code basteln und hier posten?^^ |
||
Skype: Anarchie1984
http://projektworks.de/maxbase/ Icq - Erneuert am 21.08.2017 Yahoo - Erneuert am 21.08.2017 |
funkheld |
Sa, Aug 20, 2016 19:58 Antworten mit Zitat |
|
---|---|---|
Wie kann ich hier bitte einen Zeilenumbruch einfügen?
SetGadgetText Text, GadgetText(Text) + wert Kann man mehrere Timer in der Gui anlegen? Danke. GRuss |
||
BladeRunnerModerator |
Sa, Aug 20, 2016 21:16 Antworten mit Zitat |
|
---|---|---|
~VERSCHOBEN~ Dieser Thread passte nicht in das Forum, in dem er ursprünglich gepostet wurde. |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
CO2ehemals "SirMO" |
So, Aug 21, 2016 1:08 Antworten mit Zitat |
|
---|---|---|
Warum möchtest du mehrere Timer anlegen? | ||
mfG, CO²
Sprachen: BlitzMax, C, C++, C#, Java Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti |
Mathias-Kwiatkowski |
So, Aug 21, 2016 6:07 Antworten mit Zitat |
|
---|---|---|
ich hoffe das deine frage so richtig beantwortet ist
Zitat: Wie kann ich hier bitte einen Zeilenumbruch einfügen?
ja kann man mit Code: [AUSKLAPPEN] "~n"
und das mit dem Timer geht ebenso, da haste glaub ich alle event handels... also eine komplette do loop schleife so wie ich sie mir als temp angelegt habe ... ( falls es nich deinen wünschen entspricht, überlese diese antwort einfach ) Code: [AUSKLAPPEN] Local MyTimer:Int = MilliSecs()
Local ZweiterTimer:Int = Millisecs() CreateTimer(60) Repeat Local tmpGadget:Tgadget If MilliSecs() - MyTimer >= 1000 * 3 Then 'Hier kann man nun alle 3 sekunden was ausüben MyTimer = MilliSecs() EndIf If MilliSecs() - ZweiterTimer >= 1000 * 5 Then 'Hier kann man nun alle 5 sekunden was ausüben ZweiterTimer = MilliSecs() EndIf Select WaitEvent() Case EVENT_GADGETSELECT tmpGadget = TGadget(EventSource()) Case EVENT_GADGETACTION tmpGadget = TGadget(EventSource()) Case EVENT_TIMERTICK Case EVENT_GADGETPAINT tmpGadget = TGadget(EventSource()) Case EVENT_MOUSEDOWN tmpGadget = TGadget(EventSource()) Case EVENT_MOUSEMOVE tmpGadget = TGadget(EventSource()) Case EVENT_MOUSEUP Case EVENT_WINDOWCLOSE tmpGadget = TGadget(EventSource()) Case EVENT_APPTERMINATE End Case EVENT_MENUACTION tmpGadget = TGadget(EventSource()) End Select Forever |
||
Skype: Anarchie1984
http://projektworks.de/maxbase/ Icq - Erneuert am 21.08.2017 Yahoo - Erneuert am 21.08.2017 |
funkheld |
So, Aug 21, 2016 9:06 Antworten mit Zitat |
|
---|---|---|
Ich wollte nach bestimmmten Timerintervallen bestimmte Aktionen ausführen.
Ich möchte aber die Gui damit nicht ausbremsen. Dein Vorschlag ist eine gute Hilfe. Danke. GRuss |
||
- Zuletzt bearbeitet von funkheld am So, Aug 21, 2016 9:11, insgesamt 2-mal bearbeitet
funkheld |
So, Aug 21, 2016 9:09 Antworten mit Zitat |
|
---|---|---|
Hier kann ich jetzt den Zeilenumbruch machen : CreateTextArea
Hier funktioniert es nicht : CreateTextField , obwohl ich das Fenster gößer mache. Danke. Gruss |
||
DAK |
So, Aug 21, 2016 11:35 Antworten mit Zitat |
|
---|---|---|
Das ist der Hauptunterschied zwischen den Beiden: TextArea ist ein mehrzeiliges TextField. TextFields können üblicherweise nur eine Zeile. | ||
Gewinner der 6. und der 68. BlitzCodeCompo |
funkheld |
So, Aug 21, 2016 11:39 Antworten mit Zitat |
|
---|---|---|
Ahh.., das habe ich nicht rausgefunden.
Danke. Gruss |
||
funkheld |
So, Aug 21, 2016 11:41 Antworten mit Zitat |
|
---|---|---|
was sagt dieses in der Case aus : tmpGadget = TGadget(EventSource()) ?
Ich habe es mal entfernt und es läuft trotzdem ab , was ich rein geschrieben habe. Gruss |
||
Mathias-Kwiatkowski |
So, Aug 21, 2016 11:58 Antworten mit Zitat |
|
---|---|---|
Zitat: Ich wollte nach bestimmmten Timerintervallen bestimmte Aktionen ausführen.
genau das hab ich dir gegeben.... ohne zu warten^^ bzw ohne das prog zu bremsen EDIT: Als beweis kopier den kode, füg ihn in bm ein starte ihn einfach und warte 6 sekunden Code: [AUSKLAPPEN] Import maxgui.drivers
Global Window:TGadget = CreateWindow("Test", 0, 0, 320, 220, Desktop(), WINDOW_TITLEBAR) Global Label1:TGadget = CreateLabel("", 5, 5, 100, 20, window) Global Label2:TGadget = CreateLabel("", 5, 25, 100, 20, window) Local MyTimer:Int = MilliSecs() Local ZweiterTimer:Int = Millisecs() CreateTimer(60) Global Up1:Int, Up2:Int Repeat Local tmpGadget:Tgadget If MilliSecs() - MyTimer >= 1000 * 3 Then Up1 = Up1 + 1 SetGadgetText Label1, "Alle 3 Sek 1 dazu: " + Up1 MyTimer = MilliSecs() EndIf If MilliSecs() - ZweiterTimer >= 1000 * 5 Then Up2 = Up2 + 1 SetGadgetText Label2, "Alle 5 Sek 1 dazu: " + Up2 ZweiterTimer = MilliSecs() EndIf Select WaitEvent() Case EVENT_GADGETSELECT tmpGadget = TGadget(EventSource()) Case EVENT_GADGETACTION tmpGadget = TGadget(EventSource()) Case EVENT_TIMERTICK Case EVENT_GADGETPAINT tmpGadget = TGadget(EventSource()) Case EVENT_MOUSEDOWN tmpGadget = TGadget(EventSource()) Case EVENT_MOUSEMOVE tmpGadget = TGadget(EventSource()) Case EVENT_MOUSEUP Case EVENT_WINDOWCLOSE tmpGadget = TGadget(EventSource()) If tmpGadget = Window Then End Case EVENT_APPTERMINATE End Case EVENT_MENUACTION tmpGadget = TGadget(EventSource()) End Select Forever |
||
Skype: Anarchie1984
http://projektworks.de/maxbase/ Icq - Erneuert am 21.08.2017 Yahoo - Erneuert am 21.08.2017 |
- Zuletzt bearbeitet von Mathias-Kwiatkowski am So, Aug 21, 2016 12:03, insgesamt einmal bearbeitet
funkheld |
So, Aug 21, 2016 12:02 Antworten mit Zitat |
|
---|---|---|
Alles klar , danke.
Gruss |
||
Mathias-Kwiatkowski |
So, Aug 21, 2016 12:43 Antworten mit Zitat |
|
---|---|---|
und demnächst bitte vorher den code testen ob er das gewünschte ziel erreicht . den oben der code macht genau das ^^.... du hast dem direkt wiedersprochen. ohne es zu testen ^^. | ||
Skype: Anarchie1984
http://projektworks.de/maxbase/ Icq - Erneuert am 21.08.2017 Yahoo - Erneuert am 21.08.2017 |
BladeRunnerModerator |
So, Aug 21, 2016 15:04 Antworten mit Zitat |
|
---|---|---|
Funkheld hat Folgendes geschrieben: Hier kann ich jetzt den Zeilenumbruch machen : CreateTextArea
Hier funktioniert es nicht : CreateTextField , obwohl ich das Fenster gößer mache. Funkheld hat Folgendes geschrieben: Ahh.., das habe ich nicht rausgefunden.
Dann würde ich Dir ans Herz legen die Hilfe zu lesen, denn da steht: BlitzMax Hilfe hat Folgendes geschrieben: A Text-Field allows the users to enter a single line of text.
[...] Text Areas can disply and optionally allow the editing of multiple lines of text. |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
funkheld |
So, Aug 21, 2016 15:20 Antworten mit Zitat |
|
---|---|---|
Ja, den Code habe ich hier eingebaut und die Daten werden zeitgerecht ausgelesen, vorn vom Sensor und hinten vom Sensor und werden präzise als Linie im Grafikfenster abgebildet. Die vordere Entfernung "grün" auf 0-180 Grad und die hintere Entfernung "rot" von 180-360 Grad. Es wird also die Rundumentfernung von Gegenständen vom Roboter übermittelt zum Programm.
Hier sind 2 Bilder, 1 vom Roboter und 1 Bild von dem Steuerungsprogramm mit Auswertebild. https://www.blitzforum.de/upload/uploads.php Danke. GRuss Code: [AUSKLAPPEN] Strict Import MaxGUI.Drivers Extern "Win32" Function CloseHandle:Int(Handle:Int) Function MapViewOfFile:int Ptr(hFileMappingObject: Int,dwDesiredAccess: Int, dwFileOffsetHigh:Int, dwFileOffsetLow:Int, dwNumberOfBytesToMap:Int) Function UnmapViewOfFile:Int(lpBaseAddress: Byte Ptr) Function CreateFileMappingA:Int(hFile: Int, lpFileMappingAttributes: Byte Ptr,flProtect:Int, dwMaximumSizeHigh:Int, dwMaximumSizeLow:Int, lpName$z) Function GetLastError:Int() Function WinExec(lpCmdLine$z, nCmdShow) End Extern global wert:int global text1:string global mem:TSharedMemory global rot:float global test:int global test1:int global testf:int global zaehler:int mem = New TSharedMemory mem.Open("MyFileMapping",128) delay(100) WinExec Chr$(34) + "d:/blitzmax/esp_filemap_blitzmax.exe" + Chr$(34), 1 delay(100) Const PAGE_READWRITE : Int=4 Const FILE_MAP_WRITE : Int=2 Type TSharedMemory Field _Handle : Int Field _Name : String Field _Size : Int Field _Owner : Int Field _Data : int Ptr Method Delete() Close End Method Method Open:Int(Name: String, Size: Int) Close() _Name = Name _Size = Size ' CreateFileMapping, when called with $FFFFFFFF For the hanlde value, creates a region of shared memory } _Handle = CreateFileMappingA($FFFFFFFF, Null, PAGE_READWRITE, 0,_Size,_Name) If _Handle = 0 Then Return False _Owner = GetLastError() = 0 ' We still need To map a pointer To the handle of the shared memory region _Data= MapViewOfFile(_Handle, FILE_MAP_WRITE, 0, 0, _Size) If Not _Data Close Return False End If Return True End Method Method Close() If _Data UnmapViewOfFile(_Data); _Data=Null End If If _Handle CloseHandle(_Handle) _Handle=0 End If End Method End Type Global Window:TGadget=CreateWindow("esp-filemap",180,20,940,500) Global vor:Tgadget=CreateButton("vor",90,15,40,25,Window) Global links:Tgadget=CreateButton("links",10,40,40,25,Window) Global hlinks:Tgadget=CreateButton("hli",50,40,40,25,Window) Global mitte:Tgadget=CreateButton("mitte",90,40,40,25,Window) Global hrechts:Tgadget=CreateButton("hre",130,40,40,25,Window) Global rechts:Tgadget=CreateButton("rechts",170,40,40,25,Window) Global zur:Tgadget=CreateButton("zur",90,65,40,25,Window) Global ser0:Tgadget=CreateButton("ser0",90,100,40,25,Window) Global ser1:Tgadget=CreateButton("ser1",130,100,40,25,Window) Global sharp:Tgadget=CreateButton("sharp",90,125,40,25,Window) Global v0:Tgadget=CreateButton("v0",190,100,40,25,Window) Global v1:Tgadget=CreateButton("v1",190,125,40,25,Window) Global v2:Tgadget=CreateButton("v2",190,150,40,25,Window) Global killer:Tgadget=CreateButton("cls",377,20,40,25,Window) Global killer1:Tgadget=CreateButton("cls",870,20,40,25,Window) Global text_g:TGadget = CreateTextArea( 270, 20, 100,400, window ) global nmap_edit:Tgadget = CreateCanvas(460,20,400,400,window) ActivateGadget(nmap_edit) Local MyTimer:Int = MilliSecs() Local ZweiterTimer:Int = Millisecs() test1=1 CreateTimer(60) Repeat Local tmpGadget:Tgadget If MilliSecs() - MyTimer >= 400 Then MyTimer = MilliSecs() if test=1 and zaehler < 94 zaehler=zaehler+1 If mem._Owner wert = mem._Data[0] text1=text1+wert+"~n" SetGadgetText(text_g,text1) rot=rot+1.9 endif else test=0 zaehler=0 EndIf endif If MilliSecs() - ZweiterTimer >= 1000 Then ZweiterTimer = MilliSecs() EndIf Select TGadget(EventSource()) Case vor loadstring("http::192.168.2.102/?pin=vor") case links loadstring("http::192.168.2.102/?pin=links") case hlinks loadstring("http::192.168.2.102/?pin=hlinks") case mitte loadstring("http::192.168.2.102/?pin=mitte") case hrechts loadstring("http::192.168.2.102/?pin=hrechts") case rechts loadstring("http::192.168.2.102/?pin=rechts") case zur loadstring("http::192.168.2.102/?pin=zur") case ser0 loadstring("http::192.168.2.102/?pin=ser0") case ser1 loadstring("http::192.168.2.102/?pin=ser1") rot=180 test=1 testf=1 case sharp loadstring("http::192.168.2.102/?pin=sharp") rot=0 test=1 testf=2 case v0 loadstring("http::192.168.2.102/?pin=v0") case v1 loadstring("http::192.168.2.102/?pin=v1") case v2 loadstring("http::192.168.2.102/?pin=v2") Case killer SetGadgetText text_g, "" text1="" case killer1 test1=1 End Select Select WaitEvent() Case EVENT_GADGETSELECT tmpGadget = TGadget(EventSource()) Case EVENT_GADGETACTION tmpGadget = TGadget(EventSource()) Case EVENT_GADGETACTION tmpGadget = TGadget(EventSource()) Case EVENT_TIMERTICK tmpGadget = TGadget(EventSource()) redrawGadget (nmap_edit) Case EVENT_GADGETPAINT tmpGadget = TGadget(EventSource()) SetGraphics (CanvasGraphics(nmap_edit)) setclscolor 255,255,255 if test1=1 then cls test1=0 endif setorigin 200,200 sethandle 0,0 setrotation 0-rot if testf=1 then setcolor 255,0,0 if testf=2 then setcolor 0,255,0 drawline 0,0,0,wert Flip Case EVENT_MOUSEDOWN tmpGadget = TGadget(EventSource()) Case EVENT_MOUSEMOVE tmpGadget = TGadget(EventSource()) Case EVENT_MOUSEUP tmpGadget = TGadget(EventSource()) Case EVENT_WINDOWCLOSE tmpGadget = TGadget(EventSource()) end Case EVENT_APPTERMINATE tmpGadget = TGadget(EventSource()) End Case EVENT_MENUACTION tmpGadget = TGadget(EventSource()) End Select Forever |
||
Mathias-Kwiatkowski |
So, Aug 21, 2016 19:52 Antworten mit Zitat |
|
---|---|---|
jetzt kapier ich erst mal was du mit roboter und mit deinem Sensor am kop hast...
ich fragte mich die ganze zeit was du überhaupt machst... ( roboter = <gedacht> an einem spiel ) wo man mitn robo rum laufen kann oder so ^^. aber da gibts doch einfachere und bessere bzw schnellere dinge als bm oder? |
||
Skype: Anarchie1984
http://projektworks.de/maxbase/ Icq - Erneuert am 21.08.2017 Yahoo - Erneuert am 21.08.2017 |
funkheld |
So, Aug 21, 2016 20:16 Antworten mit Zitat |
|
---|---|---|
Darum habe ich mit BlitzMax angefangen.
Und habe festgestellt es ist schneller. Ich brauche bewegende Grafik und das kann Blitzmax sehr schnell. Natürlich wenn man die Befehle kennt von BlitzMax. Weil die eine andere Wortwahl für bestimmte eigentlich bekannte Durchführungen haben. Ich kenne Purebasic und XProfan beide habe in der Grafik schwierigkeiten und lassen schnell nach wenn man Bewegung reinbringen will in 2D mit Hindernis bzw Farberkennung usw. BlitztMax gefällt mir jetzt am besten... zb sind die Grafikbefehle und andere Befehle nicht anders als wenn man ohne Gui programmiert. Die Modulbauweise hat mich auch überzeugt in der Erweiterung...es ist damit eigentlich ein Spiel ohne Grenzen. Das man "C-Module" einsetzen kann oder einfach "ASM-Module"...gefällt mir. Danke. Gruss |
||
Übersicht BlitzMax, BlitzMax NG Beginners-Corner
Powered by phpBB © 2001 - 2006, phpBB Group