UliTs hat geschrieben:Das heißt, mit Hilfe von oMenuBar und der angegebenen nMenuPos kannst Du auf den entsprechenden Eintrag zugreifen.
ja, aber nur wenn "ich" die Parameter bereitstelle "im || " des Codeblock "bereitstelle" da wir ja über ein "native" Control reden.
UliTs hat geschrieben:Zu Deinen Überlegungen zu Objekten:
Speichert man Objekte in einem Array werden nur die Verweise = Pointer auf die Objekte im Array gespeichert. Wird das Objekt später freigeben, bleibt jedoch der Verweis innerhalb des Objekt's bestehen, sofern man diesen nicht selbst z.B. auf NIL setzt. Deine Frage dazu verstehe ich nicht, da meiner Meinung Verweis = Pointer ist und man damit darauf zugreifen kann, wenn man auf das Array ebenfalls zugreifen kann
.
ich habe ja nichts gegen Array aber es betrifft ja nicht nur eine Class sondern mehrere.
Ich habe eine Toolbar mit mehreren TTButtons -> 1st Array
ein TTButton kann eine Dropdown Menu haben -> 2nd Array
eine Menu hat nun meisten mehrere Element -> 3rd Array
innerhalb eines Menu Eintrag habe ich nun mein Codeblock der ausgeführt werden soll.
die 3 Array sind aber nicht in einer Class sondern in 3 entsprechenden Class an die "weiterleiten" muss ...
deshalb suche ich nach einer "anderen" Lösung wie diese
Code: Alles auswählen
oBtn := TBBUTTON():New()
pBtnArray := _xgrab( oBtn:_sizeof_() * button_count )
oBtn:_link_( pBtnArray , .F. ) // link to the first item
for n := 1 to button_count
// .....assign member values
GwstArrayNext( oBtn) // go to the next item
next
das war nun das Codebeispiel wo ich überlegte ... und mir das ausgedacht habe :
Code: Alles auswählen
// statt Array
::aArray[nNo][_Caption]
::aArray[nNo][_Key]
::aArray[nNo][_Index]
// eine ot4xb Structure
BEGIN STRUCTURE MyArray
MEMBER LPSTR Caption DYNSZ cText
MEMBER LPSTR Key DYNSZ cText
MEMBER INT Index
END STRUCTURE
hier erst mal "simple" nur für "Text" und "Integer". man kann aber alle von ot4xb unterstützten Typen verwenden.
nun ist eine ot4xb Structure ein Object und ich kann davon eine Xbase++ Class "ableiten" ( inherit )
Code: Alles auswählen
CLASS BigArray FROM MyArray
Method BigArray:Next()
Method BigArray:Prev()
Method BigArray:Goto()
...
und damit alles innerhalb einer Class machen.
mehr Informationen unter
http://www.xbwin.com
Array - Structure ( GwstArray )
ot4xb.public
6. September 2012
p.s. in der DXE_Toolbar v0.19 benutze ich noch die Arrays