Gadgetproblem

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
KinkMike
Beiträge: 39
Registriert: 03.11.2007 18:30
Kontaktdaten:

Gadgetproblem

Beitrag von KinkMike »

Hallo,

ich habe vor ein paar Tagen mit dem Programmieren mit Purebasic angefangen und möchte nun ein eigenes Programm schreiben...

Jetzt hatte ich folgendes Problem:

Ich möchte gerne, dass durch anklicken des Buttons "eintragen" ein neuer Eintrag in die Tabelle mit Zeile X und Spalte Y

Mein Programm sieht bisher so aus:

Code: Alles auswählen

If OpenWindow(1,200,100,800,600,#PB_Window_SystemMenu | #PB_Window_MinimizeGadget,"Programm")
CreateGadgetList(WindowID())
EndIf



If PanelGadget  (0, 0, 30, 800, 570)
      AddGadgetItem (0, 0, "Page1")
      
        ListIconGadget(1,0,50,650,200,"Name",60,#PB_ListIcon_GridLines | #PB_ListIcon_FullRowSelect | #PB_ListIcon_HeaderDragDrop | #PB_ListIcon_AlwaysShowSelection)
            AddGadgetItem(1,1,"")      
          AddGadgetColumn(1,1,"Username",70)
                    
          AddGadgetColumn(1,2,"Passwort",70)
          
          AddGadgetColumn(1,3,"eMail",70)
         
          AddGadgetColumn(1,4,"Messenger",70)
          
          AddGadgetColumn(1,5,"Homepage",80)
          
          AddGadgetColumn(1,6,"Stadt",50)
          
          AddGadgetColumn(1,7,"Geb-Datum",80)
          
          
          StringGadget(2,0,255,80,20,"Zeile",#PB_String_ReadOnly)
          StringGadget(3,80,255,80,20,"Spalte",#PB_String_ReadOnly)
          StringGadget(4,160,255,120,20,"Neuer Inhalt",#PB_String_ReadOnly)
          
              
          StringGadget(5,0,275,80,20,a$,#PB_String_Numeric)
          StringGadget(6,80,275,80,20,b$,#PB_String_Numeric)
          StringGadget(7,160,275,120,20,c$)
          
          ButtonGadget(8, 0, 350, 100, 20, "eintragen",0)
          ButtonGadget(9, 100, 350, 100, 20, "ändern",0)
          ButtonGadget(10, 200, 350, 100, 20, "Master",0)
          
          
          ButtonGadget(11, 0, 370, 110, 20, "Datenbank speichern",0)
          ButtonGadget(12, 110, 370, 110, 20, "Datenbank löschen",0)
          ButtonGadget(13, 220, 370, 110, 20, "Datenbank laden",0) 
     
EndIf

ButtonGadget(14,10,10,75,23,"Change")
Repeat
      Event = WaitWindowEvent()
      Select Event
      Case #PB_Event_CloseWindow
        beenden_abfrage = MessageRequester("Programm","Wollen Sie das Programm wirklich beenden?",#PB_MessageRequester_YesNo)
        If beenden_abfrage = 6
        End
        If EventID = #PB_Event_CloseWindow
        Quit = 4
        EndIf
        EndIf      
     EndSelect
ForEver 
Repeat
  Event = WaitWindowEvent()
 Select Event
 
  If Event = #PB_Event_Gadget
   
    If EventGadgetID() = 8
        
        
    EndIf
     
  EndIf
 EndSelect 
ForEver
Ich hoffe mal ihr könnt mir helfen...
Benutzeravatar
Scarabol
Beiträge: 1427
Registriert: 30.11.2005 21:00

Beitrag von Scarabol »

oooohhh weh....

Um generell einen Eintrag hinzuzufügen, musst du AddGadgetItem verwenden. Steht alles in der Hilfe beschrieben einfach F1 drücken und staunen ;-)

Du musst die zweite Repeat Schleife auflösen und die If Abfrage mit in die erste packen, sonst tut sich da nüscht...

Gruß
Scarabol
Abgeschlossen Projekte:
Schreibmaschine, Bildschirmlupe, Wings3DtoOgreMeshConverter
Watch: PureArea

PB-V: 4
WinXP
Benutzeravatar
Thomas
Beiträge: 893
Registriert: 06.07.2006 19:24
Wohnort: Regensburg
Kontaktdaten:

Beitrag von Thomas »

Also nur mal zu Code:

Ich würde das ganze mal so anfangen ...

Code: Alles auswählen

#HauptFenster = 0
#HauptFensterWidth = 200
#HauptFensterHeight = 200
#AnwendungName = "Fenster"
#HauptFensterFlags = #PB_Window_ScreenCentered | #PB_Window_SystemMenu

#Menu = 0

Procedure HauptFenster()

  If OpenWindow(#HauptFenster, 0, 0, #HauptFensterWidth, #HauptFensterHeight, #AnwendungName, #HauptFensterFlags)

    ;{*****-Menu erstellen-*****
    If CreateMenu(#Menu, WindowID(#HauptFenster))
      
    EndIf
    ;}

    ;{*****-Toolbar erstellen-*****
    If CreateToolBar(#Menu, WindowID(#HauptFenster))
      
    EndIf
    ;}

    ;{*****-Gadgets erstellen-*****
    If CreateGadgetList(WindowID(#HauptFenster))
      
    EndIf
    ;}

    Beenden_HauptFenster = 0

    Repeat
      Event_HauptFenster = WaitWindowEvent()

      If Event_HauptFenster = #PB_Event_Gadget
        Select EventGadget()
          
        EndSelect
      EndIf

      If Event_HauptFenster = #PB_Event_Menu
        Select EventMenu()
        EndSelect
      Endif

      If Event_HauptFenster = #PB_Event_CloseWindow
        Beenden_HauptFenster = 1
      EndIf
    Until Beenden_HauptFenster <> 0

  Else
    MessageRequester("Fehler", "Fenster konnte nicht geöffnet werden.", #MB_ICONERROR)
    End
  EndIf
  CloseWindow(#HauptFenster)

  End

EndProcedure

HauptFenster()
Dann ist das ganze schon mal schön struckturiert.
Ach ja:
Welche PB-Version hast du?
v6.00
Benutzeravatar
KinkMike
Beiträge: 39
Registriert: 03.11.2007 18:30
Kontaktdaten:

...

Beitrag von KinkMike »

Ja, erst mal Danke für eure schnellen antworten.

Ich habe die PB-Version: 3.30
Benutzeravatar
Scarabol
Beiträge: 1427
Registriert: 30.11.2005 21:00

Beitrag von Scarabol »

*kopfschütteln*

Wieso haben immer noch so viele 3.3?
Was ist da den besser?

Gruß
Scarabol
Abgeschlossen Projekte:
Schreibmaschine, Bildschirmlupe, Wings3DtoOgreMeshConverter
Watch: PureArea

PB-V: 4
WinXP
Benutzeravatar
Thomas
Beiträge: 893
Registriert: 06.07.2006 19:24
Wohnort: Regensburg
Kontaktdaten:

Beitrag von Thomas »

In PB 3.3 müsste das so aussehen:

Code: Alles auswählen

#HauptFenster = 0 
#HauptFensterWidth = 200 
#HauptFensterHeight = 200 
#AnwendungName = "Fenster" 
#HauptFensterFlags = #PB_Window_SystemMenu 

#Menu = 0 

Procedure HauptFenster() 

  If OpenWindow(#HauptFenster, 100, 100, #HauptFensterWidth, #HauptFensterHeight, #HauptFensterFlags, #AnwendungName) 

    ;{*****-Menu erstellen-***** 
    If CreateMenu(#Menu, WindowID(#HauptFenster)) 
      
    EndIf 
    ;} 

    ;{*****-Toolbar erstellen-***** 
    If CreateToolBar(#Menu, WindowID(#HauptFenster)) 
      
    EndIf 
    ;} 

    ;{*****-Gadgets erstellen-***** 
    If CreateGadgetList(WindowID(#HauptFenster)) 
      
    EndIf 
    ;} 

    Beenden_HauptFenster = 0 

    Repeat 
      Event_HauptFenster = WaitWindowEvent() 

      If Event_HauptFenster = #PB_Event_Gadget 
        Select EventGadgetID() 
          
        EndSelect 
      EndIf 

      If Event_HauptFenster = #PB_Event_Menu 
        Select EventMenuID() 
          
        EndSelect 
      EndIf 

      If Event_HauptFenster = #PB_Event_CloseWindow 
        Beenden_HauptFenster = 1 
      EndIf 
    Until Beenden_HauptFenster <> 0 

  Else 
    MessageRequester("Fehler", "Fenster konnte nicht geöffnet werden.", #MB_ICONERROR) 
    End 
  EndIf 
  CloseWindow(#HauptFenster) 

  End 

EndProcedure 

HauptFenster() 
Aber wieso bringt der Debugger bei mir immer:
"Assembly error!"?
(Es liegt jedenfalls an der Zeile:

Code: Alles auswählen

      If Event_HauptFenster = #PB_Event_Menu 
        Select EventMenuID() 
          
        EndSelect 
      EndIf 
)
v6.00
Benutzeravatar
Scarabol
Beiträge: 1427
Registriert: 30.11.2005 21:00

Beitrag von Scarabol »

du hast kein Case verwendet

Gruß
Scarabol
Abgeschlossen Projekte:
Schreibmaschine, Bildschirmlupe, Wings3DtoOgreMeshConverter
Watch: PureArea

PB-V: 4
WinXP
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Beitrag von edel »

Scarabol hat geschrieben:*kopfschütteln*

Wieso haben immer noch so viele 3.3?
Was ist da den besser?

Gruß
Scarabol
PB ist keine Freeware und fuer einen Schueler relativ teuer.
Benutzeravatar
Scarabol
Beiträge: 1427
Registriert: 30.11.2005 21:00

Beitrag von Scarabol »

???

Gruß
Scarabol
Abgeschlossen Projekte:
Schreibmaschine, Bildschirmlupe, Wings3DtoOgreMeshConverter
Watch: PureArea

PB-V: 4
WinXP
Antworten