AGB  ·  Datenschutz  ·  Impressum  







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

taschenrechner mit 1 editfeld

Ein Thema von furby · begonnen am 15. Sep 2005 · letzter Beitrag vom 11. Feb 2013
Antwort Antwort
Benutzerbild von furby
furby

Registriert seit: 15. Sep 2005
Ort: Braunschweig
37 Beiträge
 
Turbo Delphi für Win32
 
#1

taschenrechner mit 1 editfeld

  Alt 15. Sep 2005, 10:16
hallo,
Also ich möchte in mein Programm einen kleinen Taschenrechner einbinden, der aussieht, wie der windows taschenrechern. also d.h. mit 1 editfeld. ich hab leider überhaupt keinen ahnung, wie man das anstellen soll... so dass man unendlich mal auf plus klicken kann und er immernur 5 dazurechnet. Ich konnta bisher nur taschenrechner mit 2 editfelder proggen. ich hoffe irgendeiner hat sowas schonmal gemacht und kann mir helfen.
danke schonma im vorraus
Fabian K
  Mit Zitat antworten Zitat
n0b0dy

Registriert seit: 12. Sep 2005
Ort: Hessen
268 Beiträge
 
#2

Re: taschenrechner mit 1 editfeld

  Alt 15. Sep 2005, 10:21
hi,

du musst halt jedesmal wenn du auf + - * / klickst, den wert in einer variablen merken und dann das edit feld leeren....
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#3

Re: taschenrechner mit 1 editfeld

  Alt 15. Sep 2005, 10:33
Hi,

das Geheimnis ist: du benötigst einen Speicher für dein letztes Ergebnis:

Delphi-Quellcode:
type
  TCalculator = class(TForm)
    NumEdit: TEdit;
  ...
  private
    FMemory: double;
    procedure SetMemory(memory: double);
  public
    property Memory: double read FMemory write SetMemory;
  ...
  end;

procedure TCalculator.SetMemory(memory: double);
begin
  FMemory := memory;
  NumEdit.Text := FloatToStr(memory);
end;

procedure TCalculator.ResetButtonClick(Sender: TObject);
begin
  Memory := 0;
end;

procedure TCalculator.PlusButtonClick(Sender: TObject);
begin
  Memory := FMemory + StrToFloat(NumEdit.Text);
end;
Nur getippt, nicht getestet, aber vielleicht fällt ja jetzt bei dir schon der Groschen...

Grüße vom marabu
  Mit Zitat antworten Zitat
Benutzerbild von furby
furby

Registriert seit: 15. Sep 2005
Ort: Braunschweig
37 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: taschenrechner mit 1 editfeld

  Alt 15. Sep 2005, 10:53
hm naja... weiss net genau wie du das meinst. ich hab das auch schon mit speichern gemacht. aber ich bekomm es nie so hin, dass das teil wie der windows taschenrechner funktioniert.
Fabian K
  Mit Zitat antworten Zitat
Benutzerbild von Wuaegner
Wuaegner

Registriert seit: 8. Feb 2004
406 Beiträge
 
Delphi 6 Enterprise
 
#5

Re: taschenrechner mit 1 editfeld

  Alt 15. Sep 2005, 10:57
Ich habe den Rechner schon einmal programmiert, mit Punkt vor Strichrechnung ( aber die wirst du noch nicht benötigen, wenn ich das richtig verstanden habe ), aber wie man das mit + löst kannst du meinem Code entnehmen, den ich freigegeben habe.

Taschenrechner
Wuaegner
Gruß Flo
Unternehmensberatung
  Mit Zitat antworten Zitat
McRobins

Registriert seit: 11. Feb 2013
5 Beiträge
 
#6

AW: taschenrechner mit 1 editfeld

  Alt 11. Feb 2013, 14:00
Das ist der ganze Code. Bei den Bild das durch gestrichene weglassen.
Der Taschenrechner funktioniert auch zu 100%
Delphi-Quellcode:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    bt0: TButton;
    bt9: TButton;
    bt8: TButton;
    bt7: TButton;
    bt6: TButton;
    bt5: TButton;
    bt4: TButton;
    bt3: TButton;
    bt2: TButton;
    bt1: TButton;
    btPunkt: TButton;
    bt00: TButton;
    Edit1: TEdit;
    Panel1: TPanel;
    btPlus: TButton;
    btMal: TButton;
    btGeteilt: TButton;
    btMinus: TButton;
    btGleich: TButton;
    btClear: TButton;
    Label1: TLabel;
    btMplus: TButton;
    btMminus: TButton;
    btMR: TButton;
    btMC: TButton;
    procedure ZeiButtonClick(Sender: TObject);
    procedure opButtonClick(Sender: TObject);
    procedure btClearClick(Sender: TObject);
    procedure btGleichlik(Sender: TObject);


  private

    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

var strBuff1, strBuff2: string;
    op: Char;
var mode: Byte = 1;


procedure TForm1.btClearClick(Sender: TObject);
begin
 if mode = 1 then StrBuff1 := ''
             else StrBuff2 := '';
      edit1.text := ''
end;

procedure TForm1.ZeiButtonClick(Sender: TObject);
var zei: Char;
begin
 if Sender = bt0 then zei := '0';
 if Sender = bt1 then zei := '1';
 if Sender = bt2 then zei := '2';
 if Sender = bt3 then zei := '3';
 if Sender = bt4 then zei := '4';
 if Sender = bt5 then zei := '5';
 if Sender = bt6 then zei := '6';
 if Sender = bt7 then zei := '7';
 if Sender = bt8 then zei := '8';
 if Sender = bt9 then zei := '9';
 if Sender = btPunkt then zei := '.';

 if mode = 1 then
 begin
  strBuff1 := strBuff1 + zei;
  edit1.text := strBuff1
  end else
  begin
   strBuff2 := strBuff2 + zei;
   edit1.text := strBuff2
  end;
 end;

 procedure TForm1.opButtonClick(Sender: TObject);
begin
 if mode = 1 then
 begin
  if Sender = btPlus then op := '+';
  if Sender = btMinus then op := '-';
  if Sender = btGeteilt then op := '/';
  if Sender = btMal then op := '*';
  StrBuff2 := '';
  mode := 2
  end
 end;

procedure TForm1.btGleichlik(Sender: TObject);
var res, op1, op2: Double;
    code: Integer;
    s: string;
begin
 if mode = 2 then begin
 Val(strBuff1, op1, code);
 Val(strBuff2, op2, code);
 case op of
 '+': res := op1 + op2;
 '-': res := op1 - op2;
 '/': res := op1 / op2;
 '*': res := op1 * op2;

 end;
 s:= Format ('%g', [res]);
 edit1.text := s;
 mode := 1;
 strBuff1 := ''
 end
end;


end.
Miniaturansicht angehängter Grafiken
rechner.png  
  Mit Zitat antworten Zitat
Antwort Antwort


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 14:09 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