| Autor |
Beitrag |
Stadtfuchs
      
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
|
Verfasst: 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
wäre echt nett wenn ihr euch das programm mal anseht und mir tipps gebt. bin für jeden hinweiss dankbar
mfg
stadtfuchs
Einloggen, um Attachments anzusehen!
|
|
Lannes
      
Beiträge: 2352
Erhaltene Danke: 4
Win XP, 95, 3.11, IE6
D3 Prof, D4 Standard, D2005 PE, TurboDelphi, Lazarus, D2010
|
Verfasst: Do 25.08.05 11:45
Hallo,
erstmal  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  , 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 
      
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
|
Verfasst: Do 25.08.05 11:56
danke für die tipps
ich setz mich gleich mal dran
wenn das programm soweit aktualisiert ist lade ich das nochmal hoch
weiter tipps erwünscht
stadtfuchs
|
|
Dragon777
      
Beiträge: 41
XP Prof
D3 Prof
|
Verfasst: 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
      
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
|
Verfasst: 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
      
Beiträge: 41
XP Prof
D3 Prof
|
Verfasst: 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
      
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
|
Verfasst: 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
      
Beiträge: 41
XP Prof
D3 Prof
|
Verfasst: 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
      
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
|
Verfasst: 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
      
Beiträge: 41
XP Prof
D3 Prof
|
Verfasst: 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
      
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
|
Verfasst: 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
      
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
|
Verfasst: 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
      
Beiträge: 41
XP Prof
D3 Prof
|
Verfasst: 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
      
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
|
Verfasst: 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
      
Beiträge: 41
XP Prof
D3 Prof
|
Verfasst: 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
      
Beiträge: 2352
Erhaltene Danke: 4
Win XP, 95, 3.11, IE6
D3 Prof, D4 Standard, D2005 PE, TurboDelphi, Lazarus, D2010
|
Verfasst: Do 25.08.05 13:58
Hallo,
'Warum klickst du hier?'
@Dragon777
Solltest dein Programm in Scherzrechner umbenennen,
sag mal, hast Du Dir das Programm von Stadtfuchs 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. 
_________________ MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
|
|
Matthias-K
      
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
|
Verfasst: 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
      
Beiträge: 41
XP Prof
D3 Prof
|
Verfasst: 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
      
Beiträge: 41
XP Prof
D3 Prof
|
Verfasst: Do 25.08.05 14:14
Hier ist der Code
Unit1
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 public 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, 8, 2)
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
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 public end;
var Form2: TForm2;
implementation
{$R *.DFM}
end |
Unit3
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 public end;
var Form3: TForm3;
implementation
{$R *.DFM}
end. |
|
|
Lannes
      
Beiträge: 2352
Erhaltene Danke: 4
Win XP, 95, 3.11, IE6
D3 Prof, D4 Standard, D2005 PE, TurboDelphi, Lazarus, D2010
|
Verfasst: Do 25.08.05 14:49
Hallo,
Dragon777 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?
Dragon777 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?
Dragon777 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?
Dragon777 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 )
|
|
|