Seite 1 von 1

Welches Control ist oben, bzw. wie nach oben?

Verfasst: Sa 27. Jun 2020, 13:20
von gambasso
moin,

ich habe 3 ScrollAreas, (Hauptzeichenfläche) gleiche Größe, liegen übereinander.
Dann 6 ScrollAreas, sollen überall liegen können, die Größe ist mit der Maus einstellbar.

Wie schaffe ich es, eine beliebige ScrollArea als oberste ScrollArea zu plazieren, um diese zu bearbeiten?

Wie lese ich aus, welche ScrollArea oben ist?

Re: Welches Control ist oben, bzw. wie nach oben?

Verfasst: Sa 27. Jun 2020, 15:20
von cogier
Sie müssen 'Raise' (Erhöhen) verwenden. Schauen Sie sich das beigefügte Programm an.
Testing5-0.0.1.tar.gz
(14.13KiB)22-mal heruntergeladen

Re: Welches Control ist oben, bzw. wie nach oben?

Verfasst: Sa 27. Jun 2020, 16:16
von gambasso
danke schön,

das Prinzip ist klar, ich habe etwa 9 ScrollAreas, wobei ich gerne das 'Oberste' als Text in einem Label angezeigt haben möchte.
Außerdem brauche ich die Möglichkeit, jede ScrollArea auf Wunsch noch oben zur Verarbeitung zu bringen.

Dazu versuche ich es erst mal mit 9 Buttons. Anders komme ich nicht ran.

Re: Welches Control ist oben, bzw. wie nach oben?

Verfasst: So 28. Jun 2020, 11:34
von besenmuckel
Oder den Aufruf über Menü statt Buttons. Hier am Beispiel(Testing5-0.0.1.tar.gz) von cogier zum testen einfach diesen Code einfügen. Timer ausgeschaltet. Die einzelnen Bilder werden mit Rechtsklick über das Menü aufgerufen. Das Form_Menu hier im Code, lässt sich aber einfacher find ich mit den Menüeditor erstellen. Man kann im Menüeditor z. B. auch schneller für jedes Menü gleich Tastenkombinationen festlegen.

Code: Alles auswählen

' Gambas class file

iCount As Integer

Public Sub Form_Open()

  Timer1.Enabled = False

End

Public Sub Form_Menu()

  Dim menus, item As Menu

  menus = New Menu(Me)    ' Neues Menu anlegen
  item = New Menu(menus) As "Bild1"   ' Neuer Eintrag im Menu, "Bild1" ist der Funtionsname der aufgerufen werden soll
  item.Text = ("Bild1")  ' Text für Menupunkt
  item = New Menu(menus) As "Bild2"
  item.Text = ("Bild2")
  item = New Menu(menus) As "Bild3"
  item.Text = ("Bild3")
  item = New Menu(menus) As "Ende"
  item.Text = ("Ende")
  menus.Popup()    ' Menu anzeigen

End

Public Sub Bild1_Click()

  PictureBox1.Raise

End

Public Sub Bild2_Click()

  PictureBox2.Raise

End

Public Sub Bild3_Click()

  PictureBox3.Raise

End

Public Sub Ende_Click()

  Me.Close

End

Public Sub Timer1_Timer()

  Inc iCount
  If iCount = 4 Then iCount = 1

  If iCount = 1 Then PictureBox1.Raise
  If iCount = 2 Then PictureBox2.Raise
  If iCount = 3 Then PictureBox3.Raise

End

Re: Welches Control ist oben, bzw. wie nach oben?

Verfasst: So 28. Jun 2020, 19:28
von vuott
Hier benutze ich neun "Label".
gambas code
Public Sub Form_Open()

  Button2.Enabled = False

End

Public Sub Button1_Click()   ' Um die Position eine "Label" zufällig zu ändern.

  Dim ob As Object

  Repeat
    ob = Me.Children[Rand(0, 8)]
  Until Object.Type(ob) == "Label"

' Es platziert das "Label" oben:
  ob.Raise
  
  Button2.Enabled = True

End

Public Sub Button2_Click()   ' Um zu sehen, welches "Label" oben ist.

  Dim cl As Control
  
  For Each cl In Me.Controls
' Das letzte "Label" steht oben (sein Name wird in "Me.Caption" angezeigt):
    Me.Caption = cl.Name
  Next
  
  Button2.Enabled = False

End

Re: Welches Control ist oben, bzw. wie nach oben?

Verfasst: Do 2. Jul 2020, 13:27
von gambasso
moin,

das haut alles nicht so hin,

gegeben: 9 ScrollAreas / alle durchsichtig mit Border
3 davon als Hauptbild, alle gleich groß, liegen übereinamder
auf diesen liegen jeweils 2 kleine ScrollAreas, aber versetzt, do daß ich jede sehen kann

6 Button, jeweils einer kleinen ScrollArea zugeordnet.
der Button gibt den Befehl zur der kleinen ScrollArea: 'ScrollAreaXY.Raise()'
auch 'ScrollAreaXY.SetFocus()' bringt nichts
auch ein 'Wait' bringt mir nichts

Wie bekomme ich jede gewünschte ScrollArea in den Vordergrund zur weiteren Bearbeitung?

Re: Welches Control ist oben, bzw. wie nach oben?

Verfasst: Do 2. Jul 2020, 16:05
von vuott
gambasso hat geschrieben:
Do 2. Jul 2020, 13:27
das haut alles nicht so hin,

gegeben: 9 ScrollAreas / alle durchsichtig mit Border
3 davon als Hauptbild, alle gleich groß, liegen übereinamder
........ etc....
Können Sie die Programmdatei anhängen ?
Wir müssen ein paar Tests machen.

Re: Welches Control ist oben, bzw. wie nach oben?

Verfasst: Do 2. Jul 2020, 17:06
von gambasso
die Datei ist zu groß, ich werde versuchen, diese auf das wesentliche zu schrumpfen.
Das dauerd aber etwas Zeit.

Re: Welches Control ist oben, bzw. wie nach oben?

Verfasst: Do 2. Jul 2020, 17:48
von vuott
ok

Re: Welches Control ist oben, bzw. wie nach oben?

Verfasst: So 5. Jul 2020, 10:58
von gambasso
moin,

habe den Code mal abgspeckt. Mit 'abc.Parent(xyz)' klappt es zwar, aber mit 'Raise' wäres es wesentlich einfacher.
In 'Raise' ist wahrscheinlich 'Parent' nicht möglich, brauche ich aber.