| Autor |
Beitrag |
LinzerASK
      
Beiträge: 135
WIN XP
Delphi 4, Delphi 2005
|
Verfasst: So 19.06.05 11:50
hallo!
ich versuche einen windows ähnlichen rechenr zu programmieren!
ich schaffe auch einen mit zwei spinedit feldern,....
aber ich möchte das so:
das man auf einen button mit zahlen von 0-9 klickt, und das ergebnis dann in einem edit feld ausgegeben wird!
ich hoffe ihr könnt mir den nötigen ratschlag geben wie das funktioniert!
|
|
CABALxx
      
Beiträge: 174
D7 Ent
|
Verfasst: So 19.06.05 13:12
was genau möchtest du?
wenn ich das jetzt richtig interpretiere dann versuchst du, einen taschenrechner zu programmieren der in etwa so ist wie der von windoof????
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| procedure TForm1.Button1Click(Sender: TObject); begin Edit1.Text := Edit1.Text + '1'; end;
procedure TForm1.Button2Click(Sender: TObject); begin Edit1.Text := Edit1.Text + '2'; end;
..... usw usw |
dann kannste buttons 0 -9 machen und wenn du dann 1 klickst wird die zahl 1 dem edit feld hinzugefügt...
meintest du sowas?
|
|
Keldorn
      
Beiträge: 2266
Erhaltene Danke: 4
Vista
D6 Prof, D 2005 Pro, D2007 Pro, DelphiXE2 Pro
|
Verfasst: So 19.06.05 13:16
| Keldorn hat folgendes geschrieben: | | Allen Zahlen-Buttons die gleiche onclick-routine zuweisen. |
eineonclickroutine erstellen und allen butons per OI diese onclickmethode zuweisen.
Mfg Frank
edit: aus Versehen auf edit gekommen 
_________________ Lükes Grundlage der Programmierung: Es wird nicht funktionieren.
(Murphy)
Zuletzt bearbeitet von Keldorn am Fr 24.06.05 19:12, insgesamt 2-mal bearbeitet
|
|
BenBE
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: So 19.06.05 13:51
Sieht dann so hier aus:
Delphi-Quelltext 1: 2: 3: 4:
| procedure TForm1.ButtonClick(Sender: TObject); begin Edit1.Text := Edit1.Text + IntToStr(TComponent(Sender).Tag); end; |
//Edit: procedure im Source ergänzt 
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
Zuletzt bearbeitet von BenBE am So 19.06.05 14:41, insgesamt 2-mal bearbeitet
|
|
CABALxx
      
Beiträge: 174
D7 Ent
|
Verfasst: So 19.06.05 13:56
sry bin kein profi wie ihr
für mich is die einfachste lösung die naheliegendste
|
|
LinzerASK 
      
Beiträge: 135
WIN XP
Delphi 4, Delphi 2005
|
Verfasst: So 19.06.05 17:47
Titel: ????????
|
|
LinzerASK 
      
Beiträge: 135
WIN XP
Delphi 4, Delphi 2005
|
Verfasst: So 19.06.05 18:06
a jo ,...
eine frage noch zum
Edit1.Text := Edit1.Text + '1'
da wird ja die zahl lediglich raufgeschrieben ins edit-feld,...!
mehr nicht!
und wenn ich das selbe dann mit:
Edit1.Text := Edit1.Text + '+' für ein rechenzeichen einfüge dann steht zwar ein plus oben im edit-feld,...! *lol*
und wie kann man das dann ausrechnen lassen!? 
|
|
Keldorn
      
Beiträge: 2266
Erhaltene Danke: 4
Vista
D6 Prof, D 2005 Pro, D2007 Pro, DelphiXE2 Pro
|
Verfasst: So 19.06.05 20:03
Titel: Re: ????????
_________________ Lükes Grundlage der Programmierung: Es wird nicht funktionieren.
(Murphy)
|
|
LinzerASK 
      
Beiträge: 135
WIN XP
Delphi 4, Delphi 2005
|
Verfasst: So 19.06.05 20:06
na gut und wie macht man das bei
+
-
*
/
?!!?!??!
und bei "="
ich verstehe das nicht mi dem "parsen"
|
|
Tilo
      
Beiträge: 1098
Erhaltene Danke: 13
Win7 geg. WInXP oder sogar Win98
Rad2007
|
Verfasst: Mo 20.06.05 14:15
zerlegen der gleichung.
z.b'11+56=' bedeutet: 1.Term ist 11, Rechnenzeichen '+' -> 2. Term (56) zum ersten hinzuaddieren. so in etwa nur wesentlich ausführlicher.
|
|
LinzerASK 
      
Beiträge: 135
WIN XP
Delphi 4, Delphi 2005
|
Verfasst: Mo 20.06.05 14:42
@ tilo! danke für den tipp! nur soll ich das dann in strings zerlegen oder wie?!
ich bräuchte da ein kleines beispiel für ein rechenzeichen oder was weiß ich!
|
|
Kroni
      
Beiträge: 720
Win 98, Win ME, Win2k, Win XP
D3 Pro
|
Verfasst: Mo 20.06.05 14:43
Er ist doch noch Anfänger, dann lasst doch das Parsen weg
Einfach wie oben die Eingabe...dann nen Rechenzeichen.....Edit auf null setzen
zweite Zahl eingeben....erzwingen, dass man nur = Klicken kann, und dann das Ergebnis berechnen.....
und so fort.....nur dass dann eben anch dem Klick auf = das Ergebnis= 1. Zahl ist....
So kann man sich das Parsen sparen!
Nur kann man dann eben immer nur zwei Zahlen berechnen, so wie es der Windows Rechner auch kann!
|
|
LinzerASK 
      
Beiträge: 135
WIN XP
Delphi 4, Delphi 2005
|
Verfasst: Mo 20.06.05 15:03
Titel: mah i gibs auf
und wie schreibt man dass!
bitte!,...!
|
|
Kroni
      
Beiträge: 720
Win 98, Win ME, Win2k, Win XP
D3 Pro
|
Verfasst: Mo 20.06.05 15:09
Ist das ne Hausaufgabe??
Nun ja....
ich poste ungern den kompletten Source
mach dir doch erstmal Gedanken darum, wie du die Eingabe machst.....dazu hast du ja shcon genug anregung....
und dann musst du nen Rechenzeichen drücken....abspeichern, welches das war.....
die Zahl, die im Edit feld steht speichern....
die Zweite Zahl eingeben.....alle rechenzeichen sperren .....damit du auch nur das = Drücken kannst...
und dann das ERgebnis berechnen
das Ergebnis dann wieder Speichern...dazu bringen, dass nur ein Rechenzeichen gedrückt werden kann....
nachdem das gedrückt worden ist, dafür sorgen, dass die Zweite Zahl eingeben wird, und dann, dass wieder dsa = gedürckt werden muss usw.....
|
|
LinzerASK 
      
Beiträge: 135
WIN XP
Delphi 4, Delphi 2005
|
Verfasst: Mo 20.06.05 15:12
Titel: danke!
!danke jetzt ist es mir klar geworden!,.....
danke! ne es ist kein hausübung!
|
|
Kroni
      
Beiträge: 720
Win 98, Win ME, Win2k, Win XP
D3 Pro
|
Verfasst: Mo 20.06.05 15:15
Jo, versuch das mal zu realisieren.
Wenn du dabei Probelme hast, dann solltest du dich hier melden.
Vlt. auch mal mit Codeschnipseln, damit man sieht, dass du dir gedanken machst.
|
|
LinzerASK 
      
Beiträge: 135
WIN XP
Delphi 4, Delphi 2005
|
Verfasst: Fr 24.06.05 14:49
Titel: ich komme nicht weiter
was muss ich jetzt machen!?
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: 149: 150: 151: 152: 153: 154: 155: 156: 157: 158: 159: 160:
| Button14: TButton; Button15: TButton; Button16: TButton; Datei: TMainMenu; Datei1: TMenuItem; Hilfe1: TMenuItem; Beenden1: TMenuItem; Hilfe2: TMenuItem; Infos1: TMenuItem; Edit1: TEdit; Button17: TButton; procedure Beenden1Click(Sender: TObject); procedure Infos1Click(Sender: TObject); procedure Hilfe2Click(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure Button5Click(Sender: TObject); procedure Button6Click(Sender: TObject); procedure Button7Click(Sender: TObject); procedure Button8Click(Sender: TObject); procedure Button9Click(Sender: TObject); procedure Button10Click(Sender: TObject); procedure Button16Click(Sender: TObject); procedure Button12Click(Sender: TObject);
procedure Button15Click(Sender: TObject); private
public end;
var s:string; z1:integer; z2:integer; erg:integer; p:integer; o:string; l:strinG; Form1: TForm1;
implementation
uses Unit2, Unit3;
{$R *.DFM}
{$R WinXPStyle.res}
procedure TForm1.Beenden1Click(Sender: TObject); begin
close; end;
procedure TForm1.Infos1Click(Sender: TObject); begin form3.show; end;
procedure TForm1.Hilfe2Click(Sender: TObject); begin form2.show; end;
procedure TForm1.Button1Click(Sender: TObject); begin Edit1.Text := Edit1.Text + IntToStr(TComponent(Sender).Tag); end;
procedure TForm1.Button2Click(Sender: TObject); begin Edit1.Text := Edit1.Text + IntToStr(TComponent(Sender).Tag); end;
procedure TForm1.Button3Click(Sender: TObject); begin Edit1.Text := Edit1.Text + IntToStr(TComponent(Sender).Tag); end;
procedure TForm1.Button4Click(Sender: TObject); begin Edit1.Text := Edit1.Text + IntToStr(TComponent(Sender).Tag); end;
procedure TForm1.Button5Click(Sender: TObject); begin Edit1.Text := Edit1.Text + IntToStr(TComponent(Sender).Tag); end;
procedure TForm1.Button6Click(Sender: TObject); begin Edit1.Text := Edit1.Text + IntToStr(TComponent(Sender).Tag); end;
procedure TForm1.Button7Click(Sender: TObject); begin Edit1.Text := Edit1.Text + IntToStr(TComponent(Sender).Tag); end;
procedure TForm1.Button8Click(Sender: TObject); begin Edit1.Text := Edit1.Text + IntToStr(TComponent(Sender).Tag); end;
procedure TForm1.Button9Click(Sender: TObject); begin Edit1.Text := Edit1.Text + IntToStr(TComponent(Sender).Tag); end;
procedure TForm1.Button10Click(Sender: TObject); begin Edit1.Text := Edit1.Text + IntToStr(TComponent(Sender).Tag); end;
procedure TForm1.Button16Click(Sender: TObject); begin edit1.clear; end;
procedure TForm1.Button12Click(Sender: TObject); begin Edit1.Text := Edit1.Text + button12.caption; if edit1.text='++' then showmessage('Nur ein Plus!'); end;
procedure TForm1.Button15Click(Sender: TObject); var z1,z2:integer; rz:string; erg:integer;
begin z1:=strtoint(edit1.text); edit1.clear;
if edit1.text='+' then rz:='+'; if edit1.text='*' then rz:='-'; if edit1.text='/' then rz:='/'; if edit1.text='/' then rz:='*';
z2:=strtoint(edit1.text); edit1.clear;
if rz='+' then erg:=z1+z2; if rz='-' then erg:=z1-z2; if rz='*' then erg:=z1*z2; if rz='/' then erg:=z1*z2;
edit1.text:=inttostr(erg);
end;
end. |
Moderiert von raziel: Code- durch Delphi-Tags ersetzt.
|
|
Keldorn
      
Beiträge: 2266
Erhaltene Danke: 4
Vista
D6 Prof, D 2005 Pro, D2007 Pro, DelphiXE2 Pro
|
Verfasst: Fr 24.06.05 19:11
Titel: Re: ich komme nicht weiter
| Keldorn hat folgendes geschrieben: | | Allen Zahlen-Buttons die gleiche onclick-routine zuweisen. |
eineonclickroutine erstellen und allen butons per OI diese onclickmethode zuweisen.
Mfg Frank
_________________ Lükes Grundlage der Programmierung: Es wird nicht funktionieren.
(Murphy)
|
|
LH_Freak
      
Beiträge: 385
Win XP
D7 PE, D2k5 Trial
|
Verfasst: Fr 24.06.05 19:58
bei den Jedikomponenten ist eine Kompo zum Parsen dabei (  JvInterpreterProgram) dann ist das ganze relativ einfach
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| procedure TForm1.Button1Click(Sender: TObject); begin Edit1.Text := Edit1.Text + (Sender as TButton).Caption; end;
procedure TForm1.Button15Click(Sender: TObject); begin JvInterpreterProgram1.Pas.Add(Edit1.Text); JvInterpreterProgram1.Run; Edit1.Text := JvInterpreterProgram1.VResult end; |
Ok????
EDIT:
Den einzelnen Buttons (bis auf = ) musst du bei onClick Button1Click zuweisen
|
|