Autor Beitrag
Stadtfuchs
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 17

DOS 6.22, Win 95, Win 98(SE), Win ME, Win 2000, Win XP Home, Win XP Professional, diverse SuSE Linux Systeme
D5 Ent, D7 Pro, D2005 Ent, C/C++5
BeitragVerfasst: Do 25.08.05 10:33 
hiho,

ich bin anfänger und habe als einstiegsaufgabe einen brutto-netto rechner geschrieben. getestet ist er aber ich bin mir sicher das da bestimmt noch irgendwelche fehler/verbesserungsmöglichkeiten drin sind :roll:

wäre echt nett wenn ihr euch das programm mal anseht und mir tipps gebt. bin für jeden hinweiss dankbar :wink:

mfg
stadtfuchs
Einloggen, um Attachments anzusehen!
Lannes
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2352
Erhaltene Danke: 4

Win XP, 95, 3.11, IE6
D3 Prof, D4 Standard, D2005 PE, TurboDelphi, Lazarus, D2010
BeitragVerfasst: Do 25.08.05 11:45 
Hallo,

erstmal :welcome: im DF

für einen Anfänger schon mal gut :)

und nun etwas konstruktive Kritik:
Fehleingaben abzufangen ist schon wichtig, aber deshalb dem Anwender die Tastatureingabe zu blockieren :shock:, könntest z.B. bei den Tasten "0 bis 9, Komma und = das OnClick der Buttons auslösen, ist aber nicht die Ideallösung.
Die Beschriftung des Buttons ">" sagt nichts über die Funktion aus, eventuell in "> %" oder so ähnlich ändern.
Der Button "=" ist aktiv, wenn noch kein Prozentsatz eingegeben ist,
betätige ich ihn ohne eine Eingabe kommt die Fehlermeldung "ist kein gültiger Gleitkommawert" und dann werden verschiedene Buttons deaktiviert.
Die Abläufe der Deaktivierung/Aktivierung der Buttons ist so nicht ok.
Im Zusammenhang mit dem vorigen Punkt wäre es besser die Prozentangabe mit einem zusätzlichen Editfeld zu realisieren, dadurch läßt sich die Steuerung der Anwendung besser programmieren und Du hast zusätzlich die Möglichkeit einer Vorbelegung mit einem Standard-Prozentsatz. Bei einigen Buttons ist sicherlich noch ein zusätzlicher Hinweis zur Funktion angebracht. >> Eigenschaft Hint
Menüpunkte(z.B. "Info") die ins Leere laufen sollte man nicht einbauen,
Menüpunkte die man angelegt hat und noch nicht mit einer Funktion ausgestattet sind kann man mit visible = False erstmal verbergen.
Deine eingebaute Steuerung bzgl. Maximieren, Wiederherstellen und Größenveränderung der Anwendung ist doch arg gewöhnungsbedürftig.
Schau Dir mal dazu die Eigenschaften BorderIcons und BorderStyle des Forms an.

_________________
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
Stadtfuchs Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 17

DOS 6.22, Win 95, Win 98(SE), Win ME, Win 2000, Win XP Home, Win XP Professional, diverse SuSE Linux Systeme
D5 Ent, D7 Pro, D2005 Ent, C/C++5
BeitragVerfasst: Do 25.08.05 11:56 
danke für die tipps :D
ich setz mich gleich mal dran
wenn das programm soweit aktualisiert ist lade ich das nochmal hoch

weiter tipps erwünscht :wink:

stadtfuchs
Dragon777
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 41

XP Prof
D3 Prof
BeitragVerfasst: Do 25.08.05 12:01 
Wie wärs mit sowas Stadtfuchs
Hab ich in der ersten woche geschrieben.

Brutto netto rechner was hälst du davon?
Einloggen, um Attachments anzusehen!
Matthias-K
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 271

Win95, Win98, Win2000, WinXP, Linux
D2, D4 Client/Server, D5 Enterprise, D6 Enterprise, D7 Enterprise, Delphi2005, C/C++ 3.0, C/C ++ 5.0, C/C++ 6.0
BeitragVerfasst: Do 25.08.05 12:05 
dragon, 1 tastendruck, und dein programm geht in den jordan!

man sollte einem anfänger nicht wirklich ein programm vorlegen, welches total fehlerhaft ist.

er soll es ja lernen, wie man es richtig macht! und nicht anders rum!

matthias

_________________
Ein Spezialist ist ein Mensch, der immer mehr von immer weniger weis, bis er alles von nichts weis!
Dragon777
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 41

XP Prof
D3 Prof
BeitragVerfasst: Do 25.08.05 12:08 
was meinst du mit damit,was drückst du denn? bei mir läufts

Wie wärs mit dem hat weniger fehler-oder auch keine.
Einloggen, um Attachments anzusehen!


Zuletzt bearbeitet von Dragon777 am Do 25.08.05 12:12, insgesamt 1-mal bearbeitet
Matthias-K
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 271

Win95, Win98, Win2000, WinXP, Linux
D2, D4 Client/Server, D5 Enterprise, D6 Enterprise, D7 Enterprise, Delphi2005, C/C++ 3.0, C/C ++ 5.0, C/C++ 6.0
BeitragVerfasst: Do 25.08.05 12:10 
wenn ich im oberen feld nicht eingebe, und einfach nur die pürozent erhöhe, schmiert er ab! wenn ich "ausversehen" einen buchstaben eingebe, schmiert er ab! was ist mit gebrochenen prozentwerten? und ich hab des ding nur knappe 30 sek getestet!

_________________
Ein Spezialist ist ein Mensch, der immer mehr von immer weniger weis, bis er alles von nichts weis!
Dragon777
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 41

XP Prof
D3 Prof
BeitragVerfasst: Do 25.08.05 12:14 
Achso das ja da fehlen noch en paar sachen ich weiß. Ich meinte ja auch eigentlich nur das er es von der aufmachung als beispiel nehmen könnte. aber das zweite ist besser hab ich vorher gemacht. hat halt weniger funktionen.


Edit: Is des besser?
Matthias-K
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 271

Win95, Win98, Win2000, WinXP, Linux
D2, D4 Client/Server, D5 Enterprise, D6 Enterprise, D7 Enterprise, Delphi2005, C/C++ 3.0, C/C ++ 5.0, C/C++ 6.0
BeitragVerfasst: Do 25.08.05 12:21 
von der aufmachung?

nein! um gottes willen!

er sitzt zusammen mit mir im büro! er ist der lehrling und soll später programme schreiben! und wenn ich ihn auch nur einmal erwische mir so ein programm abzuliefern!

ja, schön bunt ist es aber fehlerfrei nicht! wieder absturz!

wenn du schon versuchst, tipps zu geben, sorge dafür das sie funktionieren und sich auch verwendene lassen!

matthias

_________________
Ein Spezialist ist ein Mensch, der immer mehr von immer weniger weis, bis er alles von nichts weis!
Dragon777
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 41

XP Prof
D3 Prof
BeitragVerfasst: Do 25.08.05 12:26 
Ist der fehler bei dem zweiten programm aufgetreten?

Was für einer?
Edit: hab den fehler entdeckt-ich nehme an es ist abgestürzt als du nen buchstaben reingeschrieben hast net wahr?-wird verbessert

Und übrigens geht des auch etwas netter.schließlich kann man selbst nicht immer jeden fehler finden da man meistens nur die sachen eingibt die funzen.
Allerdings bei dem ersten download haste recht-ich habs nochmal getestet und schäm mich grad des hier reingestzt zu haben-werds gleich mal korrigieren.


Achja nochwas was hälst du von diesem rechenprog. haben schon mehrere leute ausprobiert ohne fehler. vielleicht entdeckst du ja einen(hoffe aber nicht).
Einloggen, um Attachments anzusehen!


