Panels in den Vordergrund heben ?

Alle Fragen zur Programmierung, die nicht in die speziellen Themen passen
Antworten
gambasso
Foriker
Beiträge: 1066
Registriert: Sa 17. Mär 2012, 09:55
Kontaktdaten:

Panels in den Vordergrund heben ?

Beitrag von gambasso » Sa 8. Feb 2020, 17:15

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?
Gruss

Benutzeravatar
cogier
Foriker
Beiträge: 43
Registriert: Do 19. Jul 2018, 16:18
Wohnort: Guernsey, Channel Islands
Kontaktdaten:

Re: Panels in den Vordergrund heben ?

Beitrag von cogier » Sa 8. Feb 2020, 17:50

Hilft das?
test.tar
(25 KiB) 4-mal heruntergeladen

gambasso
Foriker
Beiträge: 1066
Registriert: Sa 17. Mär 2012, 09:55
Kontaktdaten:

Re: Panels in den Vordergrund heben ?

Beitrag von gambasso » Sa 8. Feb 2020, 18:13

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.
Gruss

gambasso
Foriker
Beiträge: 1066
Registriert: Sa 17. Mär 2012, 09:55
Kontaktdaten:

Re: Panels in den Vordergrund heben ?

Beitrag von gambasso » Sa 8. Feb 2020, 18:20

Ich hab's wie Dein Prg. klappt. Aber leider nicht so wie ich es gebrauchen möchte.
Gruss

Benutzeravatar
cogier
Foriker
Beiträge: 43
Registriert: Do 19. Jul 2018, 16:18
Wohnort: Guernsey, Channel Islands
Kontaktdaten:

Re: Panels in den Vordergrund heben ?

Beitrag von cogier » So 9. Feb 2020, 13:41

Ich verstehe nicht, was Sie versuchen, zu tun. Können Sie ein Beispielprogramm veröffentlichen.

Benutzeravatar
PJBlack
Foriker
Beiträge: 35
Registriert: Sa 8. Dez 2018, 23:50
Kontaktdaten:

Re: Panels in den Vordergrund heben ?

Beitrag von PJBlack » So 9. Feb 2020, 14:15

alle panels in eine group ... innerhalb der group events auswerten ob panel in anderen panel ...

wäre jetzt meine idee

gambasso
Foriker
Beiträge: 1066
Registriert: Sa 17. Mär 2012, 09:55
Kontaktdaten:

Re: Panels in den Vordergrund heben ?

Beitrag von gambasso » Mo 10. Feb 2020, 12:28

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
Gruss

Benutzeravatar
PJBlack
Foriker
Beiträge: 35
Registriert: Sa 8. Dez 2018, 23:50
Kontaktdaten:

Re: Panels in den Vordergrund heben ?

Beitrag von PJBlack » Mo 10. Feb 2020, 14:10

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)
  }
}

gambasso
Foriker
Beiträge: 1066
Registriert: Sa 17. Mär 2012, 09:55
Kontaktdaten:

Re: Panels in den Vordergrund heben ?

Beitrag von gambasso » Mo 10. Feb 2020, 14:25

kannst Du mir das mal schicken?
Gruss

gambasso
Foriker
Beiträge: 1066
Registriert: Sa 17. Mär 2012, 09:55
Kontaktdaten:

Re: Panels in den Vordergrund heben ?

Beitrag von gambasso » Mo 10. Feb 2020, 14:44

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.
Gruss

Benutzeravatar
PJBlack
Foriker
Beiträge: 35
Registriert: Sa 8. Dez 2018, 23:50
Kontaktdaten:

Re: Panels in den Vordergrund heben ?

Beitrag von PJBlack » Di 11. Feb 2020, 01:47

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 ...

besenmuckel
Foriker
Beiträge: 120
Registriert: Di 4. Nov 2014, 21:11
Kontaktdaten:

Re: Panels in den Vordergrund heben ?

Beitrag von besenmuckel » Di 11. Feb 2020, 06:16

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) 2-mal heruntergeladen
Screenshot_20200211_180842.png
Screenshot_20200211_180842.png (74.32 KiB) 56 mal betrachtet
Zuletzt geändert von besenmuckel am Di 11. Feb 2020, 18:13, insgesamt 1-mal geändert.

gambasso
Foriker
Beiträge: 1066
Registriert: Sa 17. Mär 2012, 09:55
Kontaktdaten:

Re: Panels in den Vordergrund heben ?

Beitrag von gambasso » Di 11. Feb 2020, 16:37

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.
Gruss

Antworten

Wer ist online?

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