AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Edit Felder mit Rechenfunktionen erstellen aber wie?
Thema durchsuchen
Ansicht
Themen-Optionen

Edit Felder mit Rechenfunktionen erstellen aber wie?

Ein Thema von Duffy Duck · begonnen am 23. Feb 2005 · letzter Beitrag vom 24. Feb 2005
Antwort Antwort
Seite 3 von 4     123 4      
Benutzerbild von sniper_w
sniper_w

Registriert seit: 12. Dez 2004
Ort: Wien, Österriech
893 Beiträge
 
Delphi 6 Enterprise
 
#21

Re: Edit Felder mit Rechenfunktionen erstellen aber wie?

  Alt 23. Feb 2005, 22:12
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Button1: TButton;
    procedure AllEditKeyPress(Sender: TObject; var Key: Char);
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

{
In den Editfelder werden nur Zahlen, das Dezimaltrennzeichen
und die Backspace-Taste zugelassen
}

procedure TForm1.AllEditKeyPress(Sender: TObject; var Key: Char);
begin
  if not (Key in ['0'..'9', #8, DecimalSeparator]) then
  begin
    Key := #0;
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  // Allen drei Eingabefeldern wir die selbe OnKeyPress-Methode zugewiesen
  Edit1.OnKeyPress := AllEditKeyPress;
  Edit2.OnKeyPress := AllEditKeyPress;
  Edit3.OnKeyPress := AllEditKeyPress;
  // Alle Editfelder löschen
  Edit1.Clear;
  Edit2.Clear;
  Edit3.Clear;
  Edit4.Clear;

  Button1.OnClick := Button1Click;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  zahl1,
  zahl2,
  zahl3 : Real;
  ergebniss : Real;
begin
  // Prüfen ob in den Editfeldern etwas steht.
  if (Edit1.Text = '') then
  begin
    ShowMessage ('Bitte im Edit1 etwas eingeben');
    Edit1.SetFocus; // Caret in Edit1 setzen
    Exit; // Abbruch der Procedure
  end;

  if (Edit2.Text = '') then
  begin
    ShowMessage ('Bitte im Edit2 etwas eingeben');
    Edit2.SetFocus;
    Exit;
  end;

  if (Edit3.Text = '') then
  begin
    ShowMessage ('Bitte im Edit3 etwas eingeben');
    Edit3.SetFocus;
    Exit;
  end;

  zahl1 := StrToFloat(Edit1.Text); // Zahl aus Edit1
  zahl2 := StrToFloat(Edit2.Text); // Zahl aus Edit2
  zahl3 := StrToFloat(Edit3.Text); // Zahl aus Edit3

  ergebniss := (zahl1 + zahl2) / zahl3; // Die Berechnung

  Edit4.Text := FloatToStr(ergebniss); // Ausgabe des Ergebnisses
end;

end.
So muss es gehen. Allerdings, muss du bevor du es kompilieren kannst, 4 mal eine TEdit Komponente auf formular setzen un ein TButton.
Dann auch Ereigniss entsprechend verknüpfen.
Form1.OnCerate = FormCreate(Sender: TObject); <- in Objekt Inspektor
Katura Haris
Es (ein gutes Wort) ist wie ein guter Baum, dessen Wurzel fest ist und dessen Zweige in den Himmel reichen.
  Mit Zitat antworten Zitat
Duffy Duck

Registriert seit: 22. Feb 2005
56 Beiträge
 
Delphi 7 Enterprise
 
#22

Re: Edit Felder mit Rechenfunktionen erstellen aber wie?

  Alt 23. Feb 2005, 22:18

ok supi, hat soweit funktioniert, nur....

wenn ich nun im
Edit1 den wert 20 eingebe
im
Edit2 den wert 10 eingebe
im
Edit3 den wert 2 eingebe

sollte doch das resultat 5 sein! also, 20-10 :2 = 5
bei mir kommt aber 15 raus
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#23

Re: Edit Felder mit Rechenfunktionen erstellen aber wie?

  Alt 23. Feb 2005, 22:25
Dann hast du die Klammern vergessen, Delphi rechnet auch Punkt vor Strich
  Mit Zitat antworten Zitat
Benutzerbild von Binärbaum
Binärbaum

Registriert seit: 19. Jan 2005
Ort: Elstra
764 Beiträge
 
Delphi 7 Enterprise
 
#24

Re: Edit Felder mit Rechenfunktionen erstellen aber wie?

  Alt 23. Feb 2005, 22:26
Zitat von Duffy Duck:

ok supi, hat soweit funktioniert, nur....

wenn ich nun im
Edit1 den wert 20 eingebe
im
Edit2 den wert 10 eingebe
im
Edit3 den wert 2 eingebe

sollte doch das resultat 5 sein! also, 20-10 :2 = 5
bei mir kommt aber 15 raus
Das liegt an der Regel "Punkt- vor Strichrechnung".
Dann musst du halt die Rechnung anders klammern, damit erst die Subtraktion und danach die Division ausgeführt wird.

MfG
Binärbaum
There are exactly 10 kinds of people: those who understand binary, and those who don't.
---
"Software reift beim Kunden. Bei Hardware ist es anders: Hardware fault beim Kunden." - Rainer G. Spallek
  Mit Zitat antworten Zitat
Duffy Duck

Registriert seit: 22. Feb 2005
56 Beiträge
 
Delphi 7 Enterprise
 
#25

Re: Edit Felder mit Rechenfunktionen erstellen aber wie?

  Alt 23. Feb 2005, 22:30
ich danke euch für eure gedult, habe aber wirklich keinen plan, wie ich das machen soll...
möchte eure Nerven ja nicht strapazieren
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#26

Re: Edit Felder mit Rechenfunktionen erstellen aber wie?

  Alt 23. Feb 2005, 22:36
SO, wie Sharky es geschrieben hat:

ergebniss := (zahl1 + zahl2) / zahl3; // Die Berechnung .
  Mit Zitat antworten Zitat
Duffy Duck

Registriert seit: 22. Feb 2005
56 Beiträge
 
Delphi 7 Enterprise
 
#27

Re: Edit Felder mit Rechenfunktionen erstellen aber wie?

  Alt 23. Feb 2005, 22:40
also jetzt verstehe ich gar nichts mehr... denn genau so habe ich es doch gemacht.

wie wäre es, wemm ich nun ein weiteres TEdit einfüge als ergebnis und dann aus diesem die division durchführen lasse??? könnte es so funktionieren?
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#28

Re: Edit Felder mit Rechenfunktionen erstellen aber wie?

  Alt 23. Feb 2005, 22:45
Du kannst es auch so machen, also als Beispiel:

Label1.Caption := FloatToStr((StrToInt(Edit1.Text) + StrToInt(Edit2.Text)) / StrToInt(Edit3.Text)); Klar, dazu muss noch ein Label auf's Formular gezogen werden.
  Mit Zitat antworten Zitat
Duffy Duck

Registriert seit: 22. Feb 2005
56 Beiträge
 
Delphi 7 Enterprise
 
#29

Re: Edit Felder mit Rechenfunktionen erstellen aber wie?

  Alt 23. Feb 2005, 23:33
es ist ja so banal (stirnklatsch), habe den fehler gefunden.... es sollte zahl1 - zahl2 und nicht + sein.

jetzt versuche ich noch folgendes:

Edit3 Wert sollte als Zahl eigegeben werden, soweit so gut (als bsp. 20), der wert der gerechnet werden sollte müsste aber im hintergrund 0,02 sein. also um 3 kommastellen nach links versetzt....

Ich danke wirklich allen die sich die Zeit (für meine lächerlichen Anfänger Fragen) genommen haben!!!!

Duffy Duck
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#30

Re: Edit Felder mit Rechenfunktionen erstellen aber wie?

  Alt 24. Feb 2005, 09:44
Zitat von Duffy Duck:
Edit3 Wert sollte als Zahl eigegeben werden, soweit so gut (als bsp. 20), der wert der gerechnet werden sollte müsste aber im hintergrund 0,02 sein. also um 3 kommastellen nach links versetzt....
Das wären aber 2 Kommastellen. Lösen kann du das doch auch ganz leicht:

Delphi-Quellcode:
var Zahl3_1: real;

Zahl_1 := StrToInt(Edit3.Text) / 100
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 4     123 4      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:21 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