Alle Elemente eines Container ermitteln

Alle Fragen zur Programmierung, die nicht in die speziellen Themen passen
Antworten
jgm007
Foriker
Beiträge: 4
Registriert: Mi 30. Aug 2017, 11:27
Kontaktdaten:

Alle Elemente eines Container ermitteln

Beitrag von jgm007 » Mi 30. Aug 2017, 11:51

Ich möchte mittels einer einfachen Funktion ALLE Elemente eines Containers untersuchen.

Klappt soweit so gut, aber sobald ich eine Ebene tiefer steigen möchte ( etwa weil ein Panel da ist, welche noch andere Elemente enthält ) möchte ich über die gleiche Funktion eine "Etage tiefer" und rekursiv auch dieses Element durchsuchen.

Bisher sieht das etwa so aus.

Aus Main heraus einfach der Aufruf: gambas code

suche (FMain)



Public Sub Suche(CO As Container)
        Dim I As Integer 
        Dim TE As String
        Dim T As String
        Dim CL As CONTROL
        
        Print "----------- CHILDREN --------------------------------------"
        For I = 0 To (CO.Children.Count - 1) Step 1 
                CL = CO.Children.Next
                Print "NEXT = ----> " & CL.NAME & "    TYpe = " & Object.Type(CL)
                TE = Object.Type(CL)
                If TE = "Panel" Then
                        Print "GOING DOWN" 
                        Suche()      ' Will einen Container, aber wo krieg ich den aus dem Children
                Endif
          
                Print "CHILDREN -> NAME = -->  " & CO.Children.NAME & "- ACTION --" & CO.Children.Action & "-- TAG --" & CO.Children.Tag;
                T = "TYPE = " & TE ' & "       CLASS = " '  & Object.Class.Name(CO.Children.Name)
                Print "---- " & T
        Next
End



Wie kann ich jetzt bei Erkennen eines Objekts vom Typ "Panel" weiter verzweigen ???

Benutzeravatar
4tionov
Site Admin
Beiträge: 232
Registriert: So 18. Mai 2014, 22:40
Kontaktdaten:

Re: Alle Elemente eines Container ermitteln

Beitrag von 4tionov » Mi 30. Aug 2017, 15:33

Schau dir mal in der Software-Farm das Projekt findfocus an. Das macht so was.
Alles Gute,

4tionov

jgm007
Foriker
Beiträge: 4
Registriert: Mi 30. Aug 2017, 11:27
Kontaktdaten:

Re: Alle Elemente eines Container ermitteln

Beitrag von jgm007 » Do 31. Aug 2017, 07:06

Danke für den Tipp,

aber ohne qt4 Bibliothek kriege ich das Teil nicht geladen. U/nd wenn ich unter Ubuntu die gambas-qt4 laden will, schmeisst er mir das komplette Gambas weg.

Schade das man nicht einfach so einen Download machen kann, egal ob man die Komponenten hat oder nicht.

Benutzeravatar
4tionov
Site Admin
Beiträge: 232
Registriert: So 18. Mai 2014, 22:40
Kontaktdaten:

Re: Alle Elemente eines Container ermitteln

Beitrag von 4tionov » Do 31. Aug 2017, 07:23

jgm007 hat geschrieben:
Do 31. Aug 2017, 07:06
aber ohne qt4 Bibliothek kriege ich das Teil nicht geladen. U/nd wenn ich unter Ubuntu die gambas-qt4 laden will, schmeisst er mir das komplette Gambas weg.

Schade das man nicht einfach so einen Download machen kann, egal ob man die Komponenten hat oder nicht.
Du kannst es nicht ausführen, aber den Code darin ansehen. Wenn du es heruntergeladen hast, findest du es als normales Projekt in:
~/.local/share/gambas3/src/deganius/findfocus

Das Projekt kannst du dann einfach woanders hin verschieben und auf qt5 umbauen, indem du die Komponenten darin änderst.

Ich finde die Software-Farm nicht so sonderlich geglückt, sie ist nicht intuitiv, nicht ordentlich dokumentiert (z.B. dass sich die Projekten in ~/.local/share/gambas3/src/ befinden), es gibt keine Versionierung und es wäre garantiert besser gewesen, das irgendwo mit einem VCS aufzusetzen, wie z.B. auf Gitlab. Aber so ist das nun mal, es ist aber auch nicht existentiell wichtig.
Alles Gute,

4tionov

jgm007
Foriker
Beiträge: 4
Registriert: Mi 30. Aug 2017, 11:27
Kontaktdaten:

Re: Alle Elemente eines Container ermitteln

Beitrag von jgm007 » Do 31. Aug 2017, 09:45

Habe jetzt ein Gambas genutzt, welches qt4 hat und der Download hat geklappt.

Schon sehr trickreich das findfocus, aber genau sowas hab ich gesucht.

Von daher: DANKE!!!

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 9 Gäste