Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Anfängerfrage (https://www.delphipraxis.net/163767-anfaengerfrage.html)

seraph 14. Okt 2011 18:55

Delphi-Version: 2007

Anfängerfrage
 
hallo zusammen,
ich bin delphi anfänger und hab mir ein kleines programm bebastelt das eine einfache berechnung vornimmt aber leider sind die ergebnisse im release anders (und falsch) aber
im debug modus richtig? Fehlt mir etwas bei den "uses"?
vielleicht hat jemand eine idee. den code kann ich auch posten falls nötig.

gruß

Ralf Kaiser 14. Okt 2011 19:00

AW: Anfängerfrage
 
Zitat:

Zitat von seraph (Beitrag 1130535)
den code kann ich auch posten falls nötig.

Also ohne den Code oder auch nur eine ungefähre Beschreibung, was das für Berechnungen sind wird dir wohl kaum jemand helfen können. :gruebel:

seraph 14. Okt 2011 19:11

AW: Anfängerfrage
 
hier mein code:

Delphi-Quellcode:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Button1: TButton;
    ListView1: TListView;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Label5: TLabel;
    Edit5: TEdit;
    Edit6: TEdit;
    Button2: TButton;
    Label6: TLabel;
    Edit7: TEdit;
    Edit8: TEdit;
    Edit9: TEdit;
    Edit10: TEdit;
    Button3: TButton;
    Label4: TLabel;
    Edit4: TEdit;
    Label7: TLabel;
    Edit11: TEdit;
    Label8: TLabel;
    Button4: TButton;
    Button5: TButton;
    Edit12: TEdit;
    Edit13: TEdit;
    Button6: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Edit1KeyPress(Sender: TObject; var Key: Char);
    procedure Edit1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var item:TListItem;
var br,ti,ho,art,mm:string;
var breite,tiefe,hoehe,qmz:double;
begin

br:=Edit1.Text;
ti:=Edit2.Text;
ho:=Edit3.Text;
breite:= StrToFloat(br);
tiefe:=StrToFloat(ti);
hoehe:=StrToFloat(ho);
qmz:=2*hoehe*(breite+tiefe);
mm:=FloatToStr(qmz);
item := ListView1.Items.Add;
item.Caption:=br;
item.SubItems.Add(ti);
item.SubItems.Add(ho);
item.SubItems.Add(mm);
item.SubItems.Add('Raum');
end;

procedure TForm1.Button2Click(Sender: TObject);
var item:TListItem;
var br,ho,mm:string;
var breite,hoehe,qmz:double;
begin
br:=Edit5.Text;
ho:=Edit6.Text;
breite:= StrToFloat(br);
hoehe:=StrToFloat(ho);
qmz:=-breite*hoehe;
mm:=FloatToStr(qmz);
item := ListView1.Items.Add;
item.Caption:=br;
item.SubItems.Add('-');
item.SubItems.Add(ho);
item.SubItems.Add(mm);
item.SubItems.Add('F/T');

end;

procedure TForm1.Button3Click(Sender: TObject);
var item:TListItem;
var sks,sls,sti,sho,qm:string;
var ks,ls,ho,ti,qmz: double;
begin
sks:=Edit7.Text;
sls:=Edit7.Text;
sti:=Edit7.Text;
sho:=Edit7.Text;
ks:=StrToFloat(sks);
ls:=StrToFloat(sls);
ti:=StrToFloat(sti);
ho:=StrToFloat(sho);
qmz:=ti*((ks+ls)/2);
qm:=FloatToStr(qmz);
item:=ListView1.Items.Add;
item.Caption:=sks+'/'+sls;
item.SubItems.Add(sti);
item.SubItems.Add(sho);
item.SubItems.Add(qm);
item.SubItems.Add('Trapez');

end;

procedure TForm1.Button4Click(Sender: TObject);
var i:integer;
var qmgz,bbz,tolz,rolz,rolbz,roloptz:double;
var qmg,bb,tol,rol,rolopt:string;
begin
  for i := 0 to ListView1.Items.Count - 1 do
    begin
      qmgz := qmgz + StrToFloat(ListView1.Items[i].SubItems[2]);
    end;
Edit12.Text:= 'Gesamt: ' + FloatToStr(qmgz) + 'qm';
rolbz:=StrToFloat(Edit4.Text);
tolz:=StrToFloat(Edit11.Text);
rolz := qmgz/(rolbz*(100-tolz)/100);
rol:= FloatToStr(rolz);
Delete(rol,5,length(rol)-5);
roloptz:=rolz+1;
rolopt:= FloatToStr(roloptz);
Delete(rolopt,2,length(rolopt)-2);
Edit13.Text:=rol + ' Rollen ' + '('+rolopt+'Stck)';
end;

procedure TForm1.Button6Click(Sender: TObject);
var item:TListItem;
var br,ho,mm:string;
var breite,hoehe,qmz:double;
begin
br:=Edit5.Text;
ho:=Edit6.Text;
breite:= StrToFloat(br);
hoehe:=StrToFloat(ho);
qmz:=breite*hoehe;
mm:=FloatToStr(qmz);
item := ListView1.Items.Add;
item.Caption:=br;
item.SubItems.Add('-');
item.SubItems.Add(ho);
item.SubItems.Add(mm);
item.SubItems.Add('F/T');

end;

procedure TForm1.Edit1Click(Sender: TObject);
begin
(Sender as TEdit).Clear;
end;

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in [#48..#57, #8, #44]) then key := #0
end;

end.
also das programm macht eigenlich was ich möchte aber nur so lange ich es aus der delphi ide heraus starte wenn ich es aus dem projekt-ordner öffne sind die rechenergebnisse anders

stahli 14. Okt 2011 19:16

AW: Anfängerfrage
 
Startest Du wirklich die richtige Exe?
Das Verhalten wäre sehr ungewöhnlich.

Ach so: Herzlich willkommen!

seraph 14. Okt 2011 19:28

AW: Anfängerfrage
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Ach so: Herzlich willkommen!
dankeschön :)

also ich hab in meinem projekte ordner ja nur die eine exe ich hab mal ein bild angehängt zur besseren erklärung
links das fehlerhafte ergebnis und rechts das richtige

Bjoerk 14. Okt 2011 19:28

AW: Anfängerfrage
 
in Button4Click fehlt vor der Schleife qmgz:= 0;
in Button2Click steht qmz:= - breite*hoehe; ist das richtig?

seraph 14. Okt 2011 19:37

AW: Anfängerfrage
 
Zitat:

in Button4Click fehlt vor der Schleife qmgz:= 0;
danke! das scheint es gewesen zu sein

Zitat:

in Button2Click steht qmz:= - breite*hoehe; ist das richtig?
ja das war so absicht


danke für die hilfe

und

schönen abend

Luckie 14. Okt 2011 19:43

AW: Anfängerfrage
 
Ein aussagekräftiger Beitragstitel wäre auch nicht schlecht.

stahli 14. Okt 2011 19:46

AW: Anfängerfrage
 
Stimmt. In qmgz steht dann irgend ein Zufallswert, zu dem Du dann Werte hinzurechnest.

Welche Delphi-Version hast Du denn?
Gibt Dir der Compiler einen Hinweis aus, dass qmgz nicht initialisiert wurde?

seraph 14. Okt 2011 20:06

AW: Anfängerfrage
 
ich verwende delphi 2007

ja den compiler hinweis habe ich gesehen aber da es ja im debug modus funktionsfähig war,
bin ich nicht auf die idee gekommen, dass es die ursache des problems sein könnte

stahli 14. Okt 2011 20:10

AW: Anfängerfrage
 
Man sollte ALLE Hinweise abstellen oder wenigstens sicher sein, dass sie unschädlich sind. So kann man sich einige Probleme ersparen.
Als unschädlich und unabänderlich kenne aber nur den Hinweis auf Plattformabhängigkeit für bestimmte Befehle.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:03 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