| Autor |
Beitrag |
24karatboy
      
Beiträge: 110
Win XP
Delphi (Delphi Win32)
|
Verfasst: Di 19.06.07 09:10
Guten Morgen und zwar hab ich folgendes problem:
ich hab denn taschenrechner hier geschrieben
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 Christian S.: Delphi-Tags hinzugefügt
|
|
Wonko
      
Beiträge: 69
|
Verfasst: Di 19.06.07 09:18
| Zitat: | 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
      
Beiträge: 4106
Erhaltene Danke: 13
Delphi 2010 Pro; Delphi.Prism 2011 pro
|
Verfasst: Di 19.06.07 09:20
Oder du überprüfst, ob schon ein Komma vorhanden ist (pos())
_________________ Markus Kinzler.
|
|
24karatboy 
      
Beiträge: 110
Win XP
Delphi (Delphi Win32)
|
Verfasst: 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
      
Beiträge: 4106
Erhaltene Danke: 13
Delphi 2010 Pro; Delphi.Prism 2011 pro
|
Verfasst: 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
Delphi-Quelltext 1:
| if pos( ',', Edit1.Text ) = 0 then ... |
BTW. mit F1 hätte dir auch die OH geholfen
_________________ Markus Kinzler.
|
|
24karatboy 
      
Beiträge: 110
Win XP
Delphi (Delphi Win32)
|
Verfasst: Di 19.06.07 09:48
Titel: danke
danke mkinzler hast mir echt geholfen
|
|
24karatboy 
      
Beiträge: 110
Win XP
Delphi (Delphi Win32)
|
Verfasst: 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
      
Beiträge: 4106
Erhaltene Danke: 13
Delphi 2010 Pro; Delphi.Prism 2011 pro
|
Verfasst: 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 
      
Beiträge: 110
Win XP
Delphi (Delphi Win32)
|
Verfasst: 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 ?
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 
      
Beiträge: 110
Win XP
Delphi (Delphi Win32)
|
Verfasst: Di 19.06.07 10:43
niemand nen gedankenanstoss für mich ?
|
|
24karatboy 
      
Beiträge: 110
Win XP
Delphi (Delphi Win32)
|
Verfasst: Di 19.06.07 11:19
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
|
|