Autor Beitrag
LinzerASK
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 135

WIN XP
Delphi 4, Delphi 2005
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 174


D7 Ent
BeitragVerfasst: 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????


ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 2266
Erhaltene Danke: 4

Vista
D6 Prof, D 2005 Pro, D2007 Pro, DelphiXE2 Pro
BeitragVerfasst: 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 :oops:

_________________
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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: So 19.06.05 13:51 
Sieht dann so hier aus:
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 174


D7 Ent
BeitragVerfasst: So 19.06.05 13:56 
sry bin kein profi wie ihr :wink:

für mich is die einfachste lösung die naheliegendste
LinzerASK Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 135

WIN XP
Delphi 4, Delphi 2005
BeitragVerfasst: So 19.06.05 17:47 
Titel: ????????
ausblenden Delphi-Quelltext
1:
Edit1.Text := Edit1.Text + IntToStr(TComponent(Sender).Tag);					


bei diesem code steht dann immer "null" im edit-feld!

ausblenden Delphi-Quelltext
1:
Edit1.Text := Edit1.Text +'1';					



bei diesen, wie soll man dann die rechenoperationen durchführen!?

Moderiert von user profile iconChristian S.: Code- durch Delphi-Tags ersetzt.
LinzerASK Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 135

WIN XP
Delphi 4, Delphi 2005
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 2266
Erhaltene Danke: 4

Vista
D6 Prof, D 2005 Pro, D2007 Pro, DelphiXE2 Pro
BeitragVerfasst: So 19.06.05 20:03 
Titel: Re: ????????
user profile iconLinzerASK hat folgendes geschrieben:
ausblenden Quelltext
1:
Edit1.Text := Edit1.Text + IntToStr(TComponent(Sender).Tag);					


bei diesem code steht dann immer "null" im edit-feld!


wir gehen natürlich davon aus, das du die Tag-Eigenschften der Buttons auch entprechend setzt. ;)

Zitat:

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!?

such nach Suche in: Delphi-Forum, Delphi-Library PARSER

_________________
Lükes Grundlage der Programmierung: Es wird nicht funktionieren.
(Murphy)
LinzerASK Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 135

WIN XP
Delphi 4, Delphi 2005
BeitragVerfasst: So 19.06.05 20:06 
na gut und wie macht man das bei

+
-
*
/

?!!?!??!

und bei "="


ich verstehe das nicht mi dem "parsen"
Tilo
ontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 1098
Erhaltene Danke: 13

Win7 geg. WInXP oder sogar Win98
Rad2007
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 135

WIN XP
Delphi 4, Delphi 2005
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 720

Win 98, Win ME, Win2k, Win XP
D3 Pro
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 135

WIN XP
Delphi 4, Delphi 2005
BeitragVerfasst: Mo 20.06.05 15:03 
Titel: mah i gibs auf
und wie schreibt man dass!

bitte!,...!
Kroni
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 720

Win 98, Win ME, Win2k, Win XP
D3 Pro
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 135

WIN XP
Delphi 4, Delphi 2005
BeitragVerfasst: Mo 20.06.05 15:12 
Titel: danke!
!danke jetzt ist es mir klar geworden!,.....

danke! ne es ist kein hausübung!
Kroni
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 720

Win 98, Win ME, Win2k, Win XP
D3 Pro
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 135

WIN XP
Delphi 4, Delphi 2005
BeitragVerfasst: Fr 24.06.05 14:49 
Titel: ich komme nicht weiter
was muss ich jetzt machen!?


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:
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
    { Private-Deklarationen }

  public
    { Public-Deklarationen }
  end;

var
s:string;
z1:integer;
z2:integer;
erg:integer;
p:integer;
o:string;
l:strinG;
//z1:integer;
  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 user profile iconraziel: Code- durch Delphi-Tags ersetzt.
Keldorn
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 2266
Erhaltene Danke: 4

Vista
D6 Prof, D 2005 Pro, D2007 Pro, DelphiXE2 Pro
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 385

Win XP
D7 PE, D2k5 Trial
BeitragVerfasst: Fr 24.06.05 19:58 
bei den Jedikomponenten ist eine Kompo zum Parsen dabei (:arrow: JvInterpreterProgram) dann ist das ganze relativ einfach ;)

ausblenden 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