AGB  ·  Datenschutz  ·  Impressum  







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

Taschenrechner

Ein Thema von Enten Mann · begonnen am 20. Jan 2008 · letzter Beitrag vom 28. Jul 2011
Antwort Antwort
Seite 2 von 6     12 34     Letzte »    
Klaus01
Online

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#11

Re: Taschenrechner

  Alt 20. Jan 2008, 15:09
Die Delphi Hilfe aufrufen, pi eingeben.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Enten Mann

Registriert seit: 19. Jan 2008
29 Beiträge
 
Turbo Delphi für Win32
 
#12

Re: Taschenrechner

  Alt 20. Jan 2008, 15:14
OK Danke ist die Hilfe Datei auch bei Turbo Delphi dabei weil ich find da in der Hilfedatei nix zu PI, und irgendwie funtz bei mir nur die 0 was is falsch lerne grade delphi

Delphi-Quellcode:
unit Unit1; {Name der Unit}

interface

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

type
  TForm1 = class(TForm)
    Image0: TImage;
    Image1: TImage;
    Image2: TImage;
    Image8: TImage;
    Image5: TImage;
    Image3: TImage;
    Image7: TImage;
    Image6: TImage;
    Image4: TImage;
    Image9: TImage;
    Mal: TImage;
    Back: TImage;
    Geteilt: TImage;
    Gleich: TImage;
    Plus: TImage;
    Punkt: TImage;
    Rechts: TImage;
    Links: TImage;
    Minus: TImage;
    Edit1: TEdit;
    PI: TImage;

    { Procedure Starts }
    procedure Button1Click(Sender: TObject);
    procedure Image0Click(Sender: TObject);
    procedure Image1Click(Sender: TObject);
    procedure Image2Click(Sender: TObject);
    procedure Image3Click(Sender: TObject);
    procedure Image4Click(Sender: TObject);
    procedure Image5Click(Sender: TObject);
    procedure Image6Click(Sender: TObject);
    procedure Image7Click(Sender: TObject);
    procedure Image8Click(Sender: TObject);
    procedure Image9Click(Sender: TObject);
    procedure ImageLinksClick(Sender: TObject);
    procedure ImageRechtsClick(Sender: TObject);
    procedure ImagePlusClick(Sender: TObject);
    procedure ImageMinusClick(Sender: TObject);
    procedure ImagePunktClick(Sender: TObject);
    procedure ImageMalClick(Sender: TObject);
    procedure ImageGleichClick(Sender: TObject);
    procedure ImageGeteiltClick(Sender: TObject);
    procedure ImagePIClick(Sender: TObject);
  { Procedure Ends }
    private
      { Private-Deklarationen }
    public
      { Public-Deklarationen }
  end;

var
  Form1: TForm1; //Hier werden die Globalen Variablen definiert

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject); //Unser OnClick-Ereignis
var
  zahl1, zahl2, ergebnis: integer; //Unsere Variablen
begin
  Edit1.Text:=IntToStr(2*StrToInt(Edit1.Text))
end;

{ Zahlen Buttons }
procedure TForm1.Image0Click(Sender: TObject);
begin
  Edit1.Text := Edit1.Text + '0'; // edInput ist das Edit
end;


procedure TForm1.Image1Click(Sender: TObject);
begin
  Edit1.Text := Edit1.Text + '1'; // edInput ist das Edit
end;

procedure TForm1.Image2Click(Sender: TObject);
begin
  Edit1.Text := Edit1.Text + '2'; // edInput ist das Edit
end;

procedure TForm1.Image3Click(Sender: TObject);
begin
  Edit1.Text := Edit1.Text + '3'; // edInput ist das Edit
end;

procedure TForm1.Image4Click(Sender: TObject);
begin
  Edit1.Text := Edit1.Text + '4'; // edInput ist das Edit
end;

procedure TForm1.Image5Click(Sender: TObject);
begin
  Edit1.Text := Edit1.Text + '5'; // edInput ist das Edit
end;

procedure TForm1.Image6Click(Sender: TObject);
begin
  Edit1.Text := Edit1.Text + '6'; // edInput ist das Edit
end;

procedure TForm1.Image7Click(Sender: TObject);
begin
  Edit1.Text := Edit1.Text + '7'; // edInput ist das Edit
end;

procedure TForm1.Image8Click(Sender: TObject);
begin
  Edit1.Text := Edit1.Text + '8'; // edInput ist das Edit
end;

procedure TForm1.Image9Click(Sender: TObject);
begin
  Edit1.Text := Edit1.Text + '9'; // edInput ist das Edit
end;
{ Zahlen Buttons }




{ Symbole }
procedure TForm1.ImageLinksClick(Sender: TObject);
begin
  Edit1.Text := Edit1.Text + '('; // edInput ist das Edit
