AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Fragen zum aufstellen von Formeln

Fragen zum aufstellen von Formeln

Ein Thema von DelphiforIngBachelor · begonnen am 8. Jun 2018 · letzter Beitrag vom 11. Jun 2018
Antwort Antwort
Seite 1 von 2  1 2   
DelphiforIngBachelor

Registriert seit: 8. Jun 2018
3 Beiträge
 
#1

Fragen zum aufstellen von Formeln

  Alt 8. Jun 2018, 14:21
Hallo liebe Leute,

Ich bin ein kompletter Neuanfänger mit Delphi und Programmierung allgemein.
Nun muss ich aber für meinen Bachelor den ich eigentlich nächste Woche in der Tasche haben will ein Delphi Projekt erstellen.

Bei mir solls um eine Entscheidungshilfe zum Lüftungssystem abhängig von den Komforterwartung gehen.

Ich habe das Allgemeine Problem, dass bei mir vieles über Formeln läuft. Zum Beispiel: qv,ges = fws*(-0,002*ANE²+1,15+ANE+20)
ANE soll per Editfeld eingetragen werden.
fws ist abhängig von der Belegungsdichte und dem Wärmeschutz (nach EnEV). Daher sollen für die beiden Faktoren jeweils zwei Buttons erstellt werden. "gering" und "hoch".
Anschließend soll auf einen Weiteren Button geklickt werde der mir die oben genannte Formel ausrechnet und in einem Label angezeigt wird.
Wie teile ich den Buttons "gering" und "hoch" eine Zahl zu. mit welcher die oben genannte Formel ausgerechnet wird?
Habe mir das Layout gemäß dem Anhang vorgestellt.

Das ist mein Quellcode (der nicht funktioniert und nicht vollständig ist)

unit Unit2;

interface

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

type
TForm2 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Edit1: TEdit;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Button5: TButton;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);


private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;

var
Form2: TForm2;
Label13, Label14, Edit1: Real;

implementation

{$R *.dfm}

procedure TForm2.Button1Click(Sender: TObject);
begin
Label6.Caption := 'hoch';
Label13.Caption := '0,1' + StrToInt(Label13);
end;




procedure TForm2.Button2Click(Sender: TObject);
begin
Label6.Caption := 'gering';
Label13.Caption := '0,2' + StrToInt;

end;

procedure TForm2.Button3Click(Sender: TObject);
begin
Label7.Caption := 'hoch';
Label14.Caption := '0,2' + StrToInt;
end;

procedure TForm2.Button4Click(Sender: TObject);
begin
Label7.Caption := 'gering';
Label14.Caption := '0,1' + StrToInt;
end;

end.

Hoffe ihr könnt mir helfen!
Miniaturansicht angehängter Grafiken
kenndaten.png  
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
2.619 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#2

AW: Fragen zum aufstellen von Formeln

  Alt 8. Jun 2018, 14:53
Als kompletten Neuanfänger würde ich dich bitten dir dieses kostenlose E-Book anzuschauen:
https://downloads.delphi-treff.de/DelphiStarter.pdf
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.674 Beiträge
 
Delphi 6 Enterprise
 
#3

AW: Fragen zum aufstellen von Formeln

  Alt 8. Jun 2018, 15:17
Anstatt der hoch / gering Button, würde ich da eine Radiobox/Radiobutton einsetzen. Dann kannst du im Code sinngemäß sowas machen wie:

Wenn RadioboxWärmeschutzHoch.Selected dann fws=123 sonst fws=456
Ralph
  Mit Zitat antworten Zitat
DelphiforIngBachelor

Registriert seit: 8. Jun 2018
3 Beiträge
 
#4

AW: Fragen zum aufstellen von Formeln

  Alt 8. Jun 2018, 16:48
Danke Für die Antworten. Habe das Problem gelöst bekommen. Stehe aber schon wieder vor dem nächsten.

Und zwar soll eine Fehlermeldung kommen wenn Angaben nicht getroffen wurden. Funktioniert auch für die Button Felder. Das einzige Problem stellt jetzt das Edit Feld dar. Wenn da nichts drin steht bekomme ich immer die Fehlermeldung dass '' kein Gleitkommawert ist.

Das sieht dann bei mir so aus:
--------------
procedure TForm2.Button5Click(Sender: TObject);
begin


Zahl1 := StrToFloat(Edit1.Text);

Label11.Caption := FloatToStr(BerechneFeuchteschutz(Zahl1,Zahl2,Zahl3 ));

if
Edit1.Text = ''
then
showmessage ('Bitte Geben sie die Nutzfläche an');
Label11.Caption := 'Fehlende Angaben';
if
Zahl2 = 0
then
showmessage ('Bitte machen Sie eine Angabe zum Wärmeschutz');
Label11.Caption := 'Fehlende Angaben';
if
Zahl3 = 0
then
showmessage ('Bitte machen Sie eine Angabe zur Belegungsdichte');
Label11.Caption := 'Fehlende Angaben';
end;


end.
---------------
Vielleicht könnt ihr helfen.
  Mit Zitat antworten Zitat
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
725 Beiträge
 
Delphi 2009 Professional
 
#5

AW: Fragen zum aufstellen von Formeln

  Alt 9. Jun 2018, 00:19
Das heißt, dass du nichts in Edit1 eingegeben hast.
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
2.685 Beiträge
 
Delphi 10.3 Rio
 
#6

AW: Fragen zum aufstellen von Formeln

  Alt 9. Jun 2018, 01:10
Vielleicht könnt ihr helfen.
Delphi-Quellcode:
procedure TForm2.Button5Click(Sender: TObject);
begin
    if Edit1.Text = 'then // <- wenn Edit1 keinen Inhalt hat dann...
    begin // <- hiermit einen block anfangen der für die zeile drüber zuständig ist
      // alles was passieren soll wenn Bedingung (Edit1.Text = '') zutrifft kommt hier rein.
      showmessage ('Bitte Geben sie die Nutzfläche an');
      Label11.Caption := 'Fehlende Angaben';
      exit; // <- das bewirkt das die procedure TForm2.Button5Click vorzeitig beendet wird.
    end; // <- hier endet der Begin block, JEDES BEGIN BRAUCHT AUCH EIN END;!

    if Zahl2 = 0 then
    begin
      showmessage ('Bitte machen Sie eine Angabe zum Wärmeschutz');
      Label11.Caption := 'Fehlende Angaben';
      exit;
    end;

    if Zahl3 = 0 then
    begin
      showmessage ('Bitte machen Sie eine Angabe zur Belegungsdichte');
      Label11.Caption := 'Fehlende Angaben';
      exit;
    end;
    
    try
      Zahl1 := StrToFloat(Edit1.Text);
    finally
      Label11.Caption := FloatToStr(BerechneFeuchteschutz(Zahl1,Zahl2,Zahl3));
    end;
end;


end.
So vielleicht?
Gruß vom KodeZwerg

Geändert von KodeZwerg ( 9. Jun 2018 um 01:25 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von bytecook
bytecook

Registriert seit: 6. Aug 2010
Ort: Dornbirn
143 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#7

AW: Fragen zum aufstellen von Formeln

  Alt 9. Jun 2018, 14:50
Um es zusammenzufassen:

Schritt 1)

Auf Inhalt / Gültigkeit der Editfelder prüfen. Quick'n'Dirty mt try / except / end auf vorhandene, respektive gültige Zahl prüfen..
Liegt keine Zahl vor (leer/ nichtnumerische Characters), würde ich das Editfeld im Except-Teil mit einer '0' vorbelegen...

Schritt 2) Bei Gültigkeit das Ergebnis ausgeben bzw eine Fehlerinfo mit Showmessage anzeigen.
Peter
Was mache ich, wenn ein Bär meine Frau angreift?
Nichts. Er hat sie angegriffen, soll er doch selber sehen, wie er sich verteidigt.

Geändert von bytecook ( 9. Jun 2018 um 14:51 Uhr) Grund: http://www.peterkleemann.de/cgi/bofhserver-cgi.pl
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
2.992 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: Fragen zum aufstellen von Formeln

  Alt 9. Jun 2018, 16:41
Ich würde schonmal raten zumindest die Berechnung als eigene Klasse in eine separate Unit auszulagern.
So kannst du das zumindest 100% Testen und deine Logik ist schon,al sauber getrennt von deiner Form, wenn sich da nochmal was ändert.

Delphi-Quellcode:
type
  TBerechnung = class
  private
      FEingabe1 : Integer
      FEingabe2 : Integer

  public
      function IsValid : Boolean;
      function Ergebnis : Double;
  
      property Eingabe1 : Integer
      property Eingabe2 : Integer
  end;

TBerechnung.IsValid : Boolean;
begin
    Result := (Eingabe1 <> 0) and (Eingabe2 <> 0); // Und was immer du da brauchst
end;

TBerechnung.Ergebnis : Double;
begin
    if IsValid then
        Result := Eingabe1 * Eingabe2 // Was immer du da brauchst
    else
        Result := NaN; // Wenn die Berechnung nicht möglich ist
end;
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
2.685 Beiträge
 
Delphi 10.3 Rio
 
#9

AW: Fragen zum aufstellen von Formeln

  Alt 9. Jun 2018, 20:58
Liegt keine Zahl vor (leer/ nichtnumerische Characters), würde ich das Editfeld...
...eine Maske für Zahlen verpassen mit default Wert 0.

Ps: Ich glaube nicht das der TE (Delphi for Ing Bachelor) groß Interesse hat wie man es in Zukunft korrekt handhaben sollte sondern lediglich das sein "Problem" weg ist.
Gruß vom KodeZwerg

Geändert von KodeZwerg ( 9. Jun 2018 um 21:11 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von blawen
blawen

Registriert seit: 1. Dez 2003
Ort: Luterbach (CH)
458 Beiträge
 
Delphi 10.3 Rio
 
#10

AW: Fragen zum aufstellen von Formeln

  Alt 9. Jun 2018, 21:14
Ps: Ich glaube nicht das der TE (Delphi for Ing Bachelor) groß Interesse hat wie man es in Zukunft korrekt handhaben sollte sondern lediglich das sein "Problem" weg ist.
Dies ist auch meine Vermutung. Von einem Bachelor Kandidaten würde ich mehr Engagement erwarten...
Roland
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 01:26 Uhr.
Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf