Seite 1 von 1

Panels in den Vordergrund heben ?

Verfasst: Sa 8. Feb 2020, 17:15
von gambasso
moin,

ich mache gerade Versuche mit verschiedenen Panels, habe dabei ein Problem:
lege ich ein Panel auf ein anderes Panel, ( PanelX.Peparent(PanelY) ) komme ich an dem unteren nicht mehr ran.
Wie bekomme ich das untere Panel in den Vordergrund gehoben, also wieder nach oben?

Re: Panels in den Vordergrund heben ?

Verfasst: Sa 8. Feb 2020, 17:50
von cogier
Hilft das?
test.tar
(25 KiB) 47-mal heruntergeladen

Re: Panels in den Vordergrund heben ?

Verfasst: Sa 8. Feb 2020, 18:13
von gambasso
moin, danke schön,

kannst Du mir das erklären? Da blicke ich teilweise nicht durch.
Und zwar > Panels[Rand(0, 3)].Raise <

das müßte ich mir mal genauer ansehen.

Ich hatte es so gedacht: habe mehrere Panels, die ich auf ein bestimmtes Panel legen möchte.
Dieses bestimmte Panel kann ich verschieben und in der Größe verändern.
Nur wenn andere Panel darauf liegen, klappt kein MouseDown bzw. MouseMove, weil andere Panel darüber liegen.
Auch > PanelX.Raise < hat nichts gebracht.

Das ist das Problem.

Re: Panels in den Vordergrund heben ?

Verfasst: Sa 8. Feb 2020, 18:20
von gambasso
Ich hab's wie Dein Prg. klappt. Aber leider nicht so wie ich es gebrauchen möchte.

Re: Panels in den Vordergrund heben ?

Verfasst: So 9. Feb 2020, 13:41
von cogier
Ich verstehe nicht, was Sie versuchen, zu tun. Können Sie ein Beispielprogramm veröffentlichen.

Re: Panels in den Vordergrund heben ?

Verfasst: So 9. Feb 2020, 14:15
von PJBlack
alle panels in eine group ... innerhalb der group events auswerten ob panel in anderen panel ...

wäre jetzt meine idee

Re: Panels in den Vordergrund heben ?

Verfasst: Mo 10. Feb 2020, 12:28
von gambasso
moin,

aber, Panels haben nicht die Eigenschaft 'Group', auch wenn, wüßte ich nicht wie ich damit ein Panel in den Vordergrund heben kann.

Schau mal: http://gambaswiki.org/wiki/comp/gb.qt4/panel

Re: Panels in den Vordergrund heben ?

Verfasst: Mo 10. Feb 2020, 14:10
von PJBlack
Komisch ... bei mir funktionierts ...

Form.class

Code: Alles auswählen

' Gambas class file

Public Sub test_Enter()

    Label1.Text = "Panel :" & Last.tag

End
Form.form

Code: Alles auswählen

# Gambas Form File 3.0

{ Form Form
  MoveScaled(0,0,64,64)
  { Panel1 Panel test
    Name = "Panel1"
    MoveScaled(7,9,49,13)
    Tag = "Ich bin Panel 1"
    Border = Border.Plain
  }
  { Panel2 Panel test
    Name = "Panel2"
    MoveScaled(7,24,49,13)
    Tag = "Ich bin Panel 2"
    Border = Border.Plain
  }
  { Label1 Label
    MoveScaled(7,41,49,4)
  }
}

Re: Panels in den Vordergrund heben ?

Verfasst: Mo 10. Feb 2020, 14:25
von gambasso
kannst Du mir das mal schicken?

Re: Panels in den Vordergrund heben ?

Verfasst: Mo 10. Feb 2020, 14:44
von gambasso
ich habs mal so erstellt.

das ist es nicht. Les mal meine Eingangsbeiträge. Ich habe mehrere verscniedene Panels. Diese möchte ich nach Erfordernis auch übereinander legen können. Wenn da ein Panel ein darunterliegendes Panel total überdeckt, komme ich an dem darunterliegenden Panel nicht mehr mit der Maus dran. Ich komme mit der Maus nur an dem obersten Panel dran.