end;

procedure TForm1.ImageRechtsClick(Sender: TObject);
begin
  Edit1.Text := Edit1.Text + ')'; // edInput ist das Edit
end;

procedure TForm1.ImagePlusClick(Sender: TObject);
begin
  Edit1.Text := Edit1.Text + '+'; // edInput ist das Edit
end;

procedure TForm1.ImageMinusClick(Sender: TObject);
begin
  Edit1.Text := Edit1.Text + '-'; // edInput ist das Edit
end;

procedure TForm1.ImageMalClick(Sender: TObject);
begin
  Edit1.Text := Edit1.Text + '*'; // edInput ist das Edit
end;

procedure TForm1.ImageGeteiltClick(Sender: TObject);
begin
  Edit1.Text := Edit1.Text + '/'; // edInput ist das Edit
end;

procedure TForm1.ImagePunktClick(Sender: TObject);
begin
  Edit1.Text := Edit1.Text + ','; // edInput ist das Edit
end;

procedure TForm1.ImageGleichClick(Sender: TObject);
begin
  Edit1.Text := Edit1.Text + '='; // edInput ist das Edit
end;

procedure TForm1.ImagePIClick(Sender: TObject);
begin
  Edit1.Text := Edit1.Text + '8'; // edInput ist das Edit
end;
{ Symbole }

end.
  Mit Zitat antworten Zitat
dominikkv

Registriert seit: 30. Sep 2006
Ort: Gundelfingen
1.109 Beiträge
 
Delphi 2007 Professional
 
#13

Re: Taschenrechner

  Alt 20. Jan 2008, 15:21
hast du bei jedem Image das onClick mit der entsprechenden Prozedur verknüpft?
Dominik
Wer anderen eine Grube gräbt, hat ein Gruben-Grab-Gerät!
  Mit Zitat antworten Zitat
Enten Mann

Registriert seit: 19. Jan 2008
29 Beiträge
 
Turbo Delphi für Win32
 
#14

Re: Taschenrechner

  Alt 20. Jan 2008, 15:32
Ja habe ich sieht man ja auch im Code ich sehe keine Fehler.

das Meine Procedures

Delphi-Quellcode:
    { Procedure Starts }
    procedure Button1Click(Sender: TObject);
    procedure Image0Click(Sender: TObject);
    procedure Image1Click(Sender: TObject);
    procedure Image2Click(Sender: TObject);
    procedure Image3Click(Sender: TObject);
    procedure Image4Click(Sender: TObject);
    procedure Image5Click(Sender: TObject);
    procedure Image6Click(Sender: TObject);
    procedure Image7Click(Sender: TObject);
    procedure Image8Click(Sender: TObject);
    procedure Image9Click(Sender: TObject);
    procedure ImageLinksClick(Sender: TObject);
    procedure ImageRechtsClick(Sender: TObject);
    procedure ImagePlusClick(Sender: TObject);
    procedure ImageMinusClick(Sender: TObject);
    procedure ImagePunktClick(Sender: TObject);
    procedure ImageMalClick(Sender: TObject);
    procedure ImageGleichClick(Sender: TObject);
    procedure ImageGeteiltClick(Sender: TObject);
    procedure ImagePIClick(Sender: TObject);
  { Procedure Ends }
Das die Images

Delphi-Quellcode:
type
  TForm1 = class(TForm)
    Image1: TImage;
    Image2: TImage;
    Image3: TImage;
    Image4: TImage;
    Image5: TImage;
    Image6: TImage;
    Image7: TImage;
    Image8: TImage;
    Image9: TImage;
    Image10: TImage;
    Image11: TImage;
    Image14: TImage;
    Image15: TImage;
    Image16: TImage;
    Image17: TImage;
    Image18: TImage;
    Image19: TImage;
    Image20: TImage;
    Image21: TImage;
    Image22: TImage;
    Edit1: TEdit;
    Image12: TImage;
  Mit Zitat antworten Zitat
Benutzerbild von PaddyL
PaddyL

Registriert seit: 23. Nov 2007
Ort: Lautertal
34 Beiträge
 
#15

Re: Taschenrechner

  Alt 20. Jan 2008, 15:34
Ich würde dir RPN als Standard empfehlen bzw. RPN las Backend nutzen, da gibt es Algorythmen für um es umzurechnen, dann ist es um einiges Leichter den Taschenrechner zu programmieren. Hier ein Beispielcode (Lazarus/Free Pascal) den ich für einen RPN-Rechner auf meinem PocketPC verwendet habe:

Delphi-Quellcode:
unit MainForm;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, Math,
  StdCtrls, ComCtrls, Menus;

