![]() |
Re: taschenrechner (erweiterung)
Zitat:
Dieser Eintrag steht übrigens in der dfm-Datei. Grüße, Messie [Edit] Nochmal :warn: Beiträge mit vernünftiger Groß/Kleinschreibung und ohne Tippfehler lassen sich besser lesen und werden deshalb auch eher beantwortet. Lies' ruhig nochmal vor dem Absenden durch. Fehler lassen sich danach noch mit der Benutzung des Edit-Buttons beheben. Hilft wirklich. [/Edit] |
Re: taschenrechner (erweiterung)
ok sorry, ich werde mehr auf meine rechtschreibung achten..
also ich hab das so gemacht wie oben beschrieben aber hab jetzt ein anderen fehler.. [Fehler] Calculator_Main.PAS(33): Bezeichner redefiniert: 'spResult'
Delphi-Quellcode:
unit Calculator_Main;
interface uses SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls, Forms, Dialogs, Buttons, StdCtrls; type TFormTR = class(TForm) Sp7: TSpeedButton; Sp8: TSpeedButton; Sp9: TSpeedButton; Sp4: TSpeedButton; Sp5: TSpeedButton; Sp6: TSpeedButton; Sp1: TSpeedButton; Sp2: TSpeedButton; Sp3: TSpeedButton; Sp0: TSpeedButton; DecimalSep: TSpeedButton; spResult: TSpeedButton; SpPlus: TSpeedButton; SpMinus: TSpeedButton; SpMal: TSpeedButton; SpDurch: TSpeedButton; LabelAnzeige: TLabel; SpeedButton1: TSpeedButton; procedure SpZahlClick(Sender: TObject); procedure SpZeichenClick(Sender: TObject); procedure SpeedButton1Click(Sender: TObject); function spResult(ATerm: string): Double; private { Private-Deklarationen } op : char; public { Public-Deklarationen } end; var FormTR: TFormTR; implementation {$R *.DFM} procedure TFormTR.SpeedButton1Click(Sender: TObject); begin LabelAnzeige.Caption := '0'; end; function spResult(ATerm: string): Double; var Op: string; iPos, i: Integer; Value1, Value2: Double; begin for i := 0 to 3 do begin case i of 0: Op := '+'; 1: Op := '-'; 2: Op := '*'; 3: Op := '/'; end; iPos := Pos(Op, ATerm); if iPos > 0 then begin Value1 := spResult(Copy(ATerm, 1, iPos - 1)); Value2 := spResult(Copy(ATerm, iPos + 1, Length(ATerm))); case i of 0: spResult := Value1 + Value2; 1: spResult := Value1 - Value2; 2: spResult := Value1 * Value2; 3: spResult := Value1 / Value2; end; Exit; end; end; spResult := StrToFloat(ATerm); end; |
Re: taschenrechner (erweiterung)
Deine Prozedur heißt genauso wie der SpeedButton...
Bezeichner müssen eindeutig sein, egal ob Namen von Prozeduren oder von Komponenten. |
Re: taschenrechner (erweiterung)
wie jetzt?
wo ist jetzt der Fehler bei mir? |
Re: taschenrechner (erweiterung)
Du hast eine Funktion mit dem Namen spResult erstellt, dein SpeedButton heißt aber genauso... Eins von beidem musst du umbenennen.
Delphi-Quellcode:
function spResult(ATerm: string): Double;
|
Re: taschenrechner (erweiterung)
ich krieg die krise.. jetzt habe ich ein anderen fehler..
[Fehler] Calculator_Main.PAS(69): Operator oder Semikolon fehlt [Fehler] Calculator_Main.PAS(70): Operator oder Semikolon fehlt [Fehler] Calculator_Main.PAS(32): Ungenügende Forward- oder External-Deklaration: 'TFormTR.Result'
Delphi-Quellcode:
function Result(ATerm: string): Double; private { Private-Deklarationen } op : char; public { Public-Deklarationen } end; var FormTR: TFormTR; implementation {$R *.DFM} procedure TFormTR.SpeedButton1Click(Sender: TObject); begin LabelAnzeige.Caption := '0'; end; function Result(ATerm: string): Double; var Op: string; iPos, i: Integer; Value1, Value2: Double; begin for i := 0 to 3 do begin case i of 0: Op := '+'; 1: Op := '-'; 2: Op := '*'; 3: Op := '/'; end; iPos := Pos(Op, ATerm); if iPos > 0 then begin Value1 := Result(Copy(ATerm, 1, iPos - 1)); Value2 := Result(Copy(ATerm, iPos + 1, Length(ATerm))); case i of 0: Result := Value1 + Value2; 1: Result := Value1 - Value2; 2: Result := Value1 * Value2; 3: Result := Value1 / Value2; end; Exit; end; end; Result := StrToFloat(ATerm); end; |
Re: taschenrechner (erweiterung)
Du hast unten in der Implementierung das TFormTR. vor dem Namen der Funktion vergessen. ;-)
Zitat:
Zudem ist Result auch keine gute Idee, weil so der Rückgabewert einer Funktion heißt... Warum nicht ein richtiger Name wie EvaluateTerm oder so... |
Re: taschenrechner (erweiterung)
was bedeutet
'=' erwartet aber '(' gefunden.. jetzt habe ich diese fehlermeldung |
Re: taschenrechner (erweiterung)
Ja, und in welcher Zeile? :glaskugel:
|
Re: taschenrechner (erweiterung)
also es kommt ein message, aber danach springt die zwischen ....Result und (Aterm:....
Delphi-Quellcode:
function TFormTR.Result(ATerm: string): Double;
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:17 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 by Thomas Breitkreuz