Menüfunktionen für Blitz3D über Purebasic

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

 

mpz

Betreff: Menüfunktionen für Blitz3D über Purebasic

BeitragMo, Jan 19, 2004 18:10
Antworten mit Zitat
Benutzer-Profile anzeigen
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 Very Happy
 

OJay

BeitragMo, Jan 19, 2004 18:54
Antworten mit Zitat
Benutzer-Profile anzeigen
wenn dir dieses menü gefällt, dann ist diese gui das richtige für dich. Wink
 

mpz

BeitragMo, Jan 19, 2004 19:28
Antworten mit Zitat
Benutzer-Profile anzeigen
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 Razz

Jan_

Ehemaliger Admin

BeitragMo, Jan 19, 2004 22:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Blitzsys?
between angels and insects
 

INpac

BeitragDi, Jan 20, 2004 18:24
Antworten mit Zitat
Benutzer-Profile anzeigen
ST hatte mal ein tutorial zu sowas geschrieben:
http://www.shadowturtle.de/sit...n&adm=
 

mpz

BeitragDi, Jan 20, 2004 18:28
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragMi, Jan 21, 2004 12:46
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragMi, Jan 21, 2004 17:09
Antworten mit Zitat
Benutzer-Profile anzeigen
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

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group