Delphi-PRAXiS
Seite 2 von 5     12 34     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Zählsystem für Tennis entwickeln (https://www.delphipraxis.net/100047-zaehlsystem-fuer-tennis-entwickeln.html)

torud 23. Sep 2007 10:22

Re: Zählsystem für Tennis entwickeln
 
Habe gerade gesehen, dass in Alzaimar´s Beispiel der Tiebreak noch nicht mit drin war. Ich werde mal ein kleines Beispiel-Projekt "bauen", welches ich hier dann hochladen. Jeder der will, kann ja mitmachen und verbessen...denn es gibt schon einige Optionen im Tennis, die es zu berücksichtigen gibt...

torud 23. Sep 2007 11:29

Re: Zählsystem für Tennis entwickeln
 
Liste der Anhänge anzeigen (Anzahl: 1)
habe gerade versucht die tennis.pas mit ins Projekt einzubinden, damit zu spielen und sie zu verstehen. ich band die Unit also ein und wollte dann TE_Spiel.SetPoint aufrufen, aber leider geht das nicht. Warum nur?

Im Anhang mal ein kleines Beispiel-Projekt

torud 23. Sep 2007 12:58

Re: Zählsystem für Tennis entwickeln
 
Ich habe den Code der Tennis.pas nun mit in meine Unit kopiert und rufe SetPoint so über nen Button auf:

Delphi-Quellcode:
TE_Spiel.SetPoint(ts1,false);
Leider geht das scheinbar nicht so, da mir Delphi meldet, dass "Die Form des Methodeaufrufs nur für Klassenmethoden erlaubt ist."

Was bedeutet das?
Und muss ich wirklich den gesamten Code mit in meine HauptUnit aufnehmen?

cruiser 23. Sep 2007 16:54

Re: Zählsystem für Tennis entwickeln
 
Du musst auch den Interface-Teil mitnehmen, da ich bereits angefangen habe Klassen zu bauen :mrgreen:

torud 23. Sep 2007 18:22

Re: Zählsystem für Tennis entwickeln
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich habe den Code der Tennis.pas nun mit in meine Unit kopiert und rufe SetPoint so über nen Button auf:

Delphi-Quellcode:
TE_Spiel.SetPoint(ts1,false);
Leider geht das scheinbar nicht so, da mir Delphi meldet, dass "Die Form des Methodeaufrufs nur für Klassenmethoden erlaubt ist."

Was bedeutet das?
Und muss ich wirklich den gesamten Code mit in meine HauptUnit aufnehmen?

Zu meiner Schande muss ich gestehen, dass ich so was noch nie gemacht habe. Weshalb ich dann auch gleich an dem oben genannten Problem gescheitert bin. Ich habe daraufhin die Klassendeklarationen entfernt. Dann kommen schon mal keine Fehler mehr, aber ich konnte einfach nicht durch den Code steigen, verstehe nicht, wozu Drawer da sein soll und vieles mehr.

Ich habe nun einfach mal statisch in SetPoint aufgerufen:

Delphi-Quellcode:
lbl_pointsA.Caption := TE_PunktStrings[ord(2)];
Ich habe es auch anders versucht, aber ich weiss einfach nicht, wie ich an den aktuellen Punktestand rankomme...Tricky. Ich hänge hier ans Post mal noch die aktuelle Version mit an. Vielleicht hast Du ja Nerven es Dir mal anzusehen...!? Ansonsnten würde ich auch den Code der Unit posten, wenn Dir das lieber wäre...

Bin zur Zeit fast schon am überlegen, ob ich nicht lieber doch meine 1000 Zeilen längere Version nehmen sollte, weil ich da wenigsten den Code verstehe... :shock:

cruiser 23. Sep 2007 19:27

Re: Zählsystem für Tennis entwickeln
 
lass den Code doch wo er ist, binde die tennis.pas in die uses ein und erzeug ein Objekt TE_Spiel.

torud 23. Sep 2007 19:36

Re: Zählsystem für Tennis entwickeln
 
Du hast natürlich recht!

Für, die es auch wissen wollen: Ich habe global mySpiel als Variable angelegt und im FormCreate dann einfach das Objekt erzeugt.

Delphi-Quellcode:
  mySpiel := TE_Spiel.Create(nil);
Ging nur mit Nil, obwohl mir TE_Drawer vorgeschlagen wurde. Werde nun mal Deinen Code weiter verfolgen. Habe schon gefunden, dass SetPoint sogar soo clever ist und mir nen Boolean zurückgibt, falls das Spiel zu Ende ist. Sehr geil!

cruiser 23. Sep 2007 19:48

Re: Zählsystem für Tennis entwickeln
 
Sag ich doch ;) Der Klassen-Ansatz ist nicht zu kompliziert und du hast jedes logische Element für sich gekapselt... und ja, weil der Drawer ja nur als dummy da ist geht durchaus auch nil

torud 23. Sep 2007 20:14

Re: Zählsystem für Tennis entwickeln
 
Ok, leider hänge ich derzeit wieder mal etwas.

Ich komme nicht weiter mit der Ausgabe, sprich das, was Du mit dem Drawer machen wolltest. Zum einen muss ich die Ergebnisse im Tool selbst in Edits und Labels anzeigen und zum anderen werden sie später nach draussen übergeben. Das heisst, ich werde wohl die Variablen Public machen müssen, um auch aus dem Hauptprogramm darauf zugreifen zu können.

Oder Du erklärst mir noch, wie ich das mit dem Drawer machen könnte...?

cruiser 23. Sep 2007 20:30

Re: Zählsystem für Tennis entwickeln
 
naja der Drawer stellt im Prinzip die verbindung nach aussen dar. In der Drawer-Klasse baust du einige Funktionen, die die Werte entgegen nehmen und eben ausgeben. Ob das nun auf der basis von Edits, in einem Canvas oder per Serieller Schnittstelle an Anzeigetafeln ausgegeben wird spielt ja keine Rolle. Denkbar wär auch, den Drawer so zu gestalten, dass er gleich einen Weiteren Drawer ansteuern kann. So wäre es möglich für jede Ausgabe eine spezielle Zeichner/Ausgabeklasse zu erstellen. Das einzigewas zu beachten ist, wäre, dass du halt immer das selbe Interface nutzt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:00 Uhr.
Seite 2 von 5     12 34     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz