![]() |
Re: Edit Felder mit Rechenfunktionen erstellen aber wie?
Delphi-Quellcode:
So muss es gehen. Allerdings, muss du bevor du es kompilieren kannst, 4 mal eine TEdit Komponente auf formular setzen un ein TButton.
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. Dann auch Ereigniss entsprechend verknüpfen. Form1.OnCerate = FormCreate(Sender: TObject); <- in Objekt Inspektor |
Re: Edit Felder mit Rechenfunktionen erstellen aber wie?
:-D
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 |
Re: Edit Felder mit Rechenfunktionen erstellen aber wie?
Dann hast du die Klammern vergessen, Delphi rechnet auch Punkt vor Strich ;)
|
Re: Edit Felder mit Rechenfunktionen erstellen aber wie?
Zitat:
Dann musst du halt die Rechnung anders klammern, damit erst die Subtraktion und danach die Division ausgeführt wird. MfG Binärbaum |
Re: Edit Felder mit Rechenfunktionen erstellen aber wie?
ich danke euch für eure gedult, habe aber wirklich keinen plan, wie ich das machen soll...
möchte eure Nerven ja nicht strapazieren :oops: |
Re: Edit Felder mit Rechenfunktionen erstellen aber wie?
SO, wie Sharky es geschrieben hat:
Delphi-Quellcode:
.
ergebniss := (zahl1 + zahl2) / zahl3; // Die Berechnung
|
Re: Edit Felder mit Rechenfunktionen erstellen aber wie?
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? |
Re: Edit Felder mit Rechenfunktionen erstellen aber wie?
Du kannst es auch so machen, also als Beispiel:
Delphi-Quellcode:
Klar, dazu muss noch ein Label auf's Formular gezogen werden.
Label1.Caption := FloatToStr((StrToInt(Edit1.Text) + StrToInt(Edit2.Text)) / StrToInt(Edit3.Text));
|
Re: Edit Felder mit Rechenfunktionen erstellen aber wie?
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 |
Re: Edit Felder mit Rechenfunktionen erstellen aber wie?
Zitat:
Delphi-Quellcode:
var Zahl3_1: real;
Zahl_1 := StrToInt(Edit3.Text) / 100 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:50 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