Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Verweisen in (https://www.delphipraxis.net/71477-verweisen.html)

Mb123 15. Jun 2006 21:00


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:
procedure TForm1.aschenrechner1Click(Sender: TObject);
begin

end;
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:

Delphi-Quellcode:
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.
Danke.

mkinzler 15. Jun 2006 21:03

Re: Verweisen in
 
Ich würde das Hauptprogramm mit dem Menü in eine eigene Unit legen und dann die taschenrechnerform zur Laufzeit dynamisch erzeugen.

Mb123 15. Jun 2006 21:03

Re: Verweisen in
 
Könntest du mir das noch etwas näher erläutern ?

mkinzler 15. Jun 2006 21:07

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 22:23 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz