MultiTypes/Objects?

Übersicht BlitzMax, BlitzMax NG Allgemein

Neue Antwort erstellen

 

#Reaper

Newsposter

Betreff: MultiTypes/Objects?

BeitragSa, Jul 14, 2007 23:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Also ich habe jetzt schon mehrmals rumprobiert, aber noch nichts hinbekommen.
Und zwar versuche/brauche ich eine Variable(Array), welche alle verschiedenen Objecte aufnehmen kann. Also das man in dieser Variable sowohl ein TImage, ein TStream oder sonst was reinstopfen kann Wink
:Object funktioniert nicht so wirklich, Methoden von z.B. Vertex sein BNetEx-Modul wie .Init() funktionieren dann nicht mehr.
FOODy hat hier ein Modul reingestellt, welches (scheinbar) sowas unterstützten könnte, aber das Beispeil dort verstehe ich nicht so wirklich :-/
Oder gibt es auch eine "normale" Methode?
AMD Athlon 64 3500+, ATI AX800 Pro/TD, 2048 MB DRR 400 von Infineon, ♥RIP♥ (2005 - Juli 2015 -> sic!)
Blitz3D, BlitzMax, MaxGUI, Monkey X; Win7

Vertex

BeitragSo, Jul 15, 2007 2:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Da ich noch nüchtern bin Sad :
Code: [AUSKLAPPEN]
SuperStrict

Framework BRL.Blitz
Import BRL.Map
Import BRL.Pixmap
Import Vertex.BNetEx

Local MyObjects:Object[]

MyObjects = New Object[3]
MyObjects[0] = New TMap
MyObjects[1] = New TPixmap
MyObjects[2] = New TUDPStream

WriteStdout("Succeed: " + TUDPStream(MyObjects[2]).Init() + "~n")
End


Klappt wunderbar.
vertex.dreamfall.at | GitHub
 

#Reaper

Newsposter

BeitragSo, Jul 15, 2007 17:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Yeah!
Vielen Dank! Very Happy
AMD Athlon 64 3500+, ATI AX800 Pro/TD, 2048 MB DRR 400 von Infineon, ♥RIP♥ (2005 - Juli 2015 -> sic!)
Blitz3D, BlitzMax, MaxGUI, Monkey X; Win7
 

#Reaper

Newsposter

BeitragSa, Feb 16, 2008 23:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Der Thread ist zwar nun schon älter, aber ich push ihn dennoch mal wieder Wink

Ich habe eine Funktion, welche einen entweder ein String, ein Array oder eine Zahl (Integer) zurück geben kann. Leider habe ich das Problem, dass BMax rummeckert, dass er ein Integer nicht in ein Object convertieren kann. Mache ich was falsch, oder geht das nicht?
Wäre sehr nützlich, wenn das auch ginge :-/

Danke fürs lesen! Wink

MfG
#Reaper Smile
AMD Athlon 64 3500+, ATI AX800 Pro/TD, 2048 MB DRR 400 von Infineon, ♥RIP♥ (2005 - Juli 2015 -> sic!)
Blitz3D, BlitzMax, MaxGUI, Monkey X; Win7
 

c64

BeitragSa, Feb 16, 2008 23:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Wandel den Integer doch in ein String.

Code: [AUSKLAPPEN]

Local myInt:Int      = 100
Local myObj:TObj   = New Tobj

Local ObjArr:Object[5]
   
     objArr[1]=String(myInt)
     objArr[2]=myObj
         


Type Tobj
EndType


mfg

C64
Betreten verboten! Kinder haften für ihre Eltern!
 

ChristianK

BeitragSa, Feb 16, 2008 23:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Das Problem ist, dass die Grund-Datentypen Int, Short, Long, Float und Double die einzigen sind, die nicht von Object abgeleitet wurden. Ich würde daher den Umweg über einen eigenen Type ( z.B. TInteger ) machen.

Code: [AUSKLAPPEN]
SuperStrict

Framework brl.blitz
Import brl.standardio

Type TInteger
   Field intValue:Int
End Type

Const GIMME_ARRAY:Int = 1, GIMME_STRING:Int = 2, GIMME_ZAHL:Int = 3

Function Gimme:Object( wasdenn:Int )
   Select wasdenn
   
      Case GIMME_ARRAY
         Local array:Int[] = [ 1, 2, 3, 4 ]
         Return array
         
      Case GIMME_STRING
         Local text:String = "Was willst du mehr?"
         Return text
         
      Case GIMME_ZAHL
         Local zahl:TInteger = New TInteger
         zahl.intValue = 1234
         Return zahl
         
   End Select
   
   Return Null
End Function

Local array:Int[] = Int[]( Gimme( GIMME_ARRAY ) )
Local text:String = String( Gimme( GIMME_STRING ) )
Local zahl:Int = TInteger( Gimme( GIMME_ZAHL ) ).intValue
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT
 

#Reaper

Newsposter

BeitragSo, Feb 17, 2008 0:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Naja, in einem String hatte ich es ja bislang (außer das Array als Array).
Schade, das es nicht auf einem normalen Weg geht. Das andere ist dann doch wieder etwas zu umständlich am Ende.

Aber danke für eure Hilfe. Smile
AMD Athlon 64 3500+, ATI AX800 Pro/TD, 2048 MB DRR 400 von Infineon, ♥RIP♥ (2005 - Juli 2015 -> sic!)
Blitz3D, BlitzMax, MaxGUI, Monkey X; Win7
 

Dreamora

BeitragSo, Feb 17, 2008 0:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Nicht wirklich.
Der grund ist recht simpel: wärs von grund auf ein objekt, würde die performance darunter leiden, dann wär BM nicht auf C# level bzw. bei reiner mathe auf C / C++ level
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
  • Zuletzt bearbeitet von Dreamora am So, Feb 17, 2008 2:05, insgesamt einmal bearbeitet
 

#Reaper

Newsposter

BeitragSo, Feb 17, 2008 1:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Oh, ok. Dann sollten wir alle lieber drüber Glücklich sein^^

Danke, wieder etwas dazugelernt Smile
AMD Athlon 64 3500+, ATI AX800 Pro/TD, 2048 MB DRR 400 von Infineon, ♥RIP♥ (2005 - Juli 2015 -> sic!)
Blitz3D, BlitzMax, MaxGUI, Monkey X; Win7

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group