TLink verschieben
Übersicht

SchoppyBetreff: TLink verschieben |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi,
ich lege in einer function einen neuen List Eintrag an und speicher den TLink gleich mit: NewGadget = New GUItype NewGadget.link = GadgetList.AddLast(NewGadget) Soweit so gut. Jetzt werden mehrere Gadgets angelegt vom Typ WINDOW. Ich möchte jetzt erreichen das immer das aktive Window zu letzt gezeichnet wird. Da es ja in den Vordergrund soll. Nach lägerem Stöbern hier im Forum habe ich schon mal gelernt, dass der TLink mit gesichert werden sollte damit dieser nicht gesucht werden muss. Folgende Function habe ich geschrieben welche aber lediglich den TLink löscht aber nicht unten anhängt: Code: [AUSKLAPPEN] Function sort_List(id:Int) Local gadgetList_link:TLink 'Suche erst den Link zum Window For Local Gadgets:GUItype = EachIn GadgetList If Gadgets.id = id gadgetList_link = Gadgets.link Exit EndIf Next 'Lösche den alten Link RemoveLink(gadgetList_link) 'Verlinke neu ganz unten gadgetList_link:TLink = GadgetList.AddLast() EndFunction Das Problem ist das der AddLast() Befehl ein Object erwartet. Ich habe aber nur den TLink. Wie lautet der richtige Befehl um einen TLink anzuhängen? 2.) Wenn ich schon mal weiter überlege, wenn später mal Buttons, Panels etc. hinzukommen müssten diese ja ebenfalls umsortiert werden. Meine Idee dazu, in diesem WINDOW Type Eintrag eine List anlegen welche die TLinks von diesen weiteren Gadgets speichert. Werden diese imType angelegten TLinks dann ebenfalls ans Ende der Hauptlist verschoben? Gruss Schoppy |
||
PhillipK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich würde es - ungetestet - mal sorum versuchen (nie gemacht, aber blide spuckt mir die befehle aus!)
BlitzMax: [AUSKLAPPEN]
Statt TLink und TList sind hier die entsprechenden variablen zu verwenden ![]() So wie sich das liest, tut das genau das, was du willst. Aber ich möchte dir noch eine andere möglichkeit ans herz legen: TList.sort() BlitzMax: [AUSKLAPPEN] TList.Sort(True, Sortiere) Die List.Sort() methode erwartet 2 parameter: "Aufsteigend" sortieren (ich glaube, bei dir sollte es false sein, oder ich bring die parameter durcheinander ![]() Diese funktion muss so aufgebaut sein, wie oben angegeben: Rückgabe Int, PArameter1 Object, Parameter2 Object. In dieser funktion kannst du die inhalte deines types vergleichen und so entscheiden, wo sie "hinsortiert" werden sollen. Das ist für eine solche simple aufgabe vielleicht noch nicht wirklich notwendig, aber das könnte dir helfen wenn du noch andere sortierkriterien hast und das simple 'hinten anfügen' nichtmehr ausreicht. Wie gesagt, TLink.remove() und das objekt hinten wieder anfügen sollte reichen. Aber nur so als hintergrundwissen :> |
||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Oder, man überlädt die Compare-Methode:
BlitzMax: [AUSKLAPPEN] SuperStrict |
||
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) |
![]() |
BtbN |
![]() Antworten mit Zitat ![]() |
---|---|---|
Was zur folge hätte, dass er nach jedem Fenster anklicken einmal die ganze liste Sortiert, was je nach anzahl der Fenster länger dauert. Einfach den Link löschen und das Fenster neu hinzufügen geht dafür immer gleich schnell, und ist klar zu bevorzugen. | ||
Schoppy |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Danke für die Antworten.
Das funktioniert so leider nicht. Es kommt die Fehlermeldung: Expression of type 'Object' cannot be invoked Was bedeutet _value ? Wofür steht der _ ? |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
_value ist ein Wert ,zzuimindest deutet es der name an, der Unterstrich ist nur als Kenzeichnung dass es eine Objektvariable ist, das ist eine Schreibkonvention und hat keine tiefere Bedeutung.
Der Invoke-Error bedeutet dass versucht wird ein Objekt wie eine Funktion aufzurufen, d.h. Klammern dahinter gesetzt wurden. Es wäre leichter deine Fehler zu verstehen und zu korrigieren wenn Du den "Geht nicht"-Code mitlieferst. ![]() |
||
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 |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group