Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Lazarus-Zahlenraten-Programm will nicht funktionieren (https://www.delphipraxis.net/179799-lazarus-zahlenraten-programm-will-nicht-funktionieren.html)

Citaro 2. Apr 2014 18:30

Lazarus-Zahlenraten-Programm will nicht funktionieren
 
Hallo und guten Abend,

ich bin dabei ein Programm zum Zahlenraten zu programmieren und das mit Lazarus 1.0.14 .

Das Programm soll folgende Eigenschaften besitzen: der Rechner bzw. das Programm erzeugt selbstständig eine Zufallszahl im Bereich von 1 bis 100, der Nutzer hat soll diese zufällig erdachte Zahl erraten, nach jedem Versuch wird die Eingabe vom Programm mit „Die Zahl ist zu groß!“, „Die Zahl ist zu klein!“ oder mit „Das war richtig !“ beantwortet. Nach dem Erraten einer Zahl hat der Nutzer die Möglichkeit, eine neue Zufallszahl zu erzeugen.

Leider hängt sich Lazarus immer wieder an verschiedenen Zeilen auf, darunter auch an der Lrs-Datei.

http://img5.fotos-hochladen.net/thum...65nu_thumb.jpg

Der vollständige Quellcode sieht bisher so aus.

Code:
unit Zahlenraten;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ExtCtrls;

type
TForm1 = class(TForm)
      Panel1: TPanel;
            ErgebnisPanel: TPanel;
                         Label1: TLabel;
                                        NeuButton: TBitBtn;
                                                           RatenButton: TBitBtn;
                                                                                AbbruchButton: TBitBtn;
                                                                                                       EingabeEdit: TEdit;
procedure AbbruchButtonClick(Sender: TObject);
             procedure FormCreate(Sender: TObject);
               procedure RatenButtonClick(Sender: TObject);
                  procedure NeuButtonClick(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;

var
Form1: TForm1;

implementation
initialization
{$I zahlenraten.lrs}
var Zufallszahl : integer;
procedure TForm1.AbbruchButtonClick(Sender: TObject);

({$R *.DFM})

var Zufallszahl: integer;

procedure TForm1.AbbruchButtonClick(Sender: TObject);
begin
Close;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
Panel1.Caption:='Zahlenraten';
Label1.Caption:='Bitte wählen Sie eine Zahl von 1 bis 100:';
Randomize;
Zufallszahl:=Random(100)+1;
end;



procedure TForm1.RatenButtonClick(Sender: TObject);
var Eingabe : Integer;
begin
Eingabe:=StrToInt(EingabeEdit.Text);
if Eingabe=Zufallszahl
then ErgebnisPanel.Caption:=' Das war richtig! '
else if Eingabe<Zufallszahl
then ErgebnisPanel.Caption:='Die Zahl ist zu klein!'
else ErgebnisPanel.Caption:='Die Zahl ist zu groß!';
EingabeEdit.SetFocus;
end;



end.

Ob mir jemand helfen kann? ^^' Ich würde mich sehr freuen.

Schönen Abend noch!

- Citaro

zeras 2. Apr 2014 19:10

AW: Lazarus-Zahlenraten-Programm will nicht funktionieren
 
Zitat:

Zitat von Citaro (Beitrag 1254448)

Delphi-Quellcode:
Eingabe:=StrToInt(EingabeEdit.Text);

Hier willst du einen String zu einer Zahl wandeln. Wenn aber keine Zahl eingegeben wird, sondern ein Buchstabe o.ä.? Wie fängst du den Fall ab?
In Delphi gibt es TryStrToInt. Was in Lazarus geht, weiß ich nicht.

BTW: Was ist eine LRS Datei?

Citaro 2. Apr 2014 19:25

AW: Lazarus-Zahlenraten-Programm will nicht funktionieren
 
Also der Befehl dürfte schon stimmen. ;)
StrToInt ist für das Auslesen aus dem Editierfeld und das Umwandeln in eine Integer-Zahl bei Lazarus üblich.

Zitat:

BTW: Was ist eine LRS Datei?
Zitat:

Zitat von Lazarus-Wiki
Nun unterstützt Lazarus jedoch keine "normalen" Ressourcendateien (*.res), weil sie Windows spezifisch sind. Wenn man jetzt trotzdem Ressourcen verwenden möchte, muss man sie mit lazres neu erstellen. Lazres ist ein Werkzeug, dass sich im tools Verzeichnis des Lazarus-Installationsordners befindet (ggf. muss man es erst compilieren).



Damit können sie dann Lazarus Ressourcendateien (*.lrs) compilieren.


TForm1 2. Apr 2014 20:05

AW: Lazarus-Zahlenraten-Programm will nicht funktionieren
 
An welchen Stellen hängt es denn genau? Ich denke mal, ohne diese Information kann man den Fehler nicht lösen.
Zitat:

Zitat von zeras (Beitrag 1254457)
In Delphi gibt es TryStrToInt. Was in Lazarus geht, weiß ich nicht.

Das mit dem StrToInt() ist ja nur dann falsch, wenn irgendjemand so schlau ist, einen Buchstaben oder irgend ein Sonderzeichen zu Raten. Da dies aber nicht der Normalfall sein wird, ist dies nicht der Ursprung des Problems. (außer es geht darum das Programm Idiotensicher zu machen)

PS: Nur eine Anmerkung, auf dem Foto, das Du eingestellt hast, sieht man so relativ gar nichts und könntest Du den Quellcode noch mal richtig formatieren, dann wird der auch übersichtlicher :wink:

Citaro 2. Apr 2014 21:20

AW: Lazarus-Zahlenraten-Programm will nicht funktionieren
 
Nee, idiotensicher muss es eigentlich nicht sein. :) Aber ein interessanter Gedanke, dieses Problem mit der Eingabe.