type

  { TMainForm }

  TMainForm = class(TForm)
    MainMenu1: TMainMenu;
    MenuItem1: TMenuItem;
    Stack: TListBox;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    Button6: TButton;
    Button7: TButton;
    Button8: TButton;
    Button9: TButton;
    Button0: TButton;
    ButtonPoint: TButton;
    ButtonEnter: TButton;
    ButtonAdd: TButton;
    ButtonSub: TButton;
    ButtonMul: TButton;
    ButtonDiv: TButton;
    edtCalc: TEdit;
    ButtonPower: TButton;
    ButtonPosNeg: TButton;
    ButtonRoot: TButton;
    ButtonLog: TButton;
    ButtonRound: TButton;
    ButtonPi: TButton;
    ButtonFak: TButton;
    Button1_2: TButton;
    Button10: TButton;
    Button11: TButton;
    ButtonProm: TButton;
    ButtonProz: TButton;
    procedure Button0Click(Sender: TObject);
    procedure Button10Click(Sender: TObject);
    procedure Button11Click(Sender: TObject);
    procedure Button1_2Click(Sender: TObject);
    procedure ButtonPowerClick(Sender: TObject);
    procedure ButtonAddClick(Sender: TObject);
    procedure ButtonDivClick(Sender: TObject);
    procedure ButtonEnterClick(Sender: TObject);
    procedure ButtonFakClick(Sender: TObject);
    procedure ButtonLogClick(Sender: TObject);
    procedure ButtonMulClick(Sender: TObject);
    procedure ButtonPiClick(Sender: TObject);
    procedure ButtonPointClick(Sender: TObject);
    procedure ButtonPosNegClick(Sender: TObject);
    procedure ButtonPromClick(Sender: TObject);
    procedure ButtonProzClick(Sender: TObject);
    procedure ButtonRootClick(Sender: TObject);
    procedure ButtonRoundClick(Sender: TObject);
    procedure ButtonSubClick(Sender: TObject);
    procedure edtCalcClick(Sender: TObject);
    procedure MenuItem1Click(Sender: TObject);
    procedure StackDblClick(Sender: TObject);
  private
    { private declarations }
    function Pop: Real;
    procedure Push(R: Real);
  public
    { public declarations }
  end;

var
  frmMainForm: TMainForm;

implementation

function TMainForm.Pop: Real;
begin
  Result := StrToFloat(Stack.Items[Stack.Items.Count - 1]);
  Stack.Items.Delete(Stack.Items.Count - 1);
end;

procedure TMainForm.Push(R: Real);
begin
  Stack.Items.Add(FloatToStr(R));
end;

procedure TMainForm.Button0Click(Sender: TObject);
begin
  edtCalc.Text := edtCalc.Text + (Sender as TButton).Caption;
end;

procedure TMainForm.Button10Click(Sender: TObject);
begin
  Push(1/4);
end;

procedure TMainForm.Button11Click(Sender: TObject);
begin
  Push(3/4);
end;

procedure TMainForm.Button1_2Click(Sender: TObject);
begin
  Push(1/2);
end;

procedure TMainForm.ButtonPowerClick(Sender: TObject);
var
  Num1, Num2: Real;
begin
  if Stack.Items.Count > 1 then
  begin
    Num1 := Pop;
    Num2 := Pop;
    Push(Power(Num2, Num1));
  end;
end;

procedure TMainForm.ButtonAddClick(Sender: TObject);
var
  Num1, Num2: Real;
begin
  if Stack.Items.Count > 1 then
  begin
    Num1 := Pop;
    Num2 := Pop;
    Push(Num2 + Num1);
  end;
end;

procedure TMainForm.ButtonDivClick(Sender: TObject);
var
  Num1, Num2: Real;
begin
  if Stack.Items.Count > 1 then
  begin
    Num1 := Pop;
    Num2 := Pop;
    Push(Num2 / Num1);
  end;
end;

procedure TMainForm.ButtonEnterClick(Sender: TObject);
begin
  if edtCalc.Text <> 'then
  begin
    Stack.Items.Add(edtCalc.Text);
    edtCalc.Text := '';
  end;
end;

procedure TMainForm.ButtonFakClick(Sender: TObject);
var
  Num: Real;
  I, J: Integer;
begin
  if Stack.Items.Count > 0 then
  begin
    Num := Pop;
    J := 1;
    for I := 1 to Round(Num) do
      J := J * I;
    Push(Round(J));
  end;
end;

procedure TMainForm.ButtonLogClick(Sender: TObject);
var
  Num: Real;
begin
  if Stack.Items.Count > 0 then
  begin
    Num := Pop;
    Push(Log10(Num));
  end;
end;

procedure TMainForm.ButtonMulClick(Sender: TObject);
var
  Num1, Num2: Real;
