Autor Beitrag
24karatboy
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 110

Win XP
Delphi (Delphi Win32)
BeitragVerfasst: Di 19.06.07 09:10 
Guten Morgen und zwar hab ich folgendes problem:

ich hab denn taschenrechner hier geschrieben

ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
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

Moderiert von user profile iconChristian S.: Delphi-Tags hinzugefügt
Wonko
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 69



BeitragVerfasst: Di 19.06.07 09:18 
Zitat:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
procedure TForm1.SpeedButtonkommaClick(Sender: TObject);
var anzahl:integer;
begin
edit1.Text:=edit1.Text+',';
anzahl:=1;
end;


ist doch schon der richtige Anfang! Jetzt musst Du nur als erstes in dieser Procedure fragen, wie groß anzahl ist: kleiner eins --> Komma setzen, größer/gleich eins --> kein Komma setzen
mkinzler
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 4106
Erhaltene Danke: 13


Delphi 2010 Pro; Delphi.Prism 2011 pro
BeitragVerfasst: Di 19.06.07 09:20 
Oder du überprüfst, ob schon ein Komma vorhanden ist (pos())

_________________
Markus Kinzler.
24karatboy Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 110

Win XP
Delphi (Delphi Win32)
BeitragVerfasst: Di 19.06.07 09:25 
Titel: pos
das mit dem pos ist glaub ich die bessere lösung aber kannst du mir die syntax kurz erklären ?
mkinzler
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 4106
Erhaltene Danke: 13


Delphi 2010 Pro; Delphi.Prism 2011 pro
BeitragVerfasst: Di 19.06.07 09:34 
Pos() liefert die die Position einen Teilstrings innerhalb eines anderen Strings zurück oder 0 wenn er nicht gefunden wurde

ausblenden Delphi-Quelltext
1:
if pos( ',', Edit1.Text ) = 0 then ...					


BTW. mit F1 hätte dir auch die OH geholfen

_________________
Markus Kinzler.
24karatboy Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 110

Win XP
Delphi (Delphi Win32)
BeitragVerfasst: Di 19.06.07 09:48 
Titel: danke
danke mkinzler hast mir echt geholfen
24karatboy Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 110

Win XP
Delphi (Delphi Win32)
BeitragVerfasst: Di 19.06.07 09:57 
Titel: eine frage noch
eine kleine erweioterung habe ich noch das komma darf ja theoretisch nicht an der 1. stelle stehen wie kann ich das denn realisieren ? abfragen ob in edit1.text schon was steht wenn nicht dann geht komma nicht ?
mkinzler
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 4106
Erhaltene Danke: 13


Delphi 2010 Pro; Delphi.Prism 2011 pro
BeitragVerfasst: Di 19.06.07 10:00 
Wäre ja ne gute Lösung. Besser wäre es aber in diesem Fall die 0 zu ergänzen.

_________________
Markus Kinzler.
24karatboy Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 110

Win XP
Delphi (Delphi Win32)
BeitragVerfasst: Di 19.06.07 10:13 
sagen wir ich rechne ,75 / 3 dann kommt 0,25 raus das macht er schon automatisch aber sieht doof aus oder ?

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
procedure TForm1.SpeedButtonkommaClick(Sender: TObject);
begin
if pos( ',', Edit1.Text ) = 1 then copy(.......  
if pos( ',', Edit1.Text ) = 0 then
      edit1.Text:=edit1.Text+',';

end;


bin mir nciht sicher ob das so reibungslos klappt
24karatboy Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 110

Win XP
Delphi (Delphi Win32)
BeitragVerfasst: Di 19.06.07 10:43 
niemand nen gedankenanstoss für mich ?
24karatboy Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 110

Win XP
Delphi (Delphi Win32)
BeitragVerfasst: Di 19.06.07 11:19 
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
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;

end.


hab das jetzt so gelöst wollte das nurmal posten damit leute die soetwas mal brauchen es auch sehen können ;)

danke an alle