Menüfunktionen für Blitz3D über Purebasic
Übersicht BlitzBasic Blitz3D
mpzBetreff: Menüfunktionen für Blitz3D über Purebasic |
Mo, Jan 19, 2004 18:10 Antworten mit Zitat |
|
---|---|---|
Hallo Leute,
ich habe mir vor ein paar Tagen ein altes Projekt rausgeholt und wollte es neu programmieren. Ich möchte aus Bildern 3D Objekte erstellen. Um für den Editor eine vernüftiges Menü zu erstellen, wollte ich über purebasic eine Menü.dll Datei erstellen. Jetzt die Frage: Wer hat schon Menüfunktionen oder ander Sachen in Purebasic erstellt und kann mir Demo Sourcen zur Verfügung stellen? Das Rad muss ja nicht immer neu erfunden werden. Die bisherigen Menüsystem gefalllen mir nicht besonders, daher wollte ich was Eigenes erstellen. Gruß Michael |
||
OJay |
Mo, Jan 19, 2004 18:54 Antworten mit Zitat |
|
---|---|---|
wenn dir dieses menü gefällt, dann ist diese gui das richtige für dich. | ||
mpz |
Mo, Jan 19, 2004 19:28 Antworten mit Zitat |
|
---|---|---|
Diese Gui ist sicherlich nicht schlecht. Es gibt aber gerade im Purebasic einige Funktionen die ich gerne benutzen möchte (dafür ist die 3D unterstützung von Blitz3D natürlich viel besser). Daher meine Frage ob schon jemand etwas ähliches probiert hat. Es ist einfach leichter in Purebasic kleine Eingabefenster etc. zu erstellen. Ich hatte mich aber noch nicht mit der Übergabe der Parameteraufrufe von DLL etc. beschäftigt. Also benötige ich noch kleine Tips. Sonst werde ich wohl die nächsten Tage damit verbringen dürfen...
Gruß Michael |
||
Jan_Ehemaliger Admin |
Mo, Jan 19, 2004 22:03 Antworten mit Zitat |
|
---|---|---|
Blitzsys? | ||
between angels and insects |
INpac |
Di, Jan 20, 2004 18:24 Antworten mit Zitat |
|
---|---|---|
ST hatte mal ein tutorial zu sowas geschrieben:
http://www.shadowturtle.de/sit...n&adm= |
||
mpz |
Di, Jan 20, 2004 18:28 Antworten mit Zitat |
|
---|---|---|
So,
meine ersten Schritte mit DLL Erzeugung und Purebasic habe ich schon hinter mir. ;Beispiel in Blitzbasic AppTitle("DLL Demo") CallDLL("purebasic.dll","TryIt") WaitKey() End() ;Beispiel in Purebasic mit ShareDLL als DLL erzeugt: ProcedureDLL TryIt() OpenWindow(1,300,300,300,200,#PB_WINDOW_SYSTEMMENU,"TryIt") Repeat:Until WaitWindowEvent()=#PB_Event_CloseWindow CloseWindow(1) EndProcedure Es wird hierbei einfach nur eine zusätzliches Fenster erzeugt. Jetzt meine Frage: Ich kann zware mit den Create Bank Befehlen Daten Austauschen, diese kommen aber in Purebasic nicht an, bzw. nicht zurück. Also die große frage weiss jemand wie?!? mBankIn = CreateBank(4) mBankOut = CreateBank(4) CallDLL("purebasic.dll","TryIt",mBankIn,mBankOut) und nu??? Gruß Michael |
||
mpz |
Mi, Jan 21, 2004 12:46 Antworten mit Zitat |
|
---|---|---|
Nach einigem wühlen habe ich einen guten Beispiel Code gefunden. http://www.blitzbasic.com/code...p?code=403
Ma sehen was man daraus machen kann und ob ich dann auch ein Beispiel in Deutsch veröffendliche... Gruß Michael |
||
mpz |
Mi, Jan 21, 2004 17:09 Antworten mit Zitat |
|
---|---|---|
So, wen es interssiert, erstes Beispiel ist fertig:
Blitzbasic 3D: AppTitle("DLL Demo") dll$="purebasic.dll" mBankIn = CreateBank(5) ; Größe wie Ihr wollt und braucht mBankOut = CreateBank(5) ; Größe wie Ihr wollt und braucht result = CallDLL (dll$, "TryIt", mBankIn, mBankOut) Print "Result: " + Result + " <" + PeekString$(mBankIn,0) + "> <" + PeekString$(mBankOut,0)+ ">" WaitKey() End() ;sResult$ = PeekString$(mBankOut,0) Zeichen werden ausgelesen ; Null terminated string peek... Function PeekString$(mBankAddr,iBufferOffset = 0) Local sOutStr$ = "",iByte For n = 0 To BankSize(mBankAddr) iByte = PeekByte(mBankAddr,iBufferOffset) If iByte <> 0 sOutStr$ = sOutStr$ + Chr(iByte) Else Exit EndIf iBufferOffset = iBufferOffset + 1 Next Return sOutStr$ End Function Purebasic als ShareDLL: ProcedureDLL TryIt(*in, isize, *out, osize) OpenWindow(1,300,300,300,200,#PB_WINDOW_SYSTEMMENU,"TryIt") Repeat:Until WaitWindowEvent()=#PB_Event_CloseWindow CloseWindow(1) PokeS (*out, "12345") PokeS (*in, "54321") ProcedureReturn isize EndProcedure Es wird ein Fenster über Purebasic geöffnet. Muß dann geschlossen werden und übergibt dann die Größe des Puffers isize(=5) und die beiden Puffer mit "12345" und "54321". Damit läßt sich einiges tun. Gruß Michael |
||
Übersicht BlitzBasic Blitz3D
Powered by phpBB © 2001 - 2006, phpBB Group