Zuletzt bearbeitet von Dragon777 am Do 25.08.05 12:36, insgesamt 1-mal bearbeitet
Matthias-K
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 271

Win95, Win98, Win2000, WinXP, Linux
D2, D4 Client/Server, D5 Enterprise, D6 Enterprise, D7 Enterprise, Delphi2005, C/C++ 3.0, C/C ++ 5.0, C/C++ 6.0
BeitragVerfasst: Do 25.08.05 12:34 
ja in beiden!

bevor ich ein programm veröffentliche, teste ich es auch! zumindest ansatzweise! und das erste, was ich bei nem taschenrechner teste, ist, ob man buchastaben eingeben kann, und wie der darauf reagiert!

also, das programm ist fehlerhaft ohne ende! und ich kann prozente immernoch ne mit komma angeben!

matthias

_________________
Ein Spezialist ist ein Mensch, der immer mehr von immer weniger weis, bis er alles von nichts weis!
Matthias-K
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 271

Win95, Win98, Win2000, WinXP, Linux
D2, D4 Client/Server, D5 Enterprise, D6 Enterprise, D7 Enterprise, Delphi2005, C/C++ 3.0, C/C ++ 5.0, C/C++ 6.0
BeitragVerfasst: Do 25.08.05 12:39 
ich hab grad dein "fehlerfreies" programm getestet! auser, das ich nicht weis, wie man das programm bedienen muss, hab ich knapp 40 sek gebraucht!

und danke, das du zur erheiterung unseres team's beiträgst!

'Warum klickst du hier?'

was solln das? was muss man dort machen? und wieso bekomm ich ständig fließkomme fehler?

übrigens, der lachkrampf hat länger durchgehalten als das testen!

_________________
Ein Spezialist ist ein Mensch, der immer mehr von immer weniger weis, bis er alles von nichts weis!
Dragon777
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 41

XP Prof
D3 Prof
BeitragVerfasst: Do 25.08.05 12:42 
mist hab grad selbst nen kleinen fehler in meinem rechenprog entdeckt bei geteilt zeigt er immer falsch an. Verbesserung wird gemacht.
Sorry bin eben auch noch anfänger lerns erst seit ca 3-4 wochen.(brings mir selbst ohne hilfe bei).


Edit: du mußt erst auf das label - klich dir zwei zahlen- klicken dann auf die rechenart dann kannste des ergebnis eingeben und auf = klicken

klick mal auf lösung dann kannste wieder lachen


Edit2:Ich bekomm nur en flieskomma fehlermeldung wenn ich nix eintip und auf geteilt geh


Zuletzt bearbeitet von Dragon777 am Do 25.08.05 12:47, insgesamt 1-mal bearbeitet
Matthias-K
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 271

Win95, Win98, Win2000, WinXP, Linux
D2, D4 Client/Server, D5 Enterprise, D6 Enterprise, D7 Enterprise, Delphi2005, C/C++ 3.0, C/C ++ 5.0, C/C++ 6.0
BeitragVerfasst: Do 25.08.05 12:45 
kannst du mir ein handbuch zur verwendung von dem letzten programm geben? weil ich weis nicht, was ich eigentlich dort machen muss! und ich möchte es ja mal richtig testen!
und da ich keine struktur erkenne, was man eigentlich machen soll, kann ich es noch nicht testen! zumal ich alles mögliche versucht habe!

also, ich würde gerne weiter testen!

_________________
Ein Spezialist ist ein Mensch, der immer mehr von immer weniger weis, bis er alles von nichts weis!
Dragon777
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 41

XP Prof
D3 Prof
BeitragVerfasst: Do 25.08.05 12:49 
im vorigen beitrag ist die erklärung

Edit: na hats geklappt?

Mach mir bitte dann mal ne fehlerliste wann ein fehler auftritt damit ich es verbessern kann. Danke im voraus.
Lannes
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2352
Erhaltene Danke: 4

Win XP, 95, 3.11, IE6
D3 Prof, D4 Standard, D2005 PE, TurboDelphi, Lazarus, D2010
BeitragVerfasst: Do 25.08.05 13:58 
Hallo,

'Warum klickst du hier?' :rofl:

@Dragon777
Solltest dein Programm in Scherzrechner umbenennen,
sag mal, hast Du Dir das Programm von user profile iconStadtfuchs mal angeschaut. :?:
Glaube eher nicht, sonst wäre Deines hier nicht aufgetaucht.
Fehlerliste:
Anwenderführung fehlt
Programm nur für Brillenträger die ihre Brille vergessen haben geeignet, entweder kleinere Schrift oder Einstellbar programmieren.
Eingabe 0 Button "/" >> "Fehler bei Fließkomma..."
Richtige Lösungsangabe bei Nachkommastellen wird als "Falsch" gewertet.
Fehleingaben werden nicht abgefangen
Steuerung Minimieren, Maximieren usw. nicht bearbeitet
Quatsch >> Meldung "Vertippt??", ok und dann?
"Klick dir zwei zahlen" = Rechtschreibfehler
"Klick dir zwei zahlen" wird danach auf "Wähle die Rechenart" umbenannt. Habe ich jetzt eine Rechenart gewählt, kann dann nur noch eine Rechenart gewählt werden?
Buttons werden als Labels genutzt, Labels als Buttons?
Zusätzliche Hinweisfenster können minimiert werden, danach werden diese aber bei Bedarf nicht automatisch maximiert.
Für jede Meldung ein extra Formular eingebunden >> Programmgröße?

@Stadtfuchs
bleib bei deinem Ansatz, geht in die richtige Richtung. :wink:

_________________
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
Matthias-K
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 271

Win95, Win98, Win2000, WinXP, Linux
D2, D4 Client/Server, D5 Enterprise, D6 Enterprise, D7 Enterprise, Delphi2005, C/C++ 3.0, C/C ++ 5.0, C/C++ 6.0
BeitragVerfasst: Do 25.08.05 14:07 
mahlzeit!

auch, wenn ich es mir nur schwer verkneifen konnte, in meiner wohlverdienten mittagspause dein programm zu testen, habe ich es doch geschafft! ich schau mir dieses nicht wieder an, bis es von dir überarbeitet wurde.

ich würde dich sogar dazu anreizen, alle deine programme mal zu überdenken! stylistisch wie programmiertechnich! mich würde auch mal der quelltext interessieren!

poste ihn mal oder schick ihn mir per link oder in datei form!

matthias

_________________
Ein Spezialist ist ein Mensch, der immer mehr von immer weniger weis, bis er alles von nichts weis!
Dragon777
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 41

XP Prof
D3 Prof
BeitragVerfasst: Do 25.08.05 14:10 
Also erstmal danke lannes für den netten beitrag. :)

Das mit der 0 und / hab ich schon bemerkt
und des mit der nachkommastelle auch

bei quatsch vertippt? einfach wegklicken ist nur so als hinweiß gedacht gewesen damit man nachguckt wo man was falsches eingetippt hat


des mit min und max fand ich net so wichtig - des fenster hat ja schon ne gute größe oder?

klick dir zwei wird umbenannt-danach kannste trotzdem wieder drauf klicken aber hast recht ,muß des noch ändern

des mit den buttons und labels war so beabsichtigt-könnte ich aber auch ohne prob. ändern

was meinst mit extraformular eingebunden>>programmgröße?
Dragon777
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 41

XP Prof
D3 Prof
BeitragVerfasst: Do 25.08.05 14:14 
Hier ist der Code

Unit1
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:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Button5: TButton;
    Button6: TButton;
    Edit1: TEdit;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    procedure Label3Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Label5Click(Sender: TObject);


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

var
  Form1: TForm1;
  Zahl1, Zahl2, x, Ergebnis: Real;

implementation

uses Unit2, Unit3;

{$R *.DFM}

 procedure TForm1.Label3Click(Sender: TObject);
begin
Edit1.SetFocus;
  randomize;
  Zahl1 := random (10000);
  Zahl2 := random (10000);
  Label1.Caption := FloatToStr (Zahl1);
  Label2.Caption := FloatToStr (Zahl2);
  Label3.Caption := 'Wähle die Rechenart!';
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
Edit1.SetFocus;
  Ergebnis := Zahl1 + Zahl2;
  Button5.Caption := '+';
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
Edit1.SetFocus;
  Ergebnis := Zahl1 - Zahl2;
  Button5.Caption := '-';
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
Edit1.SetFocus;
  Ergebnis := Zahl1 * Zahl2;
  Button5.Caption := '*';
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
Edit1.SetFocus;
  Ergebnis := Zahl1 / Zahl2;
  x:= Zahl1 / Zahl2;
  Button5.Caption := '/';
end;

procedure TForm1.Button6Click(Sender: TObject);
begin
Edit1.SetFocus;



if Button5.Caption = '+' then  Button1Click(Form1);
if Button5.Caption = '-' then  Button2Click(Form1);
if Button5.Caption = '*' then  Button3Click(Form1);
if Button5.Caption = '/' then  Button4Click(Form1);


if
ergebnis = x
then
Label4.Caption :='' + FloatToStrF(Ergebnis,ffnumber, 82)

else
Label4.Caption := FloatToStr(Ergebnis);
try
if
  Ergebnis= StrToFloat (Edit1.Text) then
  Label6.Caption :='Richtig'
else
  Label6.Caption :='Falsch';
except
  Label6.Caption :='Quatsch' ;
  showmessage ('Vertippt??');
  end;


end;


procedure TForm1.Button5Click(Sender: TObject);
begin
Form3.visible := true;
end;

procedure TForm1.Label5Click(Sender: TObject);
begin
Form2.visible := true;  
end;

end.



Unit2
ausblenden 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:
unit Unit2;

interface

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

type
  TForm2 = class(TForm)
    Image1: TImage;
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form2: TForm2;

implementation

{$R *.DFM}

end



Unit3
ausblenden 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:
unit Unit3;

interface

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

type
  TForm3 = class(TForm)
    Image1: TImage;
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form3: TForm3;

implementation

{$R *.DFM}

end.
Lannes
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2352
Erhaltene Danke: 4

Win XP, 95, 3.11, IE6
D3 Prof, D4 Standard, D2005 PE, TurboDelphi, Lazarus, D2010
BeitragVerfasst: Do 25.08.05 14:49 
Hallo,
user profile iconDragon777 hat folgendes geschrieben:
...bei quatsch vertippt? einfach wegklicken ist nur so als hinweiß gedacht gewesen damit man nachguckt wo man was falsches eingetippt hat?
...damit man nachguckt wo man was falsches >> das sollte das Programm einem schon sagen.oder?
user profile iconDragon777 hat folgendes geschrieben:

des mit min und max fand ich net so wichtig - des fenster hat ja schon ne gute größe oder?
es ist schon wichtig, das dass Programm nicht kleiner als für die Schalter benötigt gezogen werden kann. Warum soll ich es vergrößern können, wenn es nie erforderlich ist?
user profile iconDragon777 hat folgendes geschrieben:

des mit den buttons und labels war so beabsichtigt-könnte ich aber auch ohne prob. ändern
Ist ja schon mal ein Anfang. Meinst Du mit beabsichtigt, den Anwender zu irritieren?
user profile iconDragon777 hat folgendes geschrieben:

was meinst mit extraformular eingebunden>>programmgröße?
Du hast in Form2 und Form3 nur Meldungstext stehen, das kann in einer Form realisiert werden, also nur den Text bei Bedarf ändern. Sehe gerade in deinem Code das Du in Form2 und Form3 ein Image eingebunden hast. Also Image raus und über Text in einer Form, oder besser noch nur Showmessage verwenden.
das Ergebnis ist dann in der Programmgröße eine Reduzierung um ca. 50%.

_________________
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )