Frage zu Types!
Übersicht

HeikoBetreff: Frage zu Types! |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
als allererstes mal dieser Beispielcode.....
Code: [AUSKLAPPEN] Type Posi
Field x# = 1.0, y# = 2.0, z# = 3.0 End Type und folgende Funktion.... Code: [AUSKLAPPEN] Function FFunction(tab.Posi)
DLL_FFunction(tab\x#, tab\y#, tab\z#) End Function meine Frage dazu. Wie funktioniert das Ganze? Wenn ich der Funktion "FFunction" irgendeinen wert übergebe, was passiert dann mit den vorher definierten Felder im Type oben? Da sind ja schon vorgegebene Werte drin. Oder übergibt man da einfach nichts, sondern automatisch die vorher definierten werte? Entschuldigt, ist sicher noobisch, aber types waren noch nie meine Stärke, zumindest in dieser Form nicht. |
||
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also
1. Zitat: Type Posi
das geht nicht, alle Werte sind 0.0, mit vorher definierte geht das also nicht, selbst wenn BB nicht nörgelt sind die Werte = 0!
Field x# = 1.0, y# = 2.0, z# = 3.0 End Type 2. Wenn die Function diese Werte ändert dann ist das auch geändert! Zitat: Oder übergibt man da einfach nichts, sondern automatisch die vorher definierten werte?
Du übergibst einen Type und die aktuellen Werte werden dann evt in deiner Function geändert |
||
[BB2D | BB3D | BB+]
|
Heiko |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
mmmm ich habe das als beispiel genannt, weil die function aus einem bb wrapper stammt, und dort anders heißt, aber genau das habe ich nämlich nicht kapiert.
aber kann man in einer typedefinition prinzipiell keiner werte an die variablen übergeben? wenn x#,y#,z# dann in jedem fall 0 wären, was für einen sinn hätte dann die von mir gepostete function? wenn man Code: [AUSKLAPPEN] Function FFunction(tab.Posi)
DLL_FFunction(tab\x#, tab\y#, tab\z#) End Function nutzen will, und dann FFunction(irgendeinenwert) nutzt, wäre das völlig sinnfrei, oder. verstehe ich es richtig, dass eigentlich nur (tab\x#, tab\y#, tab\z#) alles mit 0 werten gefüllt wird? |
||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich versteh nicht ganz was du erreichen möchtest... in der Type-Definition kannst du zwar beliebige Werte angeben ohne das es einen Fehler gibt, aber die werden nicht an einen neu erzeugtem Eintrag weitergereicht.
Deine DDL Funktion erhält drei Float zahlen - wie die gerade auch immer in dem Type-Eintrag aussehen mögen - wenn du nichts anderes angegeben hast eben 0.0 ... |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
Heiko |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
das heißt
diese funktion Code: [AUSKLAPPEN] Function FFunction(tab.Posi)
DLL_FFunction(tab\x#, tab\y#, tab\z#) End Function mit den types von oben würde bei benutzung als FFunction () immer DLL_FFunction(0.0,0.0,0.0) hervorrufen, richtig. zwischendurch werden die variablen nicht geändert meinerseits, es existiert nur diese type deklaration sowie diese funktion. hab ich das richtig verstanden? |
||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ja, du hast es erfasst. Lässt sich ja auch experimentell nachweisen:
Code: [AUSKLAPPEN] Type Posi
Field x# = 1.0, y# = 2.0, z# = 3.0 End Type Local t.Posi = New Posi FFunction(t) WaitKey() End Function FFunction(tab.Posi) ;DLL_FFunction(tab\x#, tab\y#, tab\z#) Print tab\x+", "+tab\y+", "+tab\z End Function |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group