![]() |
Verweisen in
hallo ich habe folgendes Problem, ich hab angefangen einen Taschenrechner zu programmieren, nun habe ich mir aber überlegt diesen erst erscheinen zu lassen wenn man im menü auf Taschenrechner klickt.
Delphi-Quellcode:
Weil ich mich noch nich besonders lange mit Delpi befasse, weiß ich nun nicht ob ich den code vom Taschenrechner jetzt in die procedur oben schreiben muss ? Hier der restliche Code:
procedure TForm1.aschenrechner1Click(Sender: TObject);
begin end;
Delphi-Quellcode:
Danke.
unit rechner;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Math, Menus; type TForm1 = class(TForm) Taste1: TButton; Taste2: TButton; Taste4: TButton; Taste5: TButton; Taste6: TButton; Taste8: TButton; Taste9: TButton; Taste0: TButton; Taste7: TButton; clr: TButton; Taste3: TButton; Ausgabe: TEdit; plus: TButton; minus: TButton; mal: TButton; geteilt: TButton; Komma: TButton; ergebnis: TButton; potenzieren: TButton; wurzel: TButton; Vorzeichen: TButton; sinus: TButton; Cosinus: TButton; Tangens: TButton; MainMenu1: TMainMenu; ProgrammWhlen1: TMenuItem; aschenrechner1: TMenuItem; procedure Taste1Click(Sender: TObject); procedure plusClick(Sender: TObject); procedure Taste2Click(Sender: TObject); procedure Taste3Click(Sender: TObject); procedure Taste4Click(Sender: TObject); procedure Taste5Click(Sender: TObject); procedure Taste6Click(Sender: TObject); procedure Taste7Click(Sender: TObject); procedure Taste8Click(Sender: TObject); procedure Taste9Click(Sender: TObject); procedure Taste0Click(Sender: TObject); procedure KommaClick(Sender: TObject); procedure ergebnisClick(Sender: TObject); procedure minusClick(Sender: TObject); procedure malClick(Sender: TObject); procedure geteiltClick(Sender: TObject); procedure potenzierenClick(Sender: TObject); procedure clrClick(Sender: TObject); procedure wurzelClick(Sender: TObject); procedure VorzeichenClick(Sender: TObject); procedure sinusClick(Sender: TObject); procedure CosinusClick(Sender: TObject); procedure TangensClick(Sender: TObject); procedure aschenrechner1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; a,b,c :double; bplus,bminus,bmal,bgeteilt,bpotenzieren,bwurzel,bsinus,bcosinus,btangens :boolean; implementation {$R *.dfm} procedure TForm1.Taste1Click(Sender: TObject); begin Ausgabe.Text := Ausgabe.text+'1'; end; procedure TForm1.plusClick(Sender: TObject); begin bplus := true; a := StrToFloat(Ausgabe.Text); ausgabe.Text := ''; end; procedure TForm1.Taste2Click(Sender: TObject); begin Ausgabe.Text := Ausgabe.text+'2'; end; procedure TForm1.Taste3Click(Sender: TObject); begin Ausgabe.Text := Ausgabe.text+'3'; end; procedure TForm1.Taste4Click(Sender: TObject); begin Ausgabe.Text := Ausgabe.text+'4'; end; procedure TForm1.Taste5Click(Sender: TObject); begin Ausgabe.Text := Ausgabe.text+'5'; end; procedure TForm1.Taste6Click(Sender: TObject); begin Ausgabe.Text := Ausgabe.text+'6'; end; procedure TForm1.Taste7Click(Sender: TObject); begin Ausgabe.Text := Ausgabe.text+'7'; end; procedure TForm1.Taste8Click(Sender: TObject); begin Ausgabe.Text := Ausgabe.text+'8'; end; procedure TForm1.Taste9Click(Sender: TObject); begin Ausgabe.Text := Ausgabe.text+'9'; end; procedure TForm1.Taste0Click(Sender: TObject); begin Ausgabe.Text := Ausgabe.text+'0'; end; procedure TForm1.KommaClick(Sender: TObject); begin Ausgabe.Text := Ausgabe.text+','; end; procedure TForm1.ergebnisClick(Sender: TObject); var ergebnis: extended; begin b := StrToFloat(Ausgabe.Text); if bplus = true then c := a + b; if bminus = true then c := a - b; if bmal = true then c := a * b; if bgeteilt = true then c := a / b; if bpotenzieren = true then begin ergebnis := Power(a, b); c := ergebnis; if bsinus = true then c := sin(Pi*a/180); end; if bwurzel = true then begin ergebnis := Power(a, 1/b); c := ergebnis; end; if bsinus = true then begin c := sin(Pi*a/180); end; if bcosinus = true then begin c := cos(Pi*a/180); end; if btangens = true then begin c := tan(Pi*a/180); end; Ausgabe.text := floattostr(c); bplus := false; bminus := false; bmal := false; bgeteilt := false; bpotenzieren := false; bwurzel := false; bsinus := false; end; procedure TForm1.minusClick(Sender: TObject); begin bminus := true; a := StrToFloat(Ausgabe.Text); ausgabe.Text := ''; end; procedure TForm1.malClick(Sender: TObject); begin bmal := true; a := StrToFloat(Ausgabe.Text); ausgabe.Text := ''; end; procedure TForm1.geteiltClick(Sender: TObject); begin bgeteilt := true; a := StrToFloat(Ausgabe.Text); ausgabe.Text := ''; end; procedure TForm1.potenzierenClick(Sender: TObject); begin bpotenzieren := true; a := StrToFloat(Ausgabe.Text); ausgabe.Text := ''; end; procedure TForm1.clrClick(Sender: TObject); begin a := 0; b := 0; c := 0; ausgabe.Text := ''; end; procedure TForm1.wurzelClick(Sender: TObject); begin bwurzel := true; a := StrToFloat(Ausgabe.Text); ausgabe.Text := ''; end; procedure TForm1.VorzeichenClick(Sender: TObject); begin ausgabe.Text := floattostr(-1 * strtofloat(ausgabe.text)); end; procedure TForm1.sinusClick(Sender: TObject); begin bsinus := true; a := StrToFloat(Ausgabe.Text); end; procedure TForm1.CosinusClick(Sender: TObject); begin bcosinus := true; a := StrToFloat(Ausgabe.Text); end; procedure TForm1.TangensClick(Sender: TObject); begin btangens := true; a := StrToFloat(Ausgabe.Text); end; procedure TForm1.aschenrechner1Click(Sender: TObject); begin end; end. |
Re: Verweisen in
Ich würde das Hauptprogramm mit dem Menü in eine eigene Unit legen und dann die taschenrechnerform zur Laufzeit dynamisch erzeugen.
|
Re: Verweisen in
Könntest du mir das noch etwas näher erläutern ?
|
Re: Verweisen in
Ich würde das Formular mit dem Taschenrechner in CalcForm o.ä. umbennenen und dort nur noch das zum rechner gehörige belassen. Dann ein Weiteres Formular erzeugen )z.B. HauptForm), dem das Menu hinzufügen. Für die form des Rechners würde ich die automatische Erzeugung abschalten.
Im Aufruf des Menupunktes würde ich dann folgendes einfügen:
Delphi-Quellcode:
CalcForm := TCalcForm.Create( self);
CalcForm.Show; bzw ShowModal; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:26 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz