AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

taschenrechner (erweiterung)

Ein Thema von safak67 · begonnen am 3. Jun 2009 · letzter Beitrag vom 4. Jun 2009
Thema geschlossen
Seite 3 von 6     123 45     Letzte »    
messie

Registriert seit: 2. Mär 2005
Ort: Göttingen
1.592 Beiträge
 
Delphi 2009 Professional
 
#21

Re: taschenrechner (erweiterung)

  Alt 3. Jun 2009, 18:14
Zitat von safak67:
wenn ich eine funktion in delphi schreieb, wie binde ich das da ein, weil wenn ich das programm starte gibt er mir ne fehlermeldung an..

[Fehler] Calculator_Main.PAS(32): Ungenügende Forward- oder External-Deklaration: 'TFormTR.spResultClick'
Du hast für den SpeedButton "spResult" ein Onclick-Ereignis angelegt, die dazugehörige Routine aber gelöscht. Das findest Du im Objektinspektor (meist linke untere Seite). Lass Dir das Formular anzeigen, markiere den Speedbutton mit der Maus und wähle im Objektinspektor die Ereignisse an. Dann den Eintrag im OnClick einfach löschen.

Dieser Eintrag steht übrigens in der dfm-Datei.

Grüße, Messie


[Edit]
Nochmal

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]
 
safak67

Registriert seit: 22. Mär 2009
87 Beiträge
 
#22

Re: taschenrechner (erweiterung)

  Alt 3. Jun 2009, 20:57
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;
 
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.359 Beiträge
 
Delphi 11 Alexandria
 
#23

Re: taschenrechner (erweiterung)

  Alt 3. Jun 2009, 20:58
Deine Prozedur heißt genauso wie der SpeedButton...
Bezeichner müssen eindeutig sein, egal ob Namen von Prozeduren oder von Komponenten.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
 
safak67

Registriert seit: 22. Mär 2009
87 Beiträge
 
#24

Re: taschenrechner (erweiterung)

  Alt 3. Jun 2009, 21:03
wie jetzt?
wo ist jetzt der Fehler bei mir?
 
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.359 Beiträge
 
Delphi 11 Alexandria
 
#25

Re: taschenrechner (erweiterung)

  Alt 3. Jun 2009, 21:04
Du hast eine Funktion mit dem Namen spResult erstellt, dein SpeedButton heißt aber genauso... Eins von beidem musst du umbenennen.function spResult(ATerm: string): Double;
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
 
safak67

Registriert seit: 22. Mär 2009
87 Beiträge
 
#26

Re: taschenrechner (erweiterung)

  Alt 3. Jun 2009, 21:12
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;
 
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.359 Beiträge
 
Delphi 11 Alexandria
 
#27

Re: taschenrechner (erweiterung)

  Alt 3. Jun 2009, 21:14
Du hast unten in der Implementierung das TFormTR. vor dem Namen der Funktion vergessen.
Zitat von safak67:
Delphi-Quellcode:
function TFormTR.Result(ATerm: string): Double;
var
  ...
// EDIT:
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...
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
 
safak67

Registriert seit: 22. Mär 2009
87 Beiträge
 
#28

Re: taschenrechner (erweiterung)

  Alt 3. Jun 2009, 21:18
was bedeutet
'=' erwartet aber '('
gefunden..

jetzt habe ich diese fehlermeldung
 
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.359 Beiträge
 
Delphi 11 Alexandria
 
#29

Re: taschenrechner (erweiterung)

  Alt 3. Jun 2009, 21:20
Ja, und in welcher Zeile?
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
 
safak67

Registriert seit: 22. Mär 2009
87 Beiträge
 
#30

Re: taschenrechner (erweiterung)

  Alt 3. Jun 2009, 21:40
also es kommt ein message, aber danach springt die zwischen ....Result und (Aterm:....

function TFormTR.Result(ATerm: string): Double;
 
Thema geschlossen
Seite 3 von 6     123 45     Letzte »    


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 15:23 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