Listviewgadget mit Listicongadget verbinden?

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
hardfalcon
Beiträge: 3447
Registriert: 29.08.2004 20:46

Beitrag von hardfalcon »

Ma ne ganz dumme Frage (schlagt mich bitte nicht): Warum willst du da morikus was neues Programmieren? Warum nimmst du nicht einfach ne Tabellenkalkulation oder ein Datenbankprogramm für den Job (neuerdings ist ja bei OpenOffice "out-of-the-Box" anscheinend auch ne recht brauchabre Stand-Alone-Datenbank dabei). Die Tatsache, dass man das Rad neu erfinden *könnte*, bedeutet ja nicht, das man nicht auch ein bestehendes Rad verwenden könnte... :allright:
Benutzeravatar
Xaby
Beiträge: 2144
Registriert: 12.11.2005 11:29
Wohnort: Berlin + Zehdenick
Kontaktdaten:

Beitrag von Xaby »

OpenOffice.org Base :shock:

Nun war ich fast schon soweit, dass ich meinen Code posten konnte und dann kommst du. Kannst einem aber auch jeden Spaß verderben :cry:

Naja, sie hat noch ein zwei Fehler, werd ins Bett.

Aber ist einfach, übersichtlich und verständlich. Kann nicht viel, aber hier schon mal eine fehlerhafte Version:

Code: Alles auswählen

Enumeration
  #MainWin 
EndEnumeration


If OpenWindow(#MainWin, 0, 0, 420, 420, "Liste", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) And CreateGadgetList(WindowID(0))
  ListIconGadget(2,  10, 280, 400, 130, "Kunde",200,#PB_ListIcon_FullRowSelect|#PB_ListIcon_GridLines|#PB_ListIcon_FullRowSelect|#PB_ListIcon_AlwaysShowSelection)
  SetGadgetData(2,0) ; Anzahl der Spalten
  
  ListIconGadget(3,  10, 20, 150, 130, "Anzahl",50,#PB_ListIcon_FullRowSelect|#PB_ListIcon_AlwaysShowSelection)
  AddGadgetColumn(3,1,"ID",60)
  
  ListIconGadget(4, 235,5, 170, 110, "Bez.",70,#PB_ListIcon_FullRowSelect|#PB_ListIcon_MultiSelect|#PB_ListIcon_AlwaysShowSelection)
  AddGadgetColumn(4,1,"ID",30)
  AddGadgetColumn(4,2,"Preis",40)
  
   
  
  StringGadget(21,10,250,200,20,"Name")
  ButtonGadget(22,220,250,40,20,"\/") 
  
  SpinGadget( 31,180,50,40,20,0,100,#PB_Spin_Numeric)
  SetGadgetState(31,1)
  ButtonGadget( 32,180,70,40,20,"<--")
  ButtonGadget( 33,170,100,20,20,"-")
  ButtonGadget( 34,170,120,20,20,"+")
   
  StringGadget(41,250,120,100,20,"Bezeichnung")
  StringGadget(42,250,140,100,20,"ID001")
  StringGadget(43,250,160,100,20,"76",#PB_String_Numeric) ; Preis in Cent
  
  ButtonGadget( 44,360,120,30,60,"/\")
  
  
  ; ID, NAME, PREIS, Liter
  
  Repeat 
    Event=WaitWindowEvent()
    
    If GetActiveWindow()=#MainWin 
      If Event=#PB_Event_CloseWindow 
        Quit=1
      EndIf
   
    
    
    If Event=#PB_Event_Gadget
      GadgetNr=EventGadget()
      
      
      If GadgetNr=22 ; [ \/ ]  fügt Kunden hinzu (Kunden mit gleichem Namen stehen einfach so in der Liste, ohne eindeutige Identifizierung!)
        If GetGadgetText(21)<>"" ; oder schon mal vorhanden, müsste hier überprüft werden
          AddGadgetItem(2,-1,GetGadgetText(21))
        EndIf  
        
      EndIf
      If GadgetNr=44 ; [ /\ ]
        ;If GetGadgetText(41) ... fügt auch leere Felder und falsch ausgefüllte hinzu
        AddGadgetItem(4,-1,GetGadgetText(41)+Chr(10)+GetGadgetText(42)+Chr(10)+GetGadgetText(43))
      EndIf
      
      If GadgetNr=32 ; [<--]
        If GetGadgetState(31)<>0 And GetGadgetState(4)<>-1 ; Liste der Ware
          AddGadgetItem(3,-1,GetGadgetText(31)+Chr(10)+GetGadgetItemText(4,GetGadgetState(4),1))
          
          Debug CountGadgetItems(3)
          Debug GetGadgetData(2)
          
          While GetGadgetData(2) < CountGadgetItems(3)*2
            SetGadgetData(2,GetGadgetData(2)+2)
            AddGadgetColumn(2,GetGadgetData(2),"Anz.",40)
            AddGadgetColumn(2,GetGadgetData(2),"ID",40)
          Wend 
          
          SetGadgetItemText(2,GetGadgetState(31),GetGadgetItemText(3,CountGadgetItems(3)-1,0),(CountGadgetItems(3)-1)*2+1)
          SetGadgetItemText(2,GetGadgetState(31),GetGadgetItemText(3,CountGadgetItems(3)-1,1),(CountGadgetItems(3)-1)*2+2)
          
        EndIf  
      EndIf
      
      If GadgetNr=2 ; KundenAuswahl
        ;If GetGadgetState(2)>-1
          ClearGadgetItemList(3) ; Liste mit gekauften Getränken wird geleert
          
          If GetGadgetData(2)>1
          For i=1 To GetGadgetData(2); /2
            AddGadgetItem(3,-1,GetGadgetItemText(2,GetGadgetState(2),i))
            
          Next
          EndIf
        ;EndIf  
      EndIf
      
   
   EndIf 
  EndIf   
    
    
  Until Quit
  
EndIf

CloseWindow(0)
Kinder an die Macht http://scratch.mit.edu/
Benutzeravatar
skey-z
Beiträge: 18
Registriert: 04.05.2007 18:04
Wohnort: Velbert
Kontaktdaten:

Beitrag von skey-z »

Danke für die Initative Xaby, werde mal schauen, was sich daraus machen lässt.

@hardfalcon

falls du meinen ersten Post gelesen hast, ich habe PB erst seit einigen Tagen und um mich einzuarbeiten erstelle ich halt ein paar Programme, die es vlt. auch schon zu Hauf gibt, aber es heist ja 'learning by doing', also mache ich es auch so.
PB 4.02, BB3D 1.98

Woran erkannt man einen Basic Programmierer?
-Er drückt beim absenden einer Nachricht F5, muahahaha!!!
Antworten