Wurde heute von Fred gefixed (also in der 3.93 beta 2)IceSoft hat geschrieben:'Erstaunlich das PB da keinen Fehler ausgibt... '
Habs mal als BUG ins Englische Forum gesetzt.
Structure an andere Structure kopieren
- NicTheQuick
- Ein Admin
- Beiträge: 8809
- Registriert: 29.08.2004 20:20
- Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti - Wohnort: Saarbrücken
So, (endlich) fertsch 
(Inline-Asm aktivieren!)
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

(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
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

Zuletzt geändert von Deeem2031 am 18.02.2005 22:34, insgesamt 1-mal geändert.

[url=irc://irc.freenode.org/##purebasic.de]irc://irc.freenode.org/##purebasic.de[/url]
Danke Deem 2031 !!!!
Ich habs gleich ausprobiert und es tuts und auch wieder nicht.
Irgendwas hab ich falsch gemacht ??
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
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

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
/ 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
Aber wenigstens stimmt die Anzahl der Zeilen
Ich hoffe Ihr findet den Fehler. Ich steh wie vor
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



Ich habs gleich ausprobiert und es tuts und auch wieder nicht.
Irgendwas hab ich falsch gemacht ??


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.

muß erst das da laufen sonst kann ich ja nur




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

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



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
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


Aber wenigstens stimmt die Anzahl der Zeilen

Ich hoffe Ihr findet den Fehler. Ich steh wie vor

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
Zuletzt geändert von Lupo am 18.02.2005 21:55, insgesamt 2-mal geändert.
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
so kürzen:
Du musst dann nur mind. einmal im Code "CopyStructureMap=0" oder "Global CopyStructureMap" o.ä. haben, weil der Compiler sonst v_CopyStructureMap nicht kennt.
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)
Code: Alles auswählen
!MOV dword[v_CopyStructureMap], s_wettkampf ;s_<Structure>
CopyStructure(@jahresergebnisse_schlecht(i),@match,SizeOf(wettkampf),CopyStructureMap)

[url=irc://irc.freenode.org/##purebasic.de]irc://irc.freenode.org/##purebasic.de[/url]
JUHU !!!
das wars !!! *freu* Ich hab gleich ausgebessert !!
Was bin ich blöd. Da hät ich selbst draufkommen können
Danke Deem2031 !!!
Echt Spitze !
Wie kriegt man jetzt noch die Zeile in eine Procedure ??
ohne das der compiler meckert ?
weil dann könnt ich wieder was vereinfachen.
Danke
LUPO



Was bin ich blöd. Da hät ich selbst draufkommen können


Danke Deem2031 !!!


Wie kriegt man jetzt noch die Zeile in eine Procedure ??
Code: Alles auswählen
!MOV dword[v_CopyStructureMap], s_wettkampf ;s_<Structure>
weil dann könnt ich wieder was vereinfachen.
Danke
LUPO
Danke, ich hab jetzt eine neue proc gemacht und da hab ich alles
hineingepackt und jetzt hab ich mit dem code riesige Freude
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
hineingepackt und jetzt hab ich mit dem code riesige Freude



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
- Andre
- PureBasic Team
- Beiträge: 1765
- Registriert: 11.09.2004 16:35
- Computerausstattung: MacBook Core2Duo mit MacOS 10.6.8
Lenovo Y50 i7 mit Windows 10 - Wohnort: Saxony / Deutscheinsiedel
- Kontaktdaten:
Der FlatAssember oder auch FAsm genannt. Link zur Homepage: http://flatassembler.net/Lupo hat geschrieben:Aber welcher ASM wird in PB verwendet ???