Objekte über Array ansprechen

Alle Fragen zur Programmierung, die nicht in die speziellen Themen passen
Antworten
flodder
Foriker
Beiträge: 17
Registriert: Di 29. Dez 2009, 10:56
Kontaktdaten:

Objekte über Array ansprechen

Beitrag von flodder » Mo 1. Jun 2020, 07:56

Hallo zusammen

Ich arbeite gerade an einem Info-Terminal, der frei konfigurierbar ist. Unter anderem soll auch die Anzahl der Buttons (Reihen und Spalten) frei festlegbar sein.
Gibt es eine Möglichkeit, die Buttons in der Form zu erstellen, die Namen in ein Array zu packen und sie dann über das Array anzusprechen? Es wäre sehr aufwändig, für jede Kombination aus Reihen- und Spaltenanzahl ein Modul zu schreiben.

Das Beispiel funktioniert zwar nicht, soll aber mein Vorhaben etwas verdeutlichen:
gambas code
DIM schalter AS object[]
schalter[0]="button01"
schalter[0].Text="Start"
Gefunden habe ich hier bislang noch nichts brauchbares.

vuott
Foriker
Beiträge: 103
Registriert: Fr 16. Jan 2015, 01:27
Kontaktdaten:

Re: Objekte über Array ansprechen

Beitrag von vuott » Mo 1. Jun 2020, 15:15

Hello,

sie müssen den "Button" erstellen und dann die Variable dieses "Button" in ein Array vom Typ "Button[ ]" oder vom Typ "Object[ ]" einfügen.

flodder
Foriker
Beiträge: 17
Registriert: Di 29. Dez 2009, 10:56
Kontaktdaten:

Re: Objekte über Array ansprechen

Beitrag von flodder » Mo 1. Jun 2020, 22:20

Hast du dafür vielleicht auch einen kleinen Beispielcode?

vuott
Foriker
Beiträge: 103
Registriert: Fr 16. Jan 2015, 01:27
Kontaktdaten:

Re: Objekte über Array ansprechen

Beitrag von vuott » Di 2. Jun 2020, 13:23

Dies soll nur ein einfaches und kurzes Beispiel sein:
gambas code
Private bbtt As Button[]


Public Sub Form_Open()

  Dim bt As Button
  Dim b As Byte

' Erstellen Sie das Array "Button":
  bbtt = New Button[]

' Zyklus, um die "Button" zu erstellen:
  For b = 1 To 10
    With bt = New Button(Me) As "Buttons"   '  Erstellen Sie einen "Button"
      .X = 60 * b
      .Y = 100
      .W = 50
      .H = 30
      .Name = "Button" & CStr(b)
      .Text = "Button" & CStr(b)
    End With
' Fügt diesen "button" in das Array ein:
    bbtt.Push(bt)
  Next

End

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

Re: Objekte über Array ansprechen

Beitrag von gambasso » Di 2. Jun 2020, 17:01

moin,

da bin ich auch dran interessiert.
Meine Frage dazu: wie Frage ich einen solchen Button ab?

Mit 'Public Sub Button1_CLick()' klappt es bei mir nicht, ebenso nicht mit 'bbtt1_CLick()' oder 'bt1_CLick()'!
Gruss

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

Re: Objekte über Array ansprechen

Beitrag von gambasso » Di 2. Jun 2020, 18:19

Über

Code: Alles auswählen

Public Sub Action_Activate(sKey As String) As Boolean
habe ich es ausgewertet bekommen. Ist umständlich, aber geht.
Gruss

vuott
Foriker
Beiträge: 103
Registriert: Fr 16. Jan 2015, 01:27
Kontaktdaten:

Re: Objekte über Array ansprechen

Beitrag von vuott » Di 2. Jun 2020, 18:48

gambasso hat geschrieben:
Di 2. Jun 2020, 17:01
Meine Frage dazu: wie Frage ich einen solchen Button ab?

Mit 'Public Sub Button1_CLick()' klappt es bei mir nicht, ebenso nicht mit 'bbtt1_CLick()' oder 'bt1_CLick()'!
Hello gambasso,

...schau dir meinen Code an......vor allem die Teil:
gambas code
... As "Buttons"
In diesem Teil wird der "Button" einer Ereignisgruppe zugewiesen.
Die erstellten "Button" werden der gleichen Ereignisgruppe zugeordnet.
Die Event-Gruppe hier heißt "Buttons".
Jeder "Button" gehört zu dieser Ereignisgruppe und wird das gleiche Event in Unter-Routine auslösen.

Lassen Sie uns diese Sub-Routine hinzufügen.
gambas code
Public Sub Buttons_Click()   ' ...Buttons = Event-Gruppe !
  
  With Last
    Print .Name
    Print .Text
  End With
  
End
Das Array von "Button[]" hat also im Wesentlichen keine direkten Auswirkungen auf die Ereignisse.

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

Re: Objekte über Array ansprechen

Beitrag von gambasso » Do 4. Jun 2020, 12:52

@ vuott: es klappt gut damit. So kannte ich es bisher nicht.
Gruss

vuott
Foriker
Beiträge: 103
Registriert: Fr 16. Jan 2015, 01:27
Kontaktdaten:

Re: Objekte über Array ansprechen

Beitrag von vuott » Do 4. Jun 2020, 15:12

...besser spät als nie. :)

Antworten

Wer ist online?

Mitglieder in diesem Forum: Google [Bot] und 0 Gäste