Seite 3 von 6

Verfasst: 17.02.2005 16:23
von DrShrek
IceSoft hat geschrieben:'Erstaunlich das PB da keinen Fehler ausgibt... '
Habs mal als BUG ins Englische Forum gesetzt.
Wurde heute von Fred gefixed (also in der 3.93 beta 2)

Verfasst: 17.02.2005 20:21
von NicTheQuick
Kann mir mal jemand sagen, was an diesem Thread für Anfäger ist? :?

Verfasst: 17.02.2005 20:51
von Lupo
@freedimension

ja das ist super nett dass ihr euch mit meinem ganzen prog
beschäftigen wollt. Ich schreibs zusammen was es ist aber heute nicht mehr
weil ich muß mich für morgen noch mathe fit machen sonst hab ich demnächst keine Zeit mehr zum proggen :mrgreen:

Bis bald

LUPO

Verfasst: 17.02.2005 21:58
von Deeem2031
So, (endlich) fertsch :)
(Inline-Asm aktivieren!)

Code: Alles auswählen

Structure wettkampf 
  Spielort.s 
  datum.s 
  gegner.s 
  Ergebnis.s 
  Spieler_1.s 
  Spieler_2.s 
  Spieler_3.s 
  Spieler_4.s 
  Spieler_5.s 
  Spieler_6.s 
  Spieler_7.s 
  Spieler_8.s 
  Spieler_9.s 
  Spieler_10.s 
  Spieler_11.s 
  Spieler_Ersatz1.s 
  Spieler_Ersatz2.s 
  Schiedsrichter.s 
EndStructure 

match.wettkampf 
Dim jahresergebnisse.wettkampf(50) 
Dim statistik.wettkampf(1000)

Procedure CopyStructure(source,dest,size,StructureMap)
  Protected i, StructureMapOffset
  StructureMapOffset = 0
  For i = 0 To size-1
    If PeekL(StructureMap+StructureMapOffset) = i
      MOV Ecx, i
      MOV Edx, Ecx
      ADD Ecx, dest
      ADD Edx, source
      MOV Edx, dword[Edx]
      CALL SYS_FastAllocateStringFree
      
      StructureMapOffset+4
      i+3
    Else
      PokeB(dest+i,PeekB(source+i))
    EndIf
  Next 
EndProcedure

match\Spielort = "Wiesbaden" 
match\datum = "24.7.2004" 
match\gegner = "GSV" 
match\Ergebnis = "2:4" 
match\Spieler_1 = "Huber" 
match\Spieler_2 = "Müller" 
match\Spieler_3 = "Eszgön" 
match\Spieler_4 = "Krallmann" 
match\Spieler_5 = "König" 
match\Spieler_6 = "Lindauer1" 
match\Spieler_7 = "Lindauer2" 
match\Spieler_8 = "Schwieken" 
match\Spieler_9 = "Rülberg" 
match\Spieler_10 = "Steenken" 
match\Spieler_11 = "Schwelm" 
match\Spieler_Ersatz1 = "Zeppelin" 
match\Spieler_Ersatz2 = "Barth" 
match\Schiedsrichter = "von Weilen" 


Debug Str(@match\Spielort)+" :"+match\Spielort
Debug Str(@jahresergebnisse(8)\Spielort)+" :"+jahresergebnisse(8)\Spielort
Debug "Copy..."

CopySrc = @match
CopyDest = @jahresergebnisse(8)
CopySize = SizeOf(wettkampf)
CopyStructureMap = 0
!MOV dword[v_CopyStructureMap], s_wettkampf ;s_<Structure>
CopyStructure(CopySrc,CopyDest,CopySize,CopyStructureMap)


Debug Str(@match\Spielort)+" :"+match\Spielort
Debug Str(@jahresergebnisse(8)\Spielort)+" :"+jahresergebnisse(8)\Spielort
Wer's versteht: Respekt ^^
Aber ich geb euch keine Garantie das das ganze PB-technisch richtig läuft.

@NTQ: Na das sind doch Grundlagen die jeder PBler wissen muss :mrgreen:

Verfasst: 18.02.2005 19:26
von Lupo
Danke Deem 2031 !!!! :allright: :allright: :allright:

Ich habs gleich ausprobiert und es tuts und auch wieder nicht.
Irgendwas hab ich falsch gemacht ?? :cry: :cry: Oder ich hab
mich verrant und es geht ganz anders viel besser :?:

