Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Delphi / Kylix / Turbo Pascal » Operation nur einmal durchführen!!

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
19.06.2007, 10:09 Uhr
~24karatboy
Gast


Guten Morgen und zwar hab ich folgendes problem:

ich hab denn taschenrechner hier geschrieben


Code:
var
  Form1: TForm1;
  zwischenerg: double;
  operation: integer;

implementation

{$R *.dfm}

procedure TForm1.FormShow(Sender: TObject);
begin
edit1.SetFocus;
end;

procedure TForm1.SpeedButton0Click(Sender: TObject);
begin
edit1.Text:=edit1.Text+speedbutton0.caption;
end;

procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
edit1.Text:=edit1.Text+speedbutton1.caption;
end;

procedure TForm1.SpeedButton2Click(Sender: TObject);
begin
edit1.Text:=edit1.Text+speedbutton2.caption;
end;

procedure TForm1.SpeedButton3Click(Sender: TObject);
begin
edit1.Text:=edit1.Text+speedbutton3.caption;
end;

procedure TForm1.SpeedButton4Click(Sender: TObject);
begin
edit1.Text:=edit1.Text+speedbutton4.caption;
end;

procedure TForm1.SpeedButton5Click(Sender: TObject);
begin
edit1.Text:=edit1.Text+speedbutton5.caption;
end;

procedure TForm1.SpeedButton6Click(Sender: TObject);
begin
edit1.Text:=edit1.Text+speedbutton6.caption;
end;

procedure TForm1.SpeedButton7Click(Sender: TObject);
begin
edit1.Text:=edit1.Text+speedbutton7.caption;
end;

procedure TForm1.SpeedButton8Click(Sender: TObject);
begin
edit1.Text:=edit1.Text+speedbutton8.caption;
end;

procedure TForm1.SpeedButton9Click(Sender: TObject);
begin
edit1.Text:=edit1.Text+speedbutton9.caption;
end;

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
edit1.Text:='';
edit1.SetFocus;
end;

procedure TForm1.SpeedButton10Click(Sender: TObject);
begin
zwischenerg:=strtofloat(edit1.Text);
operation:=1;
edit1.Text:='';
edit1.setfocus;
end;

procedure TForm1.SpeedButton11Click(Sender: TObject);
begin
zwischenerg:=strtofloat(edit1.Text);
operation:=2;
edit1.Text:='';
edit1.setfocus;
end;

procedure TForm1.SpeedButton12Click(Sender: TObject);
begin
zwischenerg:=strtofloat(edit1.Text);
operation:=3;
edit1.Text:='';
edit1.setfocus;
end;

procedure TForm1.SpeedButton13Click(Sender: TObject);
begin
zwischenerg:=strtofloat(edit1.Text);
operation:=4;
edit1.Text:='';
edit1.setfocus;
end;

procedure TForm1.SpeedButtongleichClick(Sender: TObject);
begin
case operation of
1: edit1.Text:=floattostr(zwischenerg+strtofloat(edit1.text));
2: edit1.Text:=floattostr(zwischenerg-strtofloat(edit1.text));
3: edit1.Text:=floattostr(zwischenerg*strtofloat(edit1.text));
4: begin
    if strtofloat(edit1.text)=0 then begin
    showmessage('Division durch Null nicht teilbar');
    edit1.Text:='';
    zwischenerg:=0;
    end
    else
    edit1.Text:=floattostr(zwischenerg/strtofloat(edit1.text));
    end;

end;
end;
procedure TForm1.SpeedButton14Click(Sender: TObject);
begin
edit1.text:='';
end;

procedure TForm1.SpeedbuttonbackClick(Sender: TObject);
var hilf:string;

begin
hilf:=edit1.text;
Delete(hilf, length(edit1.Text), 1);
edit1.Text:=hilf;
end;

procedure TForm1.SpeedButton15Click(Sender: TObject);
begin
zwischenerg:=strtofloat(edit1.text);
edit1.text:=floattostr(1/zwischenerg);
end;

procedure TForm1.SpeedButtonkommaClick(Sender: TObject);
var anzahl:integer;
begin
edit1.Text:=edit1.Text+',';
anzahl:=1;
end;

end.




und jetzt wollte ich die komma funktion einbauen klappt auch wunderbar nur ich kann öfters nen komma drücken und das darf nicht sein gibt es da irgendwie ein ereignis oder etwas was mit weiter helfen kann ?

danke
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
19.06.2007, 16:29 Uhr
Uwe
C/C++ Master
(Administrator)


Hallo,
für was ist die lokale Variable 'Anzahl'? Zum Thema: Leg z.B. eine boolsche Klassenvariable an (im private Deklarationsteil). Setz diese auf true, wenn Du das erste Komma setzt.

Code:
procedure TForm1.SpeedButtonkommaClick(Sender: TObject);
  if bKomma then exit;
  ......
  ......
end;


Oder nutze ein TMaskEdit...
--
"Es ist schwierig, ein Programm wirklich idiotensicher zu machen, weil Idioten so genial sind."

Bis dann...
Uwe

Dieser Post wurde am 19.06.2007 um 16:29 Uhr von Uwe editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
20.06.2007, 14:30 Uhr
~24karatboy
Gast


wo ist denn ne globale variable namens anzahl ?

danke uwe aber ich habe das jetzt so geregelt:


Code:
procedure TForm1.SpeedButtonkommaClick(Sender: TObject);
begin
if pos( ',', Edit1.Text ) = 0 then
  edit1.Text:=edit1.Text+',';
if pos( ',', Edit1.Text) = 1 then
  edit1.Text:='0,';
end;

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
20.06.2007, 15:30 Uhr
Uwe
C/C++ Master
(Administrator)


Hallo,

Zitat von ~24karatboy:
wo ist denn ne globale variable namens anzahl ?

Hab ich nie geschrieben sondern "lokale"

Code:
procedure TForm1.SpeedButtonkommaClick(Sender: TObject);
var anzahl:integer; // <- hier
begin
{*........*}
end;


--
"Es ist schwierig, ein Programm wirklich idiotensicher zu machen, weil Idioten so genial sind."

Bis dann...
Uwe
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
20.06.2007, 17:09 Uhr
~24karatboy
Gast


hab ich das problem gut gelöst ?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ Delphi / Kylix / Turbo Pascal ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: