Autor Beitrag
az1d
Hält's aus hier
Beiträge: 11



BeitragVerfasst: Do 17.11.05 19:59 
So da bin ich wieder ;]
ist das gleiche Programm wie letztes mal nur wollt ich es jetzt selbst machen und mit einzelnen Prozeduren für Grundwertberechnung(GB) etc. schreiben.

ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
implementation

{$R *.dfm}

procedure TForm1.Zahleneinlesen (var Grundwert , Prozentwert , Prozentsatz : real)
begin
Grundwert   := strtofloat (EGrundwert.Text)   ;
Prozentwert := strtofloat (EProzentwert.Text) ;
Prozentsatz := strtofloat (EProzentsatz.Text) ;
end;

//  P*100/p=G

procedure TForm1.GB (var Grundwert , Prozentwert , Prozentsatz)
var ErgebnisGB : real    ;
begin
if Prozentsatz > 0 then  ;
ErgebnisGB  := Prozentwert * 100 / Prozentsatz  ;
LabelFehler1.Visible = false     ;
else LabelFehler1.Visible = true
end;

//  P=G*p/100

procedure TForm1.PWB (var Grundwert , Prozentwert , Prozentsatz)
var ErgebnisPWB : real    ;
begin

ErgebnisPWB := Grundwert * Prozentsatz / 100  ;


end;


//  p=P*100/G

procedure TForm1.PSB (var Grundwert , Prozentwert , Prozentsatz)
var ErgebnisPSB : real    ;
begin
if Grundwert > 0 then
ErgebnisPSB := Grundwert * Prozentsatz / 100  ;
LabelFehler1.Visible = false     ;
else LabelFehler1.Visible = true


end;


procedure TForm1.BBerechnenClick(Sender: TObject);
var Grundwert , Prozentwert , Prozentsatz , ErgebnisGB , ErgebnisPWB , ErgebnisPSB ;
begin
if RGrundwert.Checked = true then             ;
   EGrundwert := FloatToStr(ErgebnisGB)       ;
if RProzentwert.Checked = true then           ;
   EProzentwert := FloatToStr(ErgebnisPSB)    ;
if RProzentsatz.Checked = true then           ;
   EProzentsatz := FloatToStr(ErgebnisPSS)    ;
end;

end.





procedure TForm1.BEndeClick(Sender: TObject);
begin
close
end;


So sieht mein Programm bis jetzt aus .. bin absoluter Anfänger braucht nicht lachen ;].
Ich brauche ein bisschen Hilfe bei der Fehlersuche ..
Danke im vorraus

(Fehlermeldungen
[Fehler] Unit1.pas(40): Undefinierter Bezeichner: 'Zahleneinlesen'
[Fehler] Unit1.pas(40): ';' erwartet, aber '(' gefunden
[Fehler] Unit1.pas(40): ';' erwartet, aber ')' gefunden
[Fehler] Unit1.pas(42): Undefinierter Bezeichner: 'EGrundwert'
[Fehler] Unit1.pas(42): Es gibt keine überladene Version von 'StrToFloat', die man mit diesen Argumenten aufrufen kann
[Fehler] Unit1.pas(43): Operator oder Semikolon fehlt
[Fehler] Unit1.pas(43): Undefinierter Bezeichner: 'EProzentwert'
[Fehler] Unit1.pas(43): Es gibt keine überladene Version von 'StrToFloat', die man mit diesen Argumenten aufrufen kann
[Fehler] Unit1.pas(44): Operator oder Semikolon fehlt
[Fehler] Unit1.pas(44): Undefinierter Bezeichner: 'EProzentsatz'
[Fehler] Unit1.pas(44): Es gibt keine überladene Version von 'StrToFloat', die man mit diesen Argumenten aufrufen kann
[Fehler] Unit1.pas(45): Anweisung erforderlich, aber Ausdruck vom Typ 'Text' gefunden
[Fehler] Unit1.pas(49): Undefinierter Bezeichner: 'GB'
[Fehler] Unit1.pas(49): ',' oder ':' erwartet, aber ')' gefunden
[Fehler] Unit1.pas(50): Typ erwartet, aber 'VAR' gefunden
[Warnung] Unit1.pas(52): Vorzeichenbehaftete und -lose Typen werden verglichen - beide Operanden werden erweitert
[Fehler] Unit1.pas(54): Undefinierter Bezeichner: 'LabelFehler1'
[Fehler] Unit1.pas(54): Operator oder Semikolon fehlt
[Fehler] Unit1.pas(55): 'END' erwartet, aber 'ELSE' gefunden
[Fehler] Unit1.pas(60): Undefinierter Bezeichner: 'PWB'
[Fehler] Unit1.pas(60): ',' oder ':' erwartet, aber ')' gefunden
[Fehler] Unit1.pas(61): Typ erwartet, aber 'VAR' gefunden
[Fehler] Unit1.pas(72): Undefinierter Bezeichner: 'PSB'
[Fehler] Unit1.pas(72): ',' oder ':' erwartet, aber ')' gefunden
[Fehler] Unit1.pas(73): Typ erwartet, aber 'VAR' gefunden
[Warnung] Unit1.pas(75): Vorzeichenbehaftete und -lose Typen werden verglichen - beide Operanden werden erweitert
[Fehler] Unit1.pas(77): Undefinierter Bezeichner: 'LabelFehler1'
[Fehler] Unit1.pas(77): Operator oder Semikolon fehlt
[Fehler] Unit1.pas(78): 'END' erwartet, aber 'ELSE' gefunden
[Fehler] Unit1.pas(85): ',' oder ':' erwartet, aber ';' gefunden
[Fehler] Unit1.pas(86): Typ erwartet, aber 'BEGIN' gefunden
[Fehler] Unit1.pas(88): Inkompatible Typen: 'TEdit' und 'String'
[Fehler] Unit1.pas(90): Inkompatible Typen: 'TEdit' und 'String'
[Fehler] Unit1.pas(92): Undefinierter Bezeichner: 'ErgebnisPSS'
[Fehler] Unit1.pas(92): Inkompatible Typen: 'TEdit' und 'String'
[Warnung] Unit1.pas(101): Text hinter dem abschließenden 'END.' wird vom Compiler ignoriert
[Fehler] Unit1.pas(24): Ungenügende Forward- oder External-Deklaration: 'TForm1.BendeClick'
[Fataler Fehler] Project1.dpr(5): Verwendete Unit 'Unit1.pas' kann nicht compiliert werden)

Die ; vor else hab ich schon weg gemacht
Einloggen, um Attachments anzusehen!


Zuletzt bearbeitet von az1d am Do 17.11.05 20:13, insgesamt 3-mal bearbeitet
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Do 17.11.05 20:01 
Hallo,

bitte ändere den Titel des Topics, da er wenig über das eigentlich Thema verrät. Hier der entsprechende Absatz aus den Richtlinien:

1.2 Beiträge:
Bitte formuliere den Betreff Deiner Beiträge so, dass andere Mitglieder anhand dieser bereits das eigentliche Thema festmachen können. Beiträge wie etwa "Eine Anfängerfrage" oder "Weiß jemand, wie das geht?" lassen den Leser im Unklaren darüber, was das Thema der Diskussion ist.[...]


Einfach oben bei Deinem ersten Beitrag auf user defined image klicken und den Titel ändern. Dank Dir!

Viele Grüße,
Christian S.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
GTA-Place
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
EE-Regisseur
Beiträge: 5248
Erhaltene Danke: 2

WIN XP, IE 7, FF 2.0
Delphi 7, Lazarus
BeitragVerfasst: Do 17.11.05 20:02 
1. Bitte gewöhne dir einen anderen Programmier-Stil an.
2. Ich habe das Bild durchsucht und kein Label mit Fehlermeldung gefunden.

_________________
"Wer Ego-Shooter Killerspiele nennt, muss konsequenterweise jeden Horrorstreifen als Killerfilm bezeichnen." (Zeit.de)
Born-to-Frag
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1094

Win XP SP2, Win 2000 SP4
Delphi 7, 2k5
BeitragVerfasst: Do 17.11.05 20:05 
Sag uns doch die entsprechenden Fehler bitte, dann können wir dir weiterhhelfen

_________________
Theorie ist wenn man alles weiß, aber nichts funktioniert. Praxis ist wenn alles funktioniert, aber niemand weiß warum.
Microsoft vereint Theorie und Praxis: Nichts funktioniert und niemand weiß warum.
az1d Threadstarter
Hält's aus hier
Beiträge: 11



BeitragVerfasst: Do 17.11.05 20:06 
Hi,
k wusste nicht wie ich es nennen soll

2. "gewöhne dir einen anderen programmier stil an"
tja wir sollen das leider so für die schule schreiben außerdem weiß ich nicht wie du das meinst.
vielleicht wäre hilfe eher angebracht.
und die fehlermeldung hab ich extra beim kommentar dazu geschrieben
Born-to-Frag
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1094

Win XP SP2, Win 2000 SP4
Delphi 7, 2k5
BeitragVerfasst: Do 17.11.05 20:10 
Mit Programmierstil meint er wohl das einrücken ;)
ausblenden Delphi-Quelltext
1:
2:
3:
4:
begin
  if bla = true then
     label1.caption := 'Toll eingerückt!';
end;

_________________
Theorie ist wenn man alles weiß, aber nichts funktioniert. Praxis ist wenn alles funktioniert, aber niemand weiß warum.
Microsoft vereint Theorie und Praxis: Nichts funktioniert und niemand weiß warum.
Born-to-Frag
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1094

Win XP SP2, Win 2000 SP4
Delphi 7, 2k5
BeitragVerfasst: Do 17.11.05 20:15 
user profile iconaz1d hat folgendes geschrieben:
(Fehlermeldungen
[Fehler] Unit1.pas(40): Undefinierter Bezeichner: 'Zahleneinlesen'
[Fehler] Unit1.pas(40): ';' erwartet, aber '(' gefunden
[Fehler] Unit1.pas(40): ';' erwartet, aber ')' gefunden
[Fehler] Unit1.pas(42): Undefinierter Bezeichner: 'EGrundwert'
[Fehler] Unit1.pas(42): Es gibt keine überladene Version von 'StrToFloat', die man mit diesen Argumenten aufrufen kann
[Fehler] Unit1.pas(43): Operator oder Semikolon fehlt
[Fehler] Unit1.pas(43): Undefinierter Bezeichner: 'EProzentwert'
[Fehler] Unit1.pas(43): Es gibt keine überladene Version von 'StrToFloat', die man mit diesen Argumenten aufrufen kann
[Fehler] Unit1.pas(44): Operator oder Semikolon fehlt
[Fehler] Unit1.pas(44): Undefinierter Bezeichner: 'EProzentsatz'
[Fehler] Unit1.pas(44): Es gibt keine überladene Version von 'StrToFloat', die man mit diesen Argumenten aufrufen kann
[Fehler] Unit1.pas(45): Anweisung erforderlich, aber Ausdruck vom Typ 'Text' gefunden
[Fehler] Unit1.pas(49): Undefinierter Bezeichner: 'GB'
[Fehler] Unit1.pas(49): ',' oder ':' erwartet, aber ')' gefunden
[Fehler] Unit1.pas(50): Typ erwartet, aber 'VAR' gefunden
[Warnung] Unit1.pas(52): Vorzeichenbehaftete und -lose Typen werden verglichen - beide Operanden werden erweitert
[Fehler] Unit1.pas(54): Undefinierter Bezeichner: 'LabelFehler1'
[Fehler] Unit1.pas(54): Operator oder Semikolon fehlt
[Fehler] Unit1.pas(55): 'END' erwartet, aber 'ELSE' gefunden
[Fehler] Unit1.pas(60): Undefinierter Bezeichner: 'PWB'
[Fehler] Unit1.pas(60): ',' oder ':' erwartet, aber ')' gefunden
[Fehler] Unit1.pas(61): Typ erwartet, aber 'VAR' gefunden
[Fehler] Unit1.pas(72): Undefinierter Bezeichner: 'PSB'
[Fehler] Unit1.pas(72): ',' oder ':' erwartet, aber ')' gefunden
[Fehler] Unit1.pas(73): Typ erwartet, aber 'VAR' gefunden
[Warnung] Unit1.pas(75): Vorzeichenbehaftete und -lose Typen werden verglichen - beide Operanden werden erweitert
[Fehler] Unit1.pas(77): Undefinierter Bezeichner: 'LabelFehler1'
[Fehler] Unit1.pas(77): Operator oder Semikolon fehlt
[Fehler] Unit1.pas(78): 'END' erwartet, aber 'ELSE' gefunden
[Fehler] Unit1.pas(85): ',' oder ':' erwartet, aber ';' gefunden
[Fehler] Unit1.pas(86): Typ erwartet, aber 'BEGIN' gefunden
[Fehler] Unit1.pas(88): Inkompatible Typen: 'TEdit' und 'String'
[Fehler] Unit1.pas(90): Inkompatible Typen: 'TEdit' und 'String'
[Fehler] Unit1.pas(92): Undefinierter Bezeichner: 'ErgebnisPSS'
[Fehler] Unit1.pas(92): Inkompatible Typen: 'TEdit' und 'String'
[Warnung] Unit1.pas(101): Text hinter dem abschließenden 'END.' wird vom Compiler ignoriert
[Fehler] Unit1.pas(24): Ungenügende Forward- oder External-Deklaration: 'TForm1.BendeClick'
[Fataler Fehler] Project1.dpr(5): Verwendete Unit 'Unit1.pas' kann nicht compiliert werden)


Also das sind schon hamme viel Fehlermeldungen :O .. vielleicht solltest du dir mal angewöhnen nicht das ganze Programm auf einmal zu schreiben und dann zu testen obs geht.. Weil das hast du mit sicherheut so gemacht.
Also paar fehler kannst du da mit sicherheit noch selbst erkennen. Zur procedure: deklariert? warscheinlich nicht!
Dann wenn du es in einer eigenen procedure schreibst mach Form1.EGrundwert.text

_________________
Theorie ist wenn man alles weiß, aber nichts funktioniert. Praxis ist wenn alles funktioniert, aber niemand weiß warum.
Microsoft vereint Theorie und Praxis: Nichts funktioniert und niemand weiß warum.
az1d Threadstarter
Hält's aus hier
Beiträge: 11



BeitragVerfasst: Do 17.11.05 20:22 
Form1.EGrundwert.Text
meinst du jetzt das statt Form1.GB?
Born-to-Frag
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1094

Win XP SP2, Win 2000 SP4
Delphi 7, 2k5
BeitragVerfasst: Do 17.11.05 20:27 
Nein, in den Prozeduren die Edit-Felder.
Vllt. kannst du mal dein ganzes Projekt posten dann seh ichs mir mal an (ausnahme).

greetz

_________________
Theorie ist wenn man alles weiß, aber nichts funktioniert. Praxis ist wenn alles funktioniert, aber niemand weiß warum.
Microsoft vereint Theorie und Praxis: Nichts funktioniert und niemand weiß warum.
az1d Threadstarter
Hält's aus hier
Beiträge: 11



BeitragVerfasst: Do 17.11.05 20:31 
ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    EGrundwert: TEdit;
    EProzentsatz: TEdit;
    EProzentwert: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    RadioGroup1: TRadioGroup;
    RGrundwert: TRadioButton;
    RProzentwert: TRadioButton;
    RProzentsatz: TRadioButton;
    BBerechnen: TButton;
    Bende: TButton;
    LabelFehler1: TLabel;
    procedure BendeClick(Sender: TObject);
    procedure BBerechnenClick(Sender: TObject);

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

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Zahleneinlesen (var Grundwert , Prozentwert , Prozentsatz : real )
begin
Grundwert   := strtofloat (EGrundwert.Text)   ;
Prozentwert := strtofloat (EProzentwert.Text) ;
Prozentsatz := strtofloat (EProzentsatz.Text) ;
end;

//  P*100/p=G

procedure TForm1.GB (var Grundwert , Prozentwert , Prozentsatz)
var ErgebnisGB : real    ;
begin
if Prozentsatz > 0 then  ;
ErgebnisGB  := Prozentwert * 100 / Prozentsatz  ;
LabelFehler1.Visible = false     
else LabelFehler1.Visible = true
end;

//  P=G*p/100

procedure TForm1.PWB (var Grundwert , Prozentwert , Prozentsatz)
var ErgebnisPWB : real    ;
begin

ErgebnisPWB := Grundwert * Prozentsatz / 100  ;


end;


//  p=P*100/G

procedure TForm1.PSB (var Grundwert , Prozentwert , Prozentsatz)
var ErgebnisPSB : real    ;
begin
if Grundwert > 0 then
ErgebnisPSB := Grundwert * Prozentsatz / 100  ;
LabelFehler1.Visible = false     
else LabelFehler1.Visible = true


end;


procedure TForm1.BBerechnenClick(Sender: TObject);
var Grundwert , Prozentwert , Prozentsatz , ErgebnisGB , ErgebnisPWB , ErgebnisPSB ;
begin
if RGrundwert.Checked = true then             ;
   EGrundwert := FloatToStr(ErgebnisGB)       ;
if RProzentwert.Checked = true then           ;
   EProzentwert := FloatToStr(ErgebnisPSB)    ;
if RProzentsatz.Checked = true then           ;
   EProzentsatz := FloatToStr(ErgebnisPSS)    ;
end;

end.





procedure TForm1.BEndeClick(Sender: TObject);
begin
close
end;


Vielen dank im vorraus born-to du bist der einzige der hier nett ist ;]
GTA-Place
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
EE-Regisseur
Beiträge: 5248
Erhaltene Danke: 2

WIN XP, IE 7, FF 2.0
Delphi 7, Lazarus
BeitragVerfasst: Do 17.11.05 20:42 
ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
var
  Grundwert:   Extended;  // Extended besser als Real;
  Prozentwert: Extended;
  Prozentsatz: Extended;  


implementation

{$R *.dfm}

procedure Zahleneinlesen;
begin
  Grundwert   := StrToFloat(Form1.EGrundwert.Text);
  Prozentwert := StrToFloat(Form1.EProzentwert.Text);
  Prozentsatz := StrToFloat(Form1.EProzentsatz.Text);
end;

//  P * 100 / p = G

function GB; 
begin
  if Prozentsatz > 0 then
  begin
    Result := Prozentwert * 100 / Prozentsatz;
    Form1.LabelFehler1.Visible := False;
  end
  else 
    Form1.LabelFehler1.Visible := True:
end;

//  P = G * p / 100

function PWB; 
begin
  Result := Grundwert * Prozentsatz / 100;
end;

//  p = P * 100 / G

procedure PSB;
begin
  if Grundwert > 0 then
  begin
    Result := Grundwert * Prozentsatz / 100  ;
    Form1.LabelFehler1.Visible := False;
  end
  else
    Form1.LabelFehler1.Visible := True;
end;


procedure TForm1.BBerechnenClick(Sender: TObject);
begin
  Zahleneinlesen;

  if RGrundwert.Checked then             
    EGrundwert := FloatToStr(GB);
       
  if RProzentwert.Checked then           
    EProzentwert := FloatToStr(PWB);
    
  if RProzentsatz.Checked then           
    EProzentsatz := FloatToStr(PSB);    
end;

procedure TForm1.BEndeClick(Sender: TObject);
begin
  Close;
end;

end.


Der Source sollte jetzt funktionieren. Es gab einige Fehler, z.B.:

- Oft = statt :=
- Die Variablen müssen global deklariert werden oder Funktionen verwenden
- Wenn 'procedure TForm1.XXX', dann muss das ganz oben deklariert sein
- ...

Bitte vergleiche meinen Source und deinen alten.
Schließlich sollst du aus den Fehlern lernen.

_________________
"Wer Ego-Shooter Killerspiele nennt, muss konsequenterweise jeden Horrorstreifen als Killerfilm bezeichnen." (Zeit.de)
Born-to-Frag
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1094

Win XP SP2, Win 2000 SP4
Delphi 7, 2k5
BeitragVerfasst: Do 17.11.05 20:48 
Mhh.. GTA war schneller.. aber es stimmt immer noch einiges nicht. Du lässt beiOnClick nur das Ergebnis anzeigen ohne das die pricedure durchläuft. So wies GTA gemacht hat mit function dürfte es gehen..

EDIT: Siehste, GTA is auchn netter ;)

_________________
Theorie ist wenn man alles weiß, aber nichts funktioniert. Praxis ist wenn alles funktioniert, aber niemand weiß warum.
Microsoft vereint Theorie und Praxis: Nichts funktioniert und niemand weiß warum.
GTA-Place
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
EE-Regisseur
Beiträge: 5248
Erhaltene Danke: 2

WIN XP, IE 7, FF 2.0
Delphi 7, Lazarus
BeitragVerfasst: Do 17.11.05 20:50 
Habs oben nochmal bissl abgeändert. Es wird jetzt die Procedure vorher aufgerufen.

_________________
"Wer Ego-Shooter Killerspiele nennt, muss konsequenterweise jeden Horrorstreifen als Killerfilm bezeichnen." (Zeit.de)
az1d Threadstarter
Hält's aus hier
Beiträge: 11



BeitragVerfasst: Do 17.11.05 20:56 
Vielen dank GTA .. natürlich vergleiche ich das .. wills schließlich lernen
danke danke

achso kann man es auch anders ohne function machen? weil das hatten wir noch nicht..


Zuletzt bearbeitet von az1d am Do 17.11.05 21:01, insgesamt 1-mal bearbeitet
GTA-Place
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
EE-Regisseur
Beiträge: 5248
Erhaltene Danke: 2

WIN XP, IE 7, FF 2.0
Delphi 7, Lazarus
BeitragVerfasst: Do 17.11.05 20:59 
Paar kleine Sachen ließen sich noch optimieren.

Man könnte z.B. statt:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
  if Grundwert > 0 then  
  begin  
    Result := Grundwert * Prozentsatz / 100;  
    Form1.LabelFehler1.Visible := False;  
  end  
  else  
    Form1.LabelFehler1.Visible := True;

-->
ausblenden Delphi-Quelltext
1:
2:
3:
4:
  if Grundwert > 0 then   
    Result := Grundwert * Prozentsatz / 100  ;  
    
  Form1.LabelFehler1.Visible := not (Grundwert > 0);

Aber das ist nicht so wichtig.


@Born: Thx ;-)


EDIT: Ja geht auch ohne Funktionen.

Dafür ganz oben bei var die 3 Variablen (ErgebnisXXX) deklarieren.
Dann aus function wieder procedure und aus Result ErgebnisXXX machen.
Und schließlich in der OnClick-Procedure:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
  if RGrundwert.Checked then 
  begin      
    GB;        
    EGrundwert := FloatToStr(ErgebnisGB);
  end;

_________________
"Wer Ego-Shooter Killerspiele nennt, muss konsequenterweise jeden Horrorstreifen als Killerfilm bezeichnen." (Zeit.de)
az1d Threadstarter
Hält's aus hier
Beiträge: 11



BeitragVerfasst: Do 17.11.05 21:34 
ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
var
  Form1: TForm1;

  Grundwert  : Real;
  Prozentwert: Real;
  Prozentsatz: Real;
  ErgebnisGB : Real;
  ErgebnisPWB: Real;
  ErgebnisPSB: Real;

implementation

{$R *.dfm}

procedure Zahleneinlesen;
begin
  Grundwert   := StrToFloat(Form1.EGrundwert.Text);
  Prozentwert := StrToFloat(Form1.EProzentwert.Text);
  Prozentsatz := StrToFloat(Form1.EProzentsatz.Text);
end;

//  P * 100 / p = G
procedure GB;
begin
  if Prozentsatz > 0 then
  begin
    ErgebnisGB := Prozentwert * 100 / Prozentsatz;
    Form1.LabelFehler1.Visible := False;
  end
  else 
    Form1.LabelFehler1.Visible := True ;
end;

//  P = G * p / 100
procedure PWB;
begin
  ErgebnisPWB := Grundwert * Prozentsatz / 100;
end;

//  p = P * 100 / G
procedure PSB;
begin
  if Grundwert > 0 then
  begin
    ErgebnisPSB := Grundwert * Prozentsatz / 100  ;
    Form1.LabelFehler1.Visible := False;
  end
  else
    Form1.LabelFehler1.Visible := True;
end;


procedure TForm1.BBerechnenClick(Sender: TObject);
begin
  Zahleneinlesen;

  if RGrundwert.Checked then
    GB;
    EGrundwert := FloatToStr(ErgebnisGB);
       
  if RProzentwert.Checked then
    PWB;
    EProzentwert := FloatToStr(ErgebnisPWB);
    
  if RProzentsatz.Checked then
    PSB;           
    EProzentsatz := FloatToStr(ErgebnisPSB);
end;

procedure TForm1.BEndeClick(Sender: TObject);
begin
  Close;
end;

end


vielen dank erstmal hab alles soweit geändert bekomme aber nun folgende fehlermeldungen
[Fehler] Unit1.pas(91): Inkompatible Typen: 'TEdit' und 'String'
[Fehler] Unit1.pas(95): Inkompatible Typen: 'TEdit' und 'String'
[Fehler] Unit1.pas(99): Inkompatible Typen: 'TEdit' und 'String'
[Fehler] Unit1.pas(115): '.' erwartet, aber Dateiende gefunden
[Fataler Fehler] Project1.dpr(5): Verwendete Unit 'Unit1.pas' kann nicht compiliert werden
Born-to-Frag
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1094

Win XP SP2, Win 2000 SP4
Delphi 7, 2k5
BeitragVerfasst: Do 17.11.05 21:36 
Du vergisst so oft das .text

PS: du hast post

EDIT: Im letzten end muss noch ein punkt hin ( aber das steht doch alles in den fehlermeldungen ;) )

_________________
Theorie ist wenn man alles weiß, aber nichts funktioniert. Praxis ist wenn alles funktioniert, aber niemand weiß warum.
Microsoft vereint Theorie und Praxis: Nichts funktioniert und niemand weiß warum.
GTA-Place
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
EE-Regisseur
Beiträge: 5248
Erhaltene Danke: 2

WIN XP, IE 7, FF 2.0
Delphi 7, Lazarus
BeitragVerfasst: Do 17.11.05 21:42 
Außerdem hast du kein begin und end:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
  if RGrundwert.Checked then 
  begin 
    GB;  
    EGrundwert.Text := FloatToStr(ErgebnisGB);
  end;

_________________
"Wer Ego-Shooter Killerspiele nennt, muss konsequenterweise jeden Horrorstreifen als Killerfilm bezeichnen." (Zeit.de)