Steuerelemente im Array...

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Ghosty1967
Beiträge: 205
Registriert: 29.08.2005 13:56
Computerausstattung: Intel i7, 128GB Ram, Win10 Ultimate, PB6.00 Alpha 3
Wohnort: Köln

Steuerelemente im Array...

Beitrag von Ghosty1967 »

Hallo Leutz...

In VB ist es ja möglich, ein Array aus Steuerelementen zu bilden... sodas
man z.B. ein Array von Eingabefeldern hat, welche man dann in einer
Routine über deren Index abfragen kann /:->

Gibt es sowas auch in PB oder kann man einen Trick anwenden :mrgreen:
Ich möchte gerne eine Art Tabelle erstellen, welche die Anzahl der Tage
eines Monats mit je 4 Eingabefeldern enthält und das wären dann ja schon
max. 124 StringGadget-Anweisungen - das muß doch auch einfacher gehen oder ?!
Wo wir gerade dabei sind, wäre es auch interessant zu wissen, ob sich Steuerelemente in PB
auch zur Laufzeit erstellen lassen.

Für Codeschnipsel und links bin ich immer dankbar... :allright:
Benutzeravatar
KeyKon
Beiträge: 1412
Registriert: 10.09.2004 20:51
Computerausstattung: Laptop: i5 2,8 Ghz, 16GB DDR3 RAM, GeForce 555GT 2GB VRAM
PC: i7 4,3 Ghz, 32GB DDR3 RAM, GeForce 680 GTX 4GB VRAM
Win10 x64 Home/Prof
PB 5.30 (64bit)
Wohnort: Ansbach
Kontaktdaten:

Beitrag von KeyKon »

Ich hab nich genau verstanden was du willst aber wenn du sowas meinst:

Code: Alles auswählen

Dim Array(30,4)
In der Rutine kannst du dann so abfragen:

Code: Alles auswählen

For x = 1 To 30
  Debug Array(x,1)
  Debug Array(x,2)
  Debug Array(x,3)
  Debug Array(x,4)
Next
Auf diese Weise kannst du auch Arrays machen mit viel mehr Dimensionen.

KeyKon
(\/) (°,,,°) (\/)
Benutzeravatar
Pelagio
Beiträge: 424
Registriert: 11.11.2004 17:52
Computerausstattung: AMD Ryzen 5 7600 6-Core Prozessor 3.80 GHz
16,0 GB Arbeitsspeicher
Windows 11 Pro Betriebssystem
Wohnort: Bremen

Beitrag von Pelagio »

@Gosty1967
Wo wir gerade dabei sind, wäre es auch interessant zu wissen, ob sich Steuerelemente in PB auch zur Laufzeit erstellen lassen.
Die Steuerelemente kann man jederzeit erstellen, also auch wärend der Laufzeit eines Programmes, wenn man dies vorsieht.

Code: Alles auswählen

If OpenWindow(0,0,0,230,90,#PB_Window_SystemMenu|#PB_Window_ScreenCentered,"Event-Handling Beispiel...")
   If CreateGadgetList(WindowID()): ButtonGadget  (1, 10, 10,200, 20, "Klick mich"):EndIf
   Repeat
     EventID = WaitWindowEvent()
     If (EventID=#PB_Event_Gadget)
         Select EventGadgetID()
           Case 1 : ButtonGadget (2, 10, 40,200, 20, "Du hast Button 1 geklickt!")
           Case 2 : FreeGadget  (2)
         EndSelect
     EndIf
   Until EventID = #PB_Event_CloseWindow
 EndIf
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Meinst Du sowas:

Code: Alles auswählen

Dim MyGadget(2)
If OpenWindow(0, 0, 0, 200, 50, #PB_Window_ScreenCentered | #PB_Window_SystemMenu, "GadgetArray")
  CreateGadgetList(WindowID(0))
  For I = 0 To 2
    MyGadget(I) = ButtonGadget(#PB_Any, 10 + (60 * I), 10, 50, 25, "Button " + Str(I))
  Next
  Repeat
    Select WaitWindowEvent()
      Case #PB_Event_CloseWindow
        Break
      Case #PB_Event_Gadget
        Select EventGadgetID()
          Case MyGadget(0)
            Debug "Button 0"
          Case MyGadget(1)
            Debug "Button 1"
          Case MyGadget(2)
            Debug "Button 2"
        EndSelect
    EndSelect
  ForEver
EndIf
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Antworten