Ich habe es mit 'Panelxy.Raise' versucht, klappt nicht.

Das soll mal ein Versuch werden, Grafiken übereinander zu legen.

Re: Panels in den Vordergrund heben ?

Verfasst: Di 11. Feb 2020, 01:47
von PJBlack
ja, das war nicht die lösung für dein problem, aber zumindest der weg in eine funktionieren lösung.
gambasso hat geschrieben:
Sa 8. Feb 2020, 17:15
Wie bekomme ich das untere Panel in den Vordergrund gehoben, also wieder nach oben?
wenn das funktioniert was du vorhast kommst du an das andere nicht mehr dran ... wobei .reparent nach meinen verständnis ganz sicher nicht die lösung ist ... andererseits wenn du panelx.reparent(panely) machst kannst du auch parentx.reparent(form) machen ...

Re: Panels in den Vordergrund heben ?

Verfasst: Di 11. Feb 2020, 06:16
von besenmuckel
Besser wäre es wenn man dein Projekt hätte oder ein Teil davon. Dann könnte man es besser verstehen was du möchtest. Ich bin hier noch mit Debian-Stretch(Kanotix-Steelfire) und Gambas3 mit Version 3.9.1 unterwegs. Nur Linksklick auf Panel holt das Panel in den Vordergrund. Rechtsklick auf irgenein Panel auch wenn es unter anderen liegt holt dir das ausgewählte in den Vordergrund.
Quellcode hier.

Code: Alles auswählen

' Gambas class file

Public Sub Panel1_MouseDown()

  If Mouse.Left Then

    Panel1.Raise
    Panel2.Lower
    Panel3.Lower
    Panel4.Lower

  Endif

End

Public Sub Panel1_Menu()

  mnuPopup.Popup

End

Public Sub Panel2_MouseDown()

  If Mouse.Left Then

    Panel1.Lower
    Panel2.Raise
    Panel3.Lower
    Panel4.Lower
  
  Endif

End

Public Sub Panel2_Menu()

  mnuPopup.Popup

End

Public Sub Panel3_MouseDown()

  If Mouse.Left Then

    Panel1.Lower
    Panel2.Lower
    Panel3.Raise
    Panel4.Lower
  
  Endif

End

Public Sub Panel3_Menu()

  mnuPopup.Popup

End

Public Sub Panel4_MouseDown()

  If Mouse.Left Then

    Panel1.Lower
    Panel2.Lower
    Panel3.Lower
    Panel4.Raise
  
  Endif

End

Public Sub Panel4_Menu()

  mnuPopup.Popup

End

Public Sub Menu1_Click()

  Panel1.Raise
  Panel2.Lower
  Panel3.Lower
  Panel4.Lower

End

Public Sub Menu2_Click()

  Panel1.Lower
  Panel2.Raise
  Panel3.Lower
  Panel4.Lower

End

Public Sub Menu3_Click()

  Panel1.Lower
  Panel2.Lower
  Panel3.Raise
  Panel4.Lower

End

Public Sub Menu4_Click()

  Panel1.Lower
  Panel2.Lower
  Panel3.Lower
  Panel4.Raise

End
Das mnuPopup in der Form-IDE mit Rechtsklick -> Menü-Editor erstellt. Wenn du es für die Form oder andere auch noch brauchst musste es dazu fügen.
paneltest_001-0.0.1.tar.gz
(11.51 KiB) 40-mal heruntergeladen
Screenshot_20200211_180842.png
Screenshot_20200211_180842.png (74.32 KiB) 1204 mal betrachtet

Re: Panels in den Vordergrund heben ?

Verfasst: Di 11. Feb 2020, 16:37
von gambasso
moin,

ich bin da noch am basteln. Komme iregenwie dureinander. Ich muß das wohl mal anders angehen.
Beim 'ReParent(PanelA)' ist das zu verschiebende Panel auf einem ganz anderem Panel gelandet, hab den Fehler noch nicht gefunden.