![]() |
AW: Magische 21
@Sir Rufo
Deine Lösung ist sicher fachmännisch, ich hatte aber bei meiner Antwort versucht, den offenbaren Kenntnisstand des Fragestellers mit einzubeziehen. Man kann schlecht alles auf einmal erklären.:-D |
AW: Magische 21
Zitat:
|
AW: Magische 21
Du kannst auch einfach deinen Original-Code nehmen und wvorher aus ESumme und nicht Edit1 beziehen. Ansonsten war dein Code schon ganz richtig und der Aufgabe völlig angemessen.
DIe Verwendung von Integer statt real und StrToInt/IntToStr statt der Float-Funktionen wurde ja schon angesprochen. |
AW: Magische 21
Ach ja, und für globale Variablen besteht kein Anlass, da du die relevanten Daten ja schon in den Edit-Feldern speicherst.
Natürlich kann man das Problem auch komplexer oder mit unterschiedlichen Paradigma lösen. Aber wenn der ganze relevante Code in eine Handvoll Zeilen im Button-Click Event passt, ist jedes andere Vorgehen Overkill. Etwas anderes ist es allerdings, wenn das Projekt erweiterbar sein soll, aber dann fehlen dazu die Spezifikationen. Auch wenn du objektorientierte Programmierung lernen willst, kann man das natürlich auch entsprechend lösen. Aber dafür gibt es bessere Beispiele. |
AW: Magische 21
Auch auf die Gefahr hin, der böse zu sein..
Aber ich glaube es hilft ihm mehr, einfach mal zu zeigen, wie der Code umgeschrieben ausschaut (also Integer, statt real)
Delphi-Quellcode:
SirRufo´s Ausführung ist natürlich die Profi-Ausführung (wenn man das so sagen darf)
procedure TForm1.Button1Click(Sender: TObject);
var wAugenzahl: Integer; wSumme : Integer; wVorher : Integer; begin wAugenzahl := random(6) + 1; wVorher := StrToInt(Edit1.Text); wSumme := wVorher + wAugenzahl; ESumme.Text := IntToStr(wSumme); Edit1.Text := IntToStr(wAugenzahl); end; procedure TForm1.FormCreate(Sender: TObject); begin Randomize; end; [Edit] Delphi7 kennt schon "TryStrToInt" Dann würde auch folgende Fehlerbehandlung gehen:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var wAugenzahl: Integer; wSumme : Integer; wVorher : Integer; begin If not TryStrtoInt(Edit1.Text, wVorher) then begin ShowMessage('Edit1 beinhaltet keine Zahl!'); exit; end; wAugenzahl := random(6) + 1; wSumme := wVorher + wAugenzahl; ESumme.Text := IntToStr(wSumme); Edit1.Text := IntToStr(wAugenzahl); end; |
AW: Magische 21
Randomize - Reposition the Random number generator next value
randomize; //z.B. in FormCreate einfügen ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:06 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz