GLBasic forum

Other languages => GLBasic - de => Topic started by: monono on 2011-Jan-09

Title: ALIAS und PROTOTYPE
Post by: monono on 2011-Jan-09
Das hantieren mit all den Indexen und Listen ist mir in letzter Zeit etwas auf den Keks gegangen. Deshalb habe ich mich mal den Pointer Möglichkeiten von GLB gewidmet. Dabei bin ich in zwei Sackgassen gelaufen:

1. Der Versuch ein ALIAS in einem Type als Feld zu speichern.
2. Eine Type-Funktion als PROTOTYPE zu übergeben.

Geht das (noch) nicht? Oder geht das doch, und ich sollte mal meinen Code überprüfen?
Vielen Dank im Vorraus!
Title: Re: ALIAS und PROTOTYPE
Post by: Schranz0r on 2011-Jan-09
glaube beides Nein
Title: Re: ALIAS und PROTOTYPE
Post by: monono on 2011-Jan-09
Danke für die schnelle Antwort Schranz0r!
:'( :'( :'(
Title: Re: ALIAS und PROTOTYPE
Post by: Kitty Hello on 2011-Jan-10
Alias ist nur eine Pointer-Variable. Die kann man nicht speichern. ACHTUNG: Wenn man REDIM/DIMPUSH macht, können ALIAS-Verweise kaputt gehen!!

Hintergrund. Type Funktionen können nicht per pointer übergeben werden - müsste statisch sein, kann dann aber nicht auf Member zugreifen.

Was ist denn so schlimm an Feldern?

Title: Re: ALIAS und PROTOTYPE
Post by: monono on 2011-Jan-10
Nicht schlimm, nur unpraktisch. Ein Beispiel von bestimmt sehr vielen ist, wenn ich in einem Feld sehr sehr viele Types erstelle und wieder lösche, dann stimmen die Indizes natürlich nicht mehr. Wenn ich aber direkten Zugriff auf ein spezielles Object auch von außerhalb haben will, darf ich nicht löschen, sondern nur ersetzen. Geht natürlich auch. Jedes mal wenn ich einen neuen Type pushe gehe ich erst das Feld durch und schaue ob .del auf true steht und ersetze es dann.
Manchmal entstehen auch Dinge wie type1[type2[type3.index].index].phi. Dazu muss ich auch noch wissen welche Art von Type es ist, damit ich in die richtige Liste gucke. Diese vielen kleinen Dinge und meine scheinbare Unfähigkeit geplant zu programmieren addieren sich bis zu dem Punkt, wo es auf den oben genannten "Keks" geht. :)
Ich habe vor Weihnachten ein paar Wochen mal wieder mit dem anderen Basic programmiert. Das soll jetzt keine "das kann aber.." Ansprache werden, nur jetzt wo ich wieder vor GLB sitze, vermisse ich gar nicht die oo so sehr, sondern einfach das bei blub2:TObject = blub1, blub2 keine Kopie sondern blub1 selber ist.