AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Taschenrechner Problem: Record, Objekt oder Klassentyp
Thema durchsuchen
Ansicht
Themen-Optionen

Taschenrechner Problem: Record, Objekt oder Klassentyp

Ein Thema von Ghostleader · begonnen am 22. Aug 2009 · letzter Beitrag vom 22. Aug 2009
Antwort Antwort
Seite 1 von 2  1 2      
Ghostleader

Registriert seit: 22. Aug 2009
Ort: Hilden
116 Beiträge
 
Delphi 2010 Professional
 
#1

Taschenrechner Problem: Record, Objekt oder Klassentyp

  Alt 22. Aug 2009, 15:56
[Fehler] Unit1.pas(43): Record, Objekt oder Klassentyp erforderlich

Das ist der Fehler den ich immer erhalte.
Mein Programm soll ein Taschenrechner werden, so wie der von Windows (,allerdings ersteinmal nur mit den Funktionen +,=.)
Ich habe schon Buttons hinzugefügt: 1-9.
Mein Delphi Code lautet wie folgt: (Ist noch nicht fertig, da ich beim testen schon jetzt den Fehler bekam.)

Delphi-Quellcode:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Panel1: TPanel;
    Panel2: TPanel;
    Label1: TLabel;
    Ergebnis: TButton;
    Zahl4: TButton;
    Zahl2: TButton;
    Zahl1: TButton;
    Zahl9: TButton;
    Zahl6: TButton;
    Zahl7: TButton;
    Zahl8: TButton;
    Zahl5: TButton;
    Zahl3: TButton;
    Label2: TLabel;
    Plus: TButton;
    procedure ErgebnisClick(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.ErgebnisClick(Sender: TObject);
var
   Zahl1,Zahl2,Zahl3,Zahl4,Zahl5,Zahl6,Zahl7,Zahl8,Zahl9,Plus,Ergebnis: integer;
begin
Zahl1:= StrtoInt (Zahl1.text);
Zahl2:= StrToInt (Zahl2.text);

end;

end.
(Ich habe
Zahl1:= StrtoInt (Zahl1.text);
Zahl2:= StrToInt (Zahl2.text);
geschrieben, weil ich nicht wusste was ich bei Buttons, anstelle von .text schreiben sollte.)

Meine Buttons heißen Zahl1-Zahl9 (Button1: Zahl1 und Caption 1, Button2: Zahl2 und Caption 2 usw.)
Außerdem habe ich ein Label (Label1) mit der Caption: "Anzeige".
Dazu noch ein "+"Button und ein "=" Button.

Ich hoffe ihr könnt mir helfen wie ich es hinbekommen kann, dass wenn auf den Button1 mit der Caption 1 geklickt wird auf der Anzeige (Label1),
die Zahl 1 erscheint. (!Mit den anderen Zahlen genauso!) Wenn die Zahl fertig ist, soll auf "+" gedrückt werden können und mann soll eine neue Zahl eingeben.
Sobald alles fertig ist soll auf "=" geklickt werden können und das Ergebnis soll in der Anzeige stehen.

Mit freundlichen Grüßen,
Ghostleader/Michael
Michael
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#2

Re: Taschenrechner Problem: Record, Objekt oder Klassentyp

  Alt 22. Aug 2009, 15:58
Hallo,

Der Compiler weiß nicht, ob Du die Integer-Variable oder den Button meinst, da sie den gleichen Namen haben (und wird immmer die lokale Variable versuchen zu verwenden). Um den zu entgegnen könntest Du
Zahl8 := StrToInt(Self.Zahl8.Text); oder deine Buttons anders (ergo: besser) benennen.

Viele Grüße
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
Ghostleader

Registriert seit: 22. Aug 2009
Ort: Hilden
116 Beiträge
 
Delphi 2010 Professional
 
#3

Re: Taschenrechner Problem: Record, Objekt oder Klassentyp

  Alt 22. Aug 2009, 16:04
Also wenn ich jetzt eingebe:

Delphi-Quellcode:
procedure TForm1.ErgebnisClick(Sender: TObject);
var
   Zahl1,Zahl2,Zahl3,Zahl4,Zahl5,Zahl6,Zahl7,Zahl8,Zahl9,Plus,Ergebnis: integer;
begin
Zahl1:= StrtoInt (Self.Zahl1.text);
Zahl2:= StrToInt (Self.Zahl2.text);
Bleibt das Problem dasselbe. Ich hoffe ich hab dich falsch verstanden .
Was meinst du mit Button besser benennen? Ist das Problem nicht dasselbe wenn ich die Buttons jetzt, Button1-9 lassen würde und es dann so aussehen würde:

Delphi-Quellcode:
procedure TForm1.ErgebnisClick(Sender: TObject);
var
   Button1, Button2, Button3, Button4, Button5, Button6, Button7, Button8, Button9, Plus,Ergebnis: integer;
   
begin
Button1:= StrtoInt (Self.Button1.text);
Button2:= StrToInt (Self.Button2.text);
end;
Danke für die schnelle Antwort.
Mfg, Ghostleader
Michael
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#4

Re: Taschenrechner Problem: Record, Objekt oder Klassentyp

  Alt 22. Aug 2009, 16:07
Nenne die Buttons Button1 bis Button9 und in der Methode nennst Du die Variablen Zahl1 bis Zahl9. Problem gelöst
Zahl1 := StrToInt(Button1.Caption);
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
Ghostleader

Registriert seit: 22. Aug 2009
Ort: Hilden
116 Beiträge
 
Delphi 2010 Professional
 
#5

Re: Taschenrechner Problem: Record, Objekt oder Klassentyp

  Alt 22. Aug 2009, 16:08
Danke es funktioniert.

Ich hatte dich also falsch verstanden

Mfg Ghostleader
Michael
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#6

Re: Taschenrechner Problem: Record, Objekt oder Klassentyp

  Alt 22. Aug 2009, 16:10
Zitat von Ghostleader:
Danke es funktioniert.

Ich hatte dich also falsch verstanden
Kein Ding ...
Du hattest mich schon richtig verstanden, ich hatte lediglich vermutet, dass ein "Self." davor das Problem löst, aber dem war in diesem Fall wohl doch nicht so
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
Ghostleader

Registriert seit: 22. Aug 2009
Ort: Hilden
116 Beiträge
 
Delphi 2010 Professional
 
#7

Re: Taschenrechner Problem: Record, Objekt oder Klassentyp

  Alt 22. Aug 2009, 16:19
So nächstes Problem.
Ich hatte erst ein wenig selber versuchen wollen es zu lösen aber ich schaff es einfach nicht. (Zu wenig Vorkentnisse?)

Delphi-Quellcode:
procedure TForm1.ErgebnisClick(Sender: TObject);
var
   Zahl1,Zahl2,Zahl3,Zahl4,Zahl5,Zahl6,Zahl7,Zahl8,Zahl9,Plus,Ergebnis: integer;

begin
Zahl1 := StrToInt(Button1.Caption);
Zahl2 := StrToInt(Button2.Caption);
Zahl3 := StrToInt(Button3.Caption);
Zahl4 := StrToInt(Button4.Caption);
Zahl5 := StrToInt(Button5.Caption);
Zahl6 := StrToInt(Button6.Caption);
Zahl7 := StrToInt(Button7.Caption);
Zahl8 := StrToInt(Button8.Caption);
Zahl9 := StrToInt(Button9.Caption);
Ergebnis:= Zahl1,Zahl2,Zahl3,Zahl4,Zahl5,Zahl6,Zahl7,Zahl8,Zahl9+Zahl1,Zahl2,Zahl3,Zahl4,Zahl5,Zahl6,Zahl7,Zahl8,Zahl9;
Label1.Caption:= IntToStr (Ergebnis);
end;
Mein Problem:
Ich kann ja nicht einfach schreiben:

Ergebnis:= Zahl1+Zahl2;

Da ja sonst nicht die restlichen Möglichkeite (zb.: Zahl1+Zahl8) nicht mitprogrammiert wären.
Allerdings glaube ich nicht, das man jede Möglichkeit selber aufschreiben müsste, also
Ergebnis:= zahl1+zahl2;
Ergebnis:= zahl1+Zahl3;
usw.

Ich hatte mir also gedacht es sollte so funktionieren:

Ergebnis:= Zahl1,Zahl2,Zahl3,Zahl4,Zahl5,Zahl6,Zahl7,Zahl8,Za hl9+Zahl1,Zahl2,Zahl3,Zahl4,Zahl5,Zahl6,Zahl7,Zahl 8,Zahl9;

Aber dem ist nicht so. Weiß jemand wie ich das jetzt ändern muss, damit alle Möglichkeiten genutzt werden können?

Mfg Ghost
Michael
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#8

Re: Taschenrechner Problem: Record, Objekt oder Klassentyp

  Alt 22. Aug 2009, 16:23
Dein Ergebnis setzt sich doch aus den beiden Labels zusammen, die vorher durch Drücken von 2 Buttons belegt wurden oder?
Dann könntest Du ja einfach Label1.Caption und Label2.Caption abgreifen und diese Addieren... vergiss aber nicht zu schauen, ob die Labels belegt sind oder nicht
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
Ghostleader

Registriert seit: 22. Aug 2009
Ort: Hilden
116 Beiträge
 
Delphi 2010 Professional
 
#9

Re: Taschenrechner Problem: Record, Objekt oder Klassentyp

  Alt 22. Aug 2009, 16:30
Wie meinst du das:
"Label1.Caption und Label2.Caption abgreifen und addieren." ?

Ich hab nur den Label1:

Anzeige

Und dann noch einen Label2 den ich aber nur zum Design benötige .
Michael
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#10

Re: Taschenrechner Problem: Record, Objekt oder Klassentyp

  Alt 22. Aug 2009, 16:37
Achso ich dachte du hättest 2 Labels für 2 Summanden (und ein drittes fürs Ergebnis)

Also wie ist dann der genaue Ablauf?

1.) User drückt einen der 9 Buttons für die erste Zahl
2.) User drückt Operator (Plus, Minus, ...)
3.) User drückt weiteren Button für zweite Zahl und das Ergebnis wird berechnet.

und in 1.) bis 3.) wird dann halt noch zwischen durch die Anzeige aktualisiert.

Wie hattest Du denn bisher vor gehabt dir die erste Zahl und den Operator zu merken, damit Du bei der Eingabe der zweiten Zahl das Ergebnis berechnen kannst. Da gäbe es ja mehrere Realisierungsoptionen...
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:55 Uhr.
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