Weshalb sieht man auf dem Foto denn nichts?


Ich habe das mal direkt als Rar verpackt. Wenn du oder jemand anderes sich kurz Zeit nehmen würde und auch noch Lazarus auf dem Rechner hat? Dann wäre das natürlich spitze.


http://www.file-upload.net/download-...raten.rar.html

BUG 2. Apr 2014 21:27

AW: Lazarus-Zahlenraten-Programm will nicht funktionieren
 
Zitat:

Zitat von Citaro (Beitrag 1254479)
Weshalb sieht man auf dem Foto denn nichts?

Weil du die URL auf das Thumbnail gepostet hast :lol:

Bilder und ZIPs mit Code solltest du hier einfach an den Beitrag anhängen. Dann sind sie auch später noch da.

//Edit: First!!111

lbccaleb 2. Apr 2014 21:29

AW: Lazarus-Zahlenraten-Programm will nicht funktionieren
 
Zitat:

Zitat von Citaro (Beitrag 1254479)
Weshalb sieht man auf dem Foto denn nichts?

Du hast den falschen Link gepostet. Der Link zeigt auf das "Thumbnail". Das ist eine verkleinerte darstellung der orig. Bilddatei. Diese dient nur um sie schneller in Listen usw. anzuzeigen, damit dort nicht das eigentliche Bild (was viel größer ist) geladen werden muss und das dann massig an Zeit und Downstream beansprucht.

Citaro 2. Apr 2014 21:35

AW: Lazarus-Zahlenraten-Programm will nicht funktionieren
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ui, das tut mir Leid. Also hier noch mal das Bild! :oops:

lbccaleb 2. Apr 2014 21:45

AW: Lazarus-Zahlenraten-Programm will nicht funktionieren
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hab das mal schnell überflogen, du darfst nicht einfach alles ändern, schau dir mal meinen Code an. Wenn du die Namen der Kontrols ändern möchtest, musst du das unter "Name" links im Object Inspektor ändern. Erst dann kannst du mit den Kontrols und deren neuen Namen arbeiten.


Edit:
Aso und wieso du da so viele Anhänge und verweise auf gar nicht vorhandene Forms hast, kann ich dir nicht sagen, hab das alles gelöscht was du nicht brauchst.
Siehe Anhang

Citaro 2. Apr 2014 22:25

AW: Lazarus-Zahlenraten-Programm will nicht funktionieren
 
Nun ja, diesen Panel mit den Schaltflächen, dem Editfeld und der Überschrift, der war ja bereits vorhanden. Ich fange ja nicht mit dem Code allein an, sondern mit einer Benutzeroberfläche inkl. einer Schaltfläche zum Beenden des Programms. Wenn du die auszuführende Datei im Ordner der ausgepackten Rar-Datei anklickst und sie ausführst, dann erscheint die besagte Benutzeroberfläche. Nur funktionieren die Raten- und die Neue-Zahl-Schaltfläche noch nicht, eben weil der Code selbst fehlerhaft ist.

Die Datei, die du mir geschickt hast, wird zwar sauber compiliert, weist aber eben die grafische Benutzeroberfläche nicht mehr auf. Wenn ich die jetzt neu erstelle, programmiert er das neu in den Code rein. Aber eine Verbindung zu dem von dir veränderten Code bekomme ich so nicht hin … :|


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:41 Uhr.
Seite 1 von 2  1 2      

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