Wenns euch wirklich interessiert erklär ich euch das Proggi jetzt.

Also: Es gibt eine Datei mit Spielergebnissen von einem ganzen Jahr
und die müssen jetzt sortiert werden. Da gibt es 4 Beurteilungen und das
müssen Trainer und Funktionäre beurteilen wohin ein jedes Spiel zu kommen hat. Es
gibt also 4 Buttons wohin man das Spiel ablegen kann.

Mit dem Laden Button kommt wieder ein neues Spiel in die Anzeige und
das wird dann wieder abgelegt undsoweiter. Mit dem Anzeigenbutton kann
man sich jederzeit die Spiele auf der Liste angucken. Wenn alle Spiele
sortiert sind dann soll man das alles ausdrucken können aber da bi ich
noch nicht soweit ich tu erst seit Jänner mit PB proggen und das muß auf
einen Laserdrucker gehen und da hab ich noch keine Plan. :| Aber da
muß erst das da laufen sonst kann ich ja nur :( :( :( :( ausdrucken.

Leider kann man die Ergebnisse nicht automatisch sortieren weil das hängt
auch vom Gegner und den Spielern und so ab (starker Gegner und 0:1
ist vielleicht sehr gut aber schwacher Gegner und 0:0 ist nur durchschnittlich)

Das mit dem disablen von den Buttons hab ich gemacht weil die Leute
die das proggi bekommen (mein Onkel) drücken sicher falsch herum :roll:
Die brauchen das für einen Leistungsnachweis wegen Fördergelder und so.

Das Design hab ich von einem Buchhaltungsproggi gestohlen und mit dem
Visual Designer nachgebaut :mrgreen: :mrgreen: :mrgreen:

Weil ich die Datei da im Forum nicht mitsenden kann hab ich auf die
schnelle was getrickst was die Datei simulirt.

Die 2te Datei vom Visual Designer hab ich gleich dazukopiert weil sonst
kann es ja keiner einfach laden

Hier ist der Code

Code: Alles auswählen

; ################ Mein erstes (richtiges) PUREBASIC Proggi !!!! ######## von LUPO #######
; ##### Mit Hilfe von Deeem2031 und den coolen Pureboard Members #########################
; ##### Danke an den Visual Designer, hast mir viel Tipparbeit abgenommen ################
; ##### tuts nur unter 3.93 weil sonst gibts Ärger mit dem Assemblercode #################
; ##### nicht vergessen ASM option abhaken sonst gehts auch nicht ########################

; PureBasic Visual Designer v3.90 build 1360

;- Window Constants
;
Enumeration
  #Window_0
EndEnumeration

;- Gadget Constants
;
Enumeration
  #Button_Laden
  #Frame3D_0
  #Text_Datum
  #Text_Gegner
  #Text_Ort
  #Text_Ergebnis
  #Text_spieler1
  #Text_spieler2
  #Text_spieler3
  #Text_spieler4
  #Text_spieler5
  #Text_spieler6
  #Text_spieler7
  #Text_spieler8
  #Text_spieler9
  #Text_spieler10
  #Text_spieler11
  #Frame3D_1
  #Frame3D_2
  #Frame3D_3
  #Frame3D_4
  #Frame3D_5
  #Frame3D_6
  #Frame3D_7
  #Text_schiedsrichter
  #Text_Reservespieler1
  #Text_Reservespieler2
  #Frame3D_8
  #Button_sehrgut
  #Button_gut
  #Button_durchschnittlich
  #Button_schlecht
  #Text_Zahlsehrgut
  #Text_Zahlgut
  #Text_zahldurchschnittlich
  #Text_zahlschlecht
  #Button_Anzeigensehrgut
  #Button_Anzeigengut
  #Button_Anzeigendurchschnittlich
  #Button_Anzeigenschlecht
  #ListIcon_0
  #Button_loschen
EndEnumeration

;- Fonts
;
Global FontID1
FontID1 = LoadFont(1, "Arial", 20, #PB_Font_Bold)
Global FontID2
FontID2 = LoadFont(2, "Arial", 14, #PB_Font_Bold)

Procedure Open_Window_0()
  If OpenWindow(#Window_0, 274, -11, 701, 594,  #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_SizeGadget | #PB_Window_TitleBar , "Match-Sortierer")
    If CreateGadgetList(WindowID())
      ButtonGadget(#Button_Laden, 310, 10, 90, 30, "Laden")
      Frame3DGadget(#Frame3D_0, 30, 50, 650, 270, "")
      TextGadget(#Text_Datum, 80, 80, 110, 20, "")
      TextGadget(#Text_Gegner, 80, 130, 110, 20, "")
      TextGadget(#Text_Ort, 80, 180, 110, 20, "")
      TextGadget(#Text_Ergebnis, 60, 250, 110, 40, "")
      SetGadgetFont(#Text_Ergebnis, FontID1)
      TextGadget(#Text_spieler1, 270, 80, 170, 20, "")
      TextGadget(#Text_spieler2, 270, 100, 170, 20, "")
      TextGadget(#Text_spieler3, 270, 120, 170, 20, "")
      TextGadget(#Text_spieler4, 270, 140, 170, 20, "")
      TextGadget(#Text_spieler5, 270, 160, 170, 20, "")
      TextGadget(#Text_spieler6, 270, 180, 170, 20, "")
      TextGadget(#Text_spieler7, 270, 200, 170, 20, "")
      TextGadget(#Text_spieler8, 270, 220, 170, 20, "")
      TextGadget(#Text_spieler9, 270, 240, 170, 20, "")
      TextGadget(#Text_spieler10, 270, 260, 170, 20, "")
      TextGadget(#Text_spieler11, 270, 280, 170, 20, "")
      Frame3DGadget(#Frame3D_1, 230, 60, 220, 250, "Spieler")
      Frame3DGadget(#Frame3D_2, 50, 210, 160, 100, "Ergebnis")
      Frame3DGadget(#Frame3D_3, 50, 160, 160, 50, "Ort")
      Frame3DGadget(#Frame3D_4, 50, 110, 160, 50, "Gegner")
      Frame3DGadget(#Frame3D_5, 50, 60, 160, 50, "Datum")
      Frame3DGadget(#Frame3D_6, 470, 60, 190, 50, "Schiedsrichter")
      Frame3DGadget(#Frame3D_7, 470, 130, 190, 70, "Reservespieller")
      TextGadget(#Text_schiedsrichter, 490, 80, 150, 20, "")
      TextGadget(#Text_Reservespieler1, 490, 150, 160, 20, "")
      TextGadget(#Text_Reservespieler2, 490, 170, 160, 20, "")
      Frame3DGadget(#Frame3D_8, 30, 330, 650, 80, "Sortiere nach")
      ButtonGadget(#Button_sehrgut, 50, 350, 130, 20, "Sehr gute Spiele")
      ButtonGadget(#Button_gut, 210, 350, 140, 20, "Gute Spiele")
      ButtonGadget(#Button_durchschnittlich, 380, 350, 130, 20, "durchschnittliche Spiele")
      ButtonGadget(#Button_schlecht, 540, 350, 120, 20, "Schlechte Spiele")
      TextGadget(#Text_Zahlsehrgut, 90, 380, 50, 20, "0", #PB_Text_Center)
      SetGadgetFont(#Text_Zahlsehrgut, FontID2)
      TextGadget(#Text_Zahlgut, 250, 380, 50, 20, "0", #PB_Text_Center)
      SetGadgetFont(#Text_Zahlgut, FontID2)
      TextGadget(#Text_zahldurchschnittlich, 420, 380, 50, 20, "0", #PB_Text_Center)
      SetGadgetFont(#Text_zahldurchschnittlich, FontID2)
      TextGadget(#Text_zahlschlecht, 570, 380, 50, 20, "0", #PB_Text_Center)
      SetGadgetFont(#Text_zahlschlecht, FontID2)
      ButtonGadget(#Button_Anzeigensehrgut, 70, 420, 90, 20, "Anzeigen")
      ButtonGadget(#Button_Anzeigengut, 230, 420, 90, 20, "Anzeigen")
      ButtonGadget(#Button_Anzeigendurchschnittlich, 400, 420, 90, 20, "Anzeigen")
      ButtonGadget(#Button_Anzeigenschlecht, 550, 420, 90, 20, "Anzeigen")
      
      ;-
      ListIconGadget(#ListIcon_0, 30, 450, 650, 110, "Datum", 100)
      AddGadgetColumn(#ListIcon_0, 2, "Ort", 100)
      AddGadgetColumn(#ListIcon_0, 3, "Datum", 100)
      AddGadgetColumn(#ListIcon_0, 4, "Gegner", 100)
      AddGadgetColumn(#ListIcon_0, 5, "Spieler 1", 100)
      AddGadgetColumn(#ListIcon_0, 6, "Spieler 2", 100)
      AddGadgetColumn(#ListIcon_0, 7, "Spieler 3", 100)
      AddGadgetColumn(#ListIcon_0, 8, "Spieler 4", 100)
      AddGadgetColumn(#ListIcon_0, 9, "Spieler 5", 100)
      AddGadgetColumn(#ListIcon_0, 10, "Spieler 6", 100)
      AddGadgetColumn(#ListIcon_0, 11, "Spieler 7", 100)
      AddGadgetColumn(#ListIcon_0, 12, "Spieler 8", 100)
      AddGadgetColumn(#ListIcon_0, 13, "Spieler 9", 100)
      AddGadgetColumn(#ListIcon_0, 14, "Spieler 10", 100)
      AddGadgetColumn(#ListIcon_0, 15, "Spieler 11", 100)
      AddGadgetColumn(#ListIcon_0, 17, "Schiedsrichter", 100)
      AddGadgetColumn(#ListIcon_0, 17, "Reservespieler 1", 100)
      AddGadgetColumn(#ListIcon_0, 18, "Reservespieler 2", 100)
      ButtonGadget(#Button_loschen, 300, 570, 110, 20, "Löschen")
      
    EndIf
  EndIf
EndProcedure

Structure wettkampf 
Spielort.s 
datum.s 
gegner.s 
Ergebnis.s 
Spieler_1.s 
Spieler_2.s 
Spieler_3.s 
Spieler_4.s 
Spieler_5.s 
Spieler_6.s 
Spieler_7.s 
Spieler_8.s 
Spieler_9.s 
Spieler_10.s 
Spieler_11.s 
Spieler_Ersatz1.s 
Spieler_Ersatz2.s 
Schiedsrichter.s 
EndStructure 

Global CopyStructureMap ; ohne geht nicht sonst Compilerfehler 
Global match.wettkampf 
Dim jahresergebnisse_sehrgut.wettkampf(50) 
Dim jahresergebnisse_gut.wettkampf(50) 
Dim jahresergebnisse_durchschnittlich.wettkampf(50) 
Dim jahresergebnisse_schlecht.wettkampf(50) 
; Dim statistik.wettkampf(1000) brauch ich jetzt noch nicht

leere.wettkampf

match\Spielort = "Wiesbaden" 
match\datum = "24.7.2004" 
match\gegner = "GSV" 
match\Ergebnis = "2:4" 
match\Spieler_1 = "Huber" 
match\Spieler_2 = "Müller" 
match\Spieler_3 = "Eszgön" 
match\Spieler_4 = "Krallmann" 
match\Spieler_5 = "König" 
match\Spieler_6 = "Lindauer1" 
match\Spieler_7 = "Lindauer2" 
match\Spieler_8 = "Schwieken" 
match\Spieler_9 = "Rülberg" 
match\Spieler_10 = "Steenken" 
match\Spieler_11 = "Schwelm" 
match\Spieler_Ersatz1 = "Zeppelin" 
match\Spieler_Ersatz2 = "Barth" 
match\Schiedsrichter = "von Weilen"


Procedure matchdaten_holen () ; wenns echt läuft kommen die Daten von einer
                              ; Diskette deswegen hab ich ein dummy geprogt
Static laden_zaehler

match\Spielort = "Wiesbaden" + "Test " + Str(laden_zaehler)
match\datum = "24.7.2004" + "Test " + Str(laden_zaehler)
match\gegner = "GSV" + "Test " + Str(laden_zaehler)
match\Ergebnis = Str(laden_zaehler) + ":0"
match\Spieler_1 = "Huber" + "Test " + Str(laden_zaehler)
match\Spieler_2 = "Müller" + "Test " + Str(laden_zaehler)
match\Spieler_3 = "Eszgön" + "Test " + Str(laden_zaehler)
match\Spieler_4 = "Krallmann" + "Test " + Str(laden_zaehler)
match\Spieler_5 = "König" + "Test " + Str(laden_zaehler)
match\Spieler_6 = "Lindauer1" + "Test " + Str(laden_zaehler)
match\Spieler_7 = "Lindauer2" + "Test " + Str(laden_zaehler)
match\Spieler_8 = "Schwieken" + "Test " + Str(laden_zaehler)
match\Spieler_9 = "Rülberg" + "Test " + Str(laden_zaehler)
match\Spieler_10 = "Steenken" + "Test " + Str(laden_zaehler)
match\Spieler_11 = "Schwelm" + "Test " + Str(laden_zaehler)
match\Spieler_Ersatz1 = "Zeppelin" + "Test " + Str(laden_zaehler)
match\Spieler_Ersatz2 = "Barth" + "Test " + Str(laden_zaehler)
match\Schiedsrichter = "von Weilen"+ "Test " + Str(laden_zaehler)

laden_zaehler = laden_zaehler + 1

EndProcedure

Procedure matchdaten_anzeigen (disable) ; da hab ich das disable zugeschummelt :)

SetGadgetText(#Text_Ort, match\Spielort)
SetGadgetText(#Text_Datum, match\datum)
SetGadgetText(#Text_Gegner, match\gegner)
SetGadgetText(#Text_Ergebnis, match\Ergebnis)
SetGadgetText(#Text_spieler1, match\Spieler_1)
SetGadgetText(#Text_spieler2, match\Spieler_2)
SetGadgetText(#Text_spieler3, match\Spieler_3)
SetGadgetText(#Text_spieler4, match\Spieler_4)
SetGadgetText(#Text_spieler5, match\Spieler_5)
SetGadgetText(#Text_spieler6, match\Spieler_6)
SetGadgetText(#Text_spieler7, match\Spieler_7)
SetGadgetText(#Text_spieler8, match\Spieler_8)
SetGadgetText(#Text_spieler9, match\Spieler_9)
SetGadgetText(#Text_spieler10, match\Spieler_10)
SetGadgetText(#Text_spieler11, match\Spieler_11)
SetGadgetText(#Text_Reservespieler1, match\Spieler_Ersatz1)
SetGadgetText(#Text_Reservespieler2,match\Spieler_Ersatz2)
SetGadgetText(#Text_schiedsrichter, match\Schiedsrichter)
DisableGadget(#Button_Laden, disable)

EndProcedure

Procedure Listicon_Anzeige(i) ; blöde lange Zeilen warum kann man das nicht aufteilen ???
AddGadgetItem(#ListIcon_0, i - 1 , match\Spielort + Chr(10) + match\datum + Chr(10) + match\gegner + Chr(10) + match\Ergebnis + Chr(10) + match\Spieler_1 + Chr(10) + match\Spieler_2 + Chr(10) + match\Spieler_3 + Chr(10) + match\Spieler_4 + Chr(10) + match\Spieler_5 + Chr(10) + match\Spieler_6 + Chr(10) + match\Spieler_7 + Chr(10) + match\Spieler_8 + Chr(10) + match\Spieler_9 + Chr(10) + match\Spieler_10 + Chr(10) + match\Spieler_11 + Chr(10) + match\Schiedsrichter + Chr(10) + match\Spieler_Ersatz1 + Chr(10) + match\Spieler_Ersatz2)
EndProcedure

Procedure buttondisablen(ja) ; oder nein eben
      DisableGadget(#Button_sehrgut, ja)
      DisableGadget(#Button_gut, ja)
      DisableGadget(#Button_durchschnittlich, ja)
      DisableGadget(#Button_schlecht, ja)
EndProcedure

Procedure CopyStructure(source,dest,size,StructureMap)  ; made by Deem2031 super danke !
  Protected i, StructureMapOffset,*tmp_s.STRING 
  StructureMapOffset = 0 
  For i = 0 To size-1 
    If PeekL(StructureMap+StructureMapOffset) = i 
      MOV Ecx, i 
      MOV Edx, i 
      ADD Ecx, dest 
      ADD Edx, source 
      MOV Edx, dword[Edx] 
      CALL SYS_FastAllocateStringFree 
      
      StructureMapOffset+4 
      i+3 
    Else 
      PokeB(dest+i,PeekB(source+i)) 
    EndIf 
  Next 
EndProcedure

Procedure CopyStructureToStructure(*copySrc, *CopyDest, CopySize)
   CopyStructureMap = 0 
   !MOV dword[v_CopyStructureMap], s_wettkampf ;s_<Structure> 
    CopyStructure(*copySrc,*CopyDest,CopySize,CopyStructureMap)
EndProcedure

; START !!!!!! ###########################################################

Open_Window_0()
buttondisablen(1)
DisableGadget(#Button_Anzeigensehrgut, 1)
DisableGadget(#Button_Anzeigengut, 1)
DisableGadget(#Button_Anzeigenschlecht, 1)
DisableGadget(#Button_Anzeigendurchschnittlich, 1)


Repeat
  
  Event = WaitWindowEvent()
  
  If Event = #PB_EventGadget
    
    GadgetID = EventGadgetID()
    
    If GadgetID = #Button_Laden
      matchdaten_holen () 
      matchdaten_anzeigen (1)
      buttondisablen(0)
       
    ElseIf GadgetID = #Button_sehrgut
      Sehrgut_zaehler = Sehrgut_zaehler + 1
      CopyStructureToStructure(@match, @jahresergebnisse_sehrgut(Sehrgut_zaehler), SizeOf(wettkampf))
      SetGadgetText(#Text_Zahlsehrgut, Str(Sehrgut_zaehler))
      DisableGadget(#Button_Anzeigensehrgut, 0)
      buttondisablen(1)
      CopyStructureToStructure(@leere, @match, SizeOf(wettkampf))
      matchdaten_anzeigen (0)
      
    ElseIf GadgetID = #Button_gut
      gut_zaehler = gut_zaehler + 1
      CopyStructureToStructure(@match, @jahresergebnisse_gut(gut_zaehler), SizeOf(wettkampf))
      SetGadgetText(#Text_Zahlgut, Str(gut_zaehler))
      DisableGadget(#Button_Anzeigengut, 0)
      buttondisablen(1)
      CopyStructureToStructure(@leere, @match, SizeOf(wettkampf))
      matchdaten_anzeigen (0)
      
    ElseIf GadgetID = #Button_durchschnittlich
      durchschnittlich_zaehler = durchschnittlich_zaehler + 1
      CopyStructureToStructure(@match, @jahresergebnisse_durchschnittlich(durchschnittlich_zaehler), SizeOf(wettkampf))
      SetGadgetText(#Text_zahldurchschnittlich, Str(durchschnittlich_zaehler))
      DisableGadget(#Button_Anzeigendurchschnittlich, 0)
      buttondisablen(1)
      CopyStructureToStructure(@leere, @match, SizeOf(wettkampf))
      matchdaten_anzeigen (0)
      
    ElseIf GadgetID = #Button_schlecht
      schlecht_zaehler = schlecht_zaehler + 1
      CopyStructureToStructure(@match, @jahresergebnisse_schlecht(schlecht_zaehler), SizeOf(wettkampf))
      SetGadgetText(#Text_zahlschlecht, Str(schlecht_zaehler))
      DisableGadget(#Button_Anzeigenschlecht, 0)
      buttondisablen(1)
      CopyStructureToStructure(@leere, @match, SizeOf(wettkampf))
      matchdaten_anzeigen (0)
      
    ElseIf GadgetID = #Button_Anzeigensehrgut
      ClearGadgetItemList(#ListIcon_0)
      For i = 1 To Sehrgut_zaehler        
      CopyStructureToStructure(@jahresergebnisse_sehrgut(i), @match, SizeOf(wettkampf))
      Listicon_Anzeige(i) 
      Next i       
      
    ElseIf GadgetID = #Button_Anzeigengut
      ClearGadgetItemList(#ListIcon_0)
      For i = 1 To gut_zaehler        
      CopyStructureToStructure(@jahresergebnisse_gut(i), @match, SizeOf(wettkampf))
      Listicon_Anzeige(i) 
      Next i       
      
    ElseIf GadgetID = #Button_Anzeigendurchschnittlich
      ClearGadgetItemList(#ListIcon_0)
      For i = 1 To durchschnittlich_zaehler        
      CopyStructureToStructure(@jahresergebnisse_durchschnittlich(i), @match, SizeOf(wettkampf))
      CopySrc =  @jahresergebnisse_durchschnittlich(i)
      Listicon_Anzeige(i) 
      Next i       
      
    ElseIf GadgetID = #Button_Anzeigenschlecht
      ClearGadgetItemList(#ListIcon_0)
      For i = 1 To schlecht_zaehler        
      CopyStructureToStructure(@jahresergebnisse_schlecht(i), @match, SizeOf(wettkampf))
      Listicon_Anzeige(i) 
      Next i       
      
    ElseIf GadgetID = #Button_loschen
      ClearGadgetItemList(#ListIcon_0)

;    da gehts dann weiter mit dem Ausdrucken aber da hab ich noch keinen Plan
;    ElseIf GadgetID = #Button_drucken
      
    EndIf
    
  EndIf
  
Until Event = #PB_EventCloseWindow

End


/ edit
jetzt hab ich alles ausgebessert wie Deem2031 gemeint hat. Läuft super !!!
/ Edit

Ich hoff es hat wer die Zeit und guckt sich das mal an. Leider hats
einen Fehler:

In dem Listicon steht immer derselbe Eintrag :cry: :cry:
Aber wenigstens stimmt die Anzahl der Zeilen :)
Ich hoffe Ihr findet den Fehler. Ich steh wie vor :bluescreen:

Ich würde auch gerne verstehen was die Assemblercodes da machen.
Habt Ihr eine Ahnung wo man sich ein Tutorial ziehen kann aus dem inet?
Ich möcht das auch möglichst bald verstehen weil mich das immer nervt
wenn ich nichts weis darüber und wenn man es schon für einfache
proggis braucht dann kann ich ja nie selbst was komplizierteres machen.

Danke

LUPO

Verfasst: 18.02.2005 20:35
von Deeem2031
Kann es sein das du beim Anzeigen anstatt "@jahresergebnisse_sehrgut(Sehrgut_zaehler)" das "@jahresergebnisse_sehrgut(i)" schreiben müsstest?
So wie ich das verstanden hab werden die dann nämlich richtig angezeigt..

Edit:
Du kannst übrigens das

Code: Alles auswählen

      CopySrc =  @jahresergebnisse_schlecht(i) 
      CopyDest =  @match 
      CopySize = SizeOf(wettkampf) 
      CopyStructureMap = 0 
      !MOV dword[v_CopyStructureMap], s_wettkampf ;s_<Structure> 
      CopyStructure(CopySrc,CopyDest,CopySize,CopyStructureMap)
so kürzen:

Code: Alles auswählen

      !MOV dword[v_CopyStructureMap], s_wettkampf ;s_<Structure> 
      CopyStructure(@jahresergebnisse_schlecht(i),@match,SizeOf(wettkampf),CopyStructureMap)
Du musst dann nur mind. einmal im Code "CopyStructureMap=0" oder "Global CopyStructureMap" o.ä. haben, weil der Compiler sonst v_CopyStructureMap nicht kennt.

Verfasst: 18.02.2005 21:12
von Lupo
JUHU !!! :D :D :D das wars !!! *freu* Ich hab gleich ausgebessert !!
Was bin ich blöd. Da hät ich selbst draufkommen können :oops: :oops:


Danke Deem2031 !!! :praise: :praise: Echt Spitze !


Wie kriegt man jetzt noch die Zeile in eine Procedure ??

Code: Alles auswählen

!MOV dword[v_CopyStructureMap], s_wettkampf ;s_<Structure> 
ohne das der compiler meckert ?
weil dann könnt ich wieder was vereinfachen.

Danke

LUPO

Verfasst: 18.02.2005 21:16
von Deeem2031
"Global CopyStructureMap" und schön müsste es auch in einer Proc funktionieren, aber vielleicht reicht dir auch das was ich bei meinem letzten Post noch angehangen hab.

Verfasst: 18.02.2005 22:03
von Lupo
Danke, ich hab jetzt eine neue proc gemacht und da hab ich alles
hineingepackt und jetzt hab ich mit dem code riesige Freude :D :D :D
Auch wenns unprofesionell ist aber mich freuts eben ! :) :)

Ich hab nur die CopyStructureMap globalisieren müssen weil sonst
gehts nicht. Wenn man es innerhalb der proc definiert nutzt es nix.

Jetzt hab ich nur die Frage wo ich mehr über den ASM lernen kann weil
das Thema interessiert mich :) :) :)

Aber welcher ASM wird in PB verwendet ???

Danke

LUPO

Verfasst: 19.02.2005 19:02
von Andre
Lupo hat geschrieben:Aber welcher ASM wird in PB verwendet ???
Der FlatAssember oder auch FAsm genannt. Link zur Homepage: http://flatassembler.net/