begin
  if Stack.Items.Count > 1 then
  begin
    Num1 := Pop;
    Num2 := Pop;
    Push(Num2 * Num1);
  end;
end;

procedure TMainForm.ButtonPiClick(Sender: TObject);
begin
  Stack.Items.Add(FloatToStr(PI));
end;

procedure TMainForm.ButtonPointClick(Sender: TObject);
begin
  if Pos('.', edtCalc.Text) = 0 then
    edtCalc.Text := edtCalc.Text + '.';
end;

procedure TMainForm.ButtonPosNegClick(Sender: TObject);
var
  Num: Real;
begin
  if Stack.Items.Count > 0 then
  begin
    Num := Pop;
    Push(Num * -1);
  end;
end;

procedure TMainForm.ButtonPromClick(Sender: TObject);
var
  Num: Real;
begin
  if Stack.Items.Count > 0 then
  begin
    Num := Pop;
    Push(Num / 1000);
  end;
end;

procedure TMainForm.ButtonProzClick(Sender: TObject);
var
  Num: Real;
begin
  if Stack.Items.Count > 0 then
  begin
    Num := Pop;
    Push(Num / 100);
  end;
end;

procedure TMainForm.ButtonRootClick(Sender: TObject);
var
  Num1, Num2: Real;
begin
  if Stack.Items.Count > 1 then
  begin
    Num1 := Pop;
    Num2 := Pop;
    Push(Power(Num2, (1 / Num1)));
  end;
end;

procedure TMainForm.ButtonRoundClick(Sender: TObject);
var
  Num: Real;
begin
  if Stack.Items.Count > 0 then
  begin
    Num := Pop;
    Push(Round(Num));
  end;
end;

procedure TMainForm.ButtonSubClick(Sender: TObject);
var
  Num1, Num2: Real;
begin
  if Stack.Items.Count > 1 then
  begin
    Num1 := Pop;
    Num2 := Pop;
    Push(Num2 - Num1);
  end;
end;

procedure TMainForm.edtCalcClick(Sender: TObject);
begin
  edtCalc.Text := Copy(edtCalc.Text, 1, Length(edtCalc.Text) - 1);
end;

procedure TMainForm.MenuItem1Click(Sender: TObject);
begin
  ShowMessage('(C) 2007 by Paddy Lerner [PaddyLerner@gmail.com]');
end;

procedure TMainForm.StackDblClick(Sender: TObject);
begin
  if not Stack.ItemIndex = -1 then
    Stack.Items.Delete(Stack.ItemIndex);
end;

initialization
  {$I MainForm.lrs}

end.
Patrick
  Mit Zitat antworten Zitat
Enten Mann

Registriert seit: 19. Jan 2008
29 Beiträge
 
Turbo Delphi für Win32
 
#16

Re: Taschenrechner

  Alt 20. Jan 2008, 15:36
Ich muss ja nur was ganz kleines ändern nur was alles stimmt soweit ich sehe
  Mit Zitat antworten Zitat
Enten Mann

Registriert seit: 19. Jan 2008
29 Beiträge
 
Turbo Delphi für Win32
 
#17

Re: Taschenrechner

  Alt 20. Jan 2008, 15:43
Ich muss ja nur was kleines, nur was?

Ich sehe kein Fehler im Code
  Mit Zitat antworten Zitat
Larsi

Registriert seit: 10. Feb 2007
2.262 Beiträge
 
Delphi 2007 Professional
 
#18

Re: Taschenrechner

  Alt 20. Jan 2008, 15:47
das was du machst heißt pushen und ist erst nach 24h erlaubt (glaub mir ich hatte damit oft erfahrung )
Ein Tag ohne Delphi ist ein verlorener Tag!

Homepage zu meinem neuen Programm: StreamZ
  Mit Zitat antworten Zitat
Enten Mann

Registriert seit: 19. Jan 2008
29 Beiträge
 
Turbo Delphi für Win32
 
#19

Re: Taschenrechner

  Alt 20. Jan 2008, 15:52
tut mir leid hatte gedacht wäre nicht drin hatte net gesehen das eine 2te seite gekommen ist
  Mit Zitat antworten Zitat
Benutzerbild von rawsoul
rawsoul

Registriert seit: 29. Okt 2006
Ort: Düsseldorf
249 Beiträge
 
Delphi 2005 Personal
 
#20

Re: Taschenrechner

  Alt 20. Jan 2008, 16:05
Ich glaube auch ein Push ist nach 7 Minuten eher unwahrscheinlich

Enten Mann, versuch's doch mal mit etwas Eigeninitiative, sonst lernt man nie dazu... Ist nicht böse gemeint!
Frank Dumont
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 6     12 34     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 09:10 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