Object (aus SoftPixel Engine)
Übersicht

PacManiBetreff: Object (aus SoftPixel Engine) |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Den Fehler habe ich auch. Parameter einfach umbenannt in "Obj". Anscheinend ist "Object" schon definiert?
~AUFSPALTUNG~ Von hier. Xeres. |
||
![]() |
Chester |
![]() Antworten mit Zitat ![]() |
---|---|---|
Object![]() |
||
PacMani |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
und was sich dahinter verbirgt, ist ja unheimlich praktisch ![]() ![]() |
||
![]() |
Propellator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Weils unnötig ist, du kannst ja einfach das Objekt rumgeben. | ||
Propellator - Alles andere ist irrelephant.
Elefanten sind die Könige der Antarktis. |
PacMani |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Wenn ich aber nur den Handle habe, nicht. | ||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Dann hast Du fehlerhaft programmiert, denn eigentlich solltest Du ja alle Objekte die zur Laufzeit eexistieren selbst erstellt haben und daher auch ihren Typ kennen. | ||
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 |
PacMani |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ja, unschön ist das schon irgendwo. Ich merke mir aber zum Beispiel bei einem Menüsystem nur den Handle des angeklickten Buttons, damit ich in einer Select-Case-Anweisung je nach Button eine zugehörige Aktion aufrufen kann. Die Button-"Instanz" brauche ich dazu aber nicht - falls doch, habe ich nun aber zwei Möglichkeiten: Entweder die Instanz ablegen oder mit Object die Instanz zum Handle holen.
Letzteres ist aber in der Tat unschön. Ehrlich gesagt meinte ich auch eher, warum so etwas wie Handle ![]() |
||
![]() |
Propellator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du musst dir nicht mal eigene IDs berechnen, das Objekt selbst ist schon die ID, afair. Jedenfalls vermute ich dem so, wäre es nicht, dann ist BlitzBasic echt eine seltsame Sprache. | ||
Propellator - Alles andere ist irrelephant.
Elefanten sind die Könige der Antarktis. |
PacMani |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ja, du kannst aber keine Types als gegenprüfenden Wert in Select...Case-Anweisungen nutzen. | ||
![]() |
Chester |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das Handle/Object-Prinzip ist aus dem Grund den BladeRunner schon sagte eigentlich wirklich überflüssig. Man erhält einen schöneren Code und spart sich an vielen Stellen Schreibarbeit, aber letztendlich funktioniert es auch ohne. Es stimmt aber, dass Select nicht mit Types arbeitet. Aber ist es ja auch kein großer Aufwand mit normalen Abfragen zu arbeiten.
BlitzBasic: [AUSKLAPPEN] Type TTest : End Type : Test1.TTest= New TTest |
||
![]() |
Eingeproggt |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ist es lang her dass ich damit gespielt hab... aber was mir in Erinnerung blieb möcht ich hier beitragen:
Die einzige sinnvolle Anwendung davon fand ich in der blitzUI (jaja, manch einer wird noch wissen dass ich da mal länger damit herum gebastelt hab ![]() Dort gab es, um die einzelnen GUI-Komponenten zu steuern ein "SendMessage" welchem man ein Handle übergibt. Dieses Handle wird dann der Reihe nach zu einem Fenster, Button, Textbox,... gecastet und wenn <>Null raus kommt wußte man, woran man ist. Mag etwas verwirrend sein und möglicherweise kann mir jemand eine gute Alternative dazu nennen. Aber auf diese Weise wurde Object() verwendet, um nicht für jeden Type eine eigene Funktion zu basteln. Und da mein Gerede mittlerweile niemand versteht, hier ein praktisches Beispiel: So siehts in der blitzUi aus: Code: [AUSKLAPPEN] SendMessage(Handle(button1),"SetLabel","Hallo")
so würde das nach BladeRunners Vorschlag aussehen: Code: [AUSKLAPPEN] SendMessage(button1,"SetLabel","Hallo")
Doch dann könnte man "SendMessage" nur für Buttons gebrauchen und für sonst nix. Das meinte ich mit "für jeden Type ne eigene Funktion" weil die logische Weiterentwicklung wär doch: Code: [AUSKLAPPEN] SendButtonMessage(button1,"SetLabel","Hallo")
...und genau das würde etwas ausarten und ich bin froh dass es mit Object/Handle umgangen wird in diesem speziellen Fall. mfG, Christoph. |
||
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9 |
Freak123 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich denke auch, dass ein verwenden von Handle/Object in der Lib-Programmierung verwendet werden sollte.
Sonst müsste sich der Anwender ständig mit irgendwelchen Typenamen auseinandersetzten, die er schlussendlich dann eh nicht braucht. |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group