Autor |
Beitrag |
SkyX
      
Beiträge: 19
Win Xp
Delphi 2007 Prof
|
Verfasst: Mo 17.11.08 20:16
Servuz,
Ich muss momentan ein Programm in der Schule schreiben, habe jetzt auch länger gefehlt und brauche auch unbedingt Tips von euch wie ich mich in Delphi Programmierung und OOP verbessern könnte!
Aber erstmals zu dem Programm selbst, kann sein das es noch nicht ganz fertig ist:
unit Note
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:
| unit Unit_Noten;
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Klasse_Noten;
type TForm1 = class(TForm) Label1: TLabel; Label2: TLabel; Edi_Anzahl: TEdit; Edit_Schnitt: TEdit; Bu_Eingabe: TButton; Bu_Ende: TButton; Bu_Clear: TButton; procedure Bu_EingabeClick(Sender: TObject); procedure FormActivate(Sender: TObject); procedure Bu_EndeClick(Sender: TObject); procedure Bu_ClearClick(Sender: TObject); private
public end;
var Form1: TForm1; Noten :TNoten; Anzahl: Integer;
implementation
{$R *.DFM}
procedure TForm1.Bu_EingabeClick(Sender: TObject); var NotenString: string; i: word; begin Anzahl:= StrToInt(Edi_Anzahl.text); for i:= 1 to Anzahl do begin if InputQuery('Noteneingabe',IntToStr(i)+'. Note:',NotenString) then Noten.SetNoten(StrToInt(NotenString));Nicht genügend Parameter Laut Delphi end; end;
procedure TForm1.FormActivate(Sender: TObject); begin edi_Anzahl.setfocus; end;
procedure TForm1.Bu_EndeClick(Sender: TObject); begin close; end;
procedure TForm1.Bu_ClearClick(Sender: TObject); begin edi_Anzahl.clear; edi_Anzahl.setfocus; Edit_Schnitt.clear; end;
end. |
Unit_Klasse
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:
| unit Klasse_Noten;
interface
type TNoten = class(TObject) private FAnzahl:Integer; FSchnitt:single; FNoten: array of integer; public procedure BerechneSchnitt; function GetSchnitt(Position:integer):integer; procedure SetNoten(Position,Noten:Integer); constructor Create (Anzahl:integer); end;
implementation
constructor TNoten.Create(Anzahl:Integer); begin inherited create; FAnzahl:= Anzahl; SetLength(FNoten,FAnzahl); end;
Procedure TNoten.SetNoten(Position,Noten:Integer); begin FNoten[Position]:= Noten; end;
procedure TNoten.BerechneSchnitt; var summe,i : integer; begin summe:= 0; For i:= 0 to FAnzahl -1 do Summe := Summe + FNoten[i]; FSchnitt := Summe/FAnzahl; end;
function TNoten.GetSchnitt(Position:Integer):Integer; begin Result:=FNoten[Position]; end;
end. |
Schonmal Danke
Moderiert von AXMD: Quote- durch Delphi-Tags ersetzt
Moderiert von AXMD: Color- durch Highlight-Tags ersetzt
|
|
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mo 17.11.08 20:22
Zitat: | Delphi-Quelltext 1:
| If Edi_Anzahl.Text:= '' then | |
Du versuchst, in einem Vergleich eine Zuweisung zu machen. Richtig hieße es
If Edi_Anzahl.Text = '' then.
Und SetNoten erwartet 2 Parameter Zitat: | procedure SetNoten(Position,Noten:Integer); |
, Du willst aber nur einen übergeben.
|
|
SkyX 
      
Beiträge: 19
Win Xp
Delphi 2007 Prof
|
Verfasst: Mo 17.11.08 20:33
Zitat: | If Edi_Anzahl.Text:= '' then |
Wurde abgeändert und kam mir grad im Sinn da war damals doch was im untericht mit dem if, then und else!
Und wie mache ich das mit SetNoten?
Habe gerade ausprobiert wie man es machen könnte, aber keine Ahnung, da ich ja auch mit Array arbeite!
|
|
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mo 17.11.08 20:36
Delphi-Quelltext 1: 2: 3: 4: 5:
| for i:= 1 to Anzahl do begin if InputQuery('Noteneingabe',IntToStr(i)+'. Note:',NotenString) then Noten.SetNoten(i - 1,StrToInt(NotenString)); end; |
|
|
SkyX 
      
Beiträge: 19
Win Xp
Delphi 2007 Prof
|
Verfasst: Mo 17.11.08 20:43
Funktioniert so auch mit dem Starten, jedoch bleibt er dann bei steckern!
Delphi-Quelltext 1:
| FNoten[Position]:= Noten; |
Zeigt mir auch nichts an wo ein Fehler sein könnte! Bin Schritt für Schritt durch gegangen mit F7.
Einloggen, um Attachments anzusehen!
|
|
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mo 17.11.08 20:57
Ist das oben der gesamte Quelltext oder nur ein Auszug? Wenn das der komplette ist, musst Du die Noten-Klasse ja erst noch erzeugen.
[edit] Setz mal ins TForm1.Bu_EingabeClick ein Noten := TNoten.Create(Anzahl);, bevor Du in die Schleife gehst.[/edit]
|
|
SkyX 
      
Beiträge: 19
Win Xp
Delphi 2007 Prof
|
Verfasst: Mo 17.11.08 21:17
Hier nochmals den Aktuellen Delphi Quellcode! Form Create habe ich jetzt gemacht meckert aber wieder nicht genügend wirkliche parameter vorhanden
Unit_Noten
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:
| unit Unit_Noten;
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Klasse_Noten;
type TForm1 = class(TForm) Label1: TLabel; Label2: TLabel; Edi_Anzahl: TEdit; Edit_Schnitt: TEdit; Bu_Eingabe: TButton; Bu_Ende: TButton; Bu_Clear: TButton; procedure FormCreate(Sender: TObject); procedure Bu_EingabeClick(Sender: TObject); procedure FormActivate(Sender: TObject); procedure Bu_EndeClick(Sender: TObject); procedure Bu_ClearClick(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); private
public end;
var Form1: TForm1; Noten :TNoten; Anzahl: Integer;
implementation
{$R *.DFM}
procedure TForm1.Bu_EingabeClick(Sender: TObject); var NotenString: string; i: word; begin begin If Edi_Anzahl.Text = '' then showmessage('Bitte Eingabe tätigen') else Anzahl:= StrToInt(Edi_Anzahl.text); end;
for i:= 1 to Anzahl do begin if InputQuery('Noteneingabe',IntToStr(i)+'. Note:',NotenString) then Noten.SetNoten(i-1,StrToInt(NotenString)); end; end;
procedure TForm1.FormActivate(Sender: TObject); begin edi_Anzahl.setfocus; end;
procedure TForm1.Bu_EndeClick(Sender: TObject); begin close; end;
procedure TForm1.Bu_ClearClick(Sender: TObject); begin edi_Anzahl.clear; edi_Anzahl.setfocus; Edit_Schnitt.clear; end;
procedure TForm1.FormCreate(Sender: TObject); begin Noten:= TNoten.create; end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin Noten.Destroy; end;
end. |
Klasse_Noten
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:
| unit Klasse_Noten;
interface
type TNoten = class(TObject) private FAnzahl:Integer; FSchnitt:single; FNoten: array of integer; public procedure BerechneSchnitt; function GetSchnitt(Position:integer):integer; procedure SetNoten(Position,Noten:Integer); constructor Create (Anzahl:integer); end;
implementation
constructor TNoten.Create(Anzahl:Integer); begin inherited create; FAnzahl:= Anzahl; SetLength(FNoten,FAnzahl); end;
Procedure TNoten.SetNoten(Position,Noten:Integer); begin FNoten[Position]:= Noten; end;
procedure TNoten.BerechneSchnitt; var summe,i : integer; begin summe:= 0; For i:= 0 to FAnzahl -1 do Summe := Summe + FNoten[i]; FSchnitt := Summe/FAnzahl; end;
function TNoten.GetSchnitt(Position:Integer):Integer; begin Result:=FNoten[Position]; end;
end. |
EDIT:
So habe mal deinen Vorschlag ausprobiert, er startet aber bringt wieder den selben Fehler bei FNoten[Position]:= Noten;
Und meine neue Methode mit Form Create habe mal nacht Note.Create(Anzahl); gesetzt und startet auch ohne Probleme, aber selber Fehler wie oben!
|
|
LexXis
      
Beiträge: 170
Erhaltene Danke: 3
|
Verfasst: Mo 17.11.08 21:30
|
|
SkyX 
      
Beiträge: 19
Win Xp
Delphi 2007 Prof
|
Verfasst: Mo 17.11.08 21:51
|
|
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Di 18.11.08 09:28
LexXis hat folgendes geschrieben: | Dynamische Arrays beginnen immer bei 0! |
Deshalb steht da ja auch i - 1.
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| procedure TForm1.Bu_EingabeClick(Sender: TObject); var NotenString: string; i: word; begin If Edi_Anzahl.Text = '' then showmessage('Bitte Eingabe tätigen') else Anzahl:= StrToInt(Edi_Anzahl.text);
Noten := TNoten.Create(Anzahl);
for i:= 1 to Anzahl do begin if InputQuery('Noteneingabe',IntToStr(i)+'. Note:',NotenString) then Noten.SetNoten(i-1,StrToInt(NotenString)); end; end; |
Allerdings vermisse ich den Code zur Freigabe des angeforderten Speichers in der Klasse Noten.
|
|
SkyX 
      
Beiträge: 19
Win Xp
Delphi 2007 Prof
|
Verfasst: Di 18.11.08 15:50
So habe es ergänzt, und bemerkungen stehen drinnen im Quellcode:
Scheint noch nicht sauber zu arbeiten!
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:
| unit Unit_Noten;
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Klasse_Noten;
type TForm1 = class(TForm) Label1: TLabel; Label2: TLabel; Edi_Anzahl: TEdit; Edit_Schnitt: TEdit; Bu_Eingabe: TButton; Bu_Ende: TButton; Bu_Clear: TButton; procedure FormCreate(Sender: TObject); procedure Bu_EingabeClick(Sender: TObject); procedure FormActivate(Sender: TObject); procedure Bu_EndeClick(Sender: TObject); procedure Bu_ClearClick(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); private
public end;
var Form1: TForm1; Noten :TNoten; Anzahl: Integer;
implementation
{$R *.DFM}
procedure TForm1.Bu_EingabeClick(Sender: TObject); var NotenString: string; i: word; begin begin If Edi_Anzahl.Text = '' then showmessage('Bitte Eingabe tätigen') else Anzahl:= StrToInt(Edi_Anzahl.text); Noten := TNoten.Create(Anzahl); end;
for i:= 1 to Anzahl do begin if InputQuery('Noteneingabe',IntToStr(i)+'. Note:',NotenString) then begin Noten.SetNoten(i-1,StrToInt(NotenString)); Noten.BerechneSchnitt; end; end; end;
procedure TForm1.FormActivate(Sender: TObject); begin edi_Anzahl.setfocus; end;
procedure TForm1.Bu_EndeClick(Sender: TObject); begin close; end;
procedure TForm1.Bu_ClearClick(Sender: TObject); begin edi_Anzahl.clear; edi_Anzahl.setfocus; Edit_Schnitt.clear; end;
procedure TForm1.FormCreate(Sender: TObject); begin Noten:= TNoten.create(Anzahl); end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin Noten.Destroy; end;
end. |
|
|
bummi
      
Beiträge: 1248
Erhaltene Danke: 187
XP - Server 2008R2
D2 - Delphi XE
|
Verfasst: Di 18.11.08 16:07
So ganz komme ich nicht mehr mit, was war und was jetzt ist.
Aber:
Du legst die Anzahl initial fest und berechnest nach jedem hinzufügen für das ganze Array auch wenn der Rest noch leer ist??
und das hier scheint mir auch nicht das gewünschte zu sein:
function TNoten.GetSchnitt(Position:Integer):Integer;
begin
Result:=FNoten[Position];
end;
warum nicht ein create ohne Anzahl
ein Function Add(Note):Double die
SetLength(FNoten,High(FNoten) + 2);
FNoten[High(Fnoten)]:=Note;
Result :=0;
For i:= LOW(FNoten) to High(Fnoten) do Result := Result + Fnoten[i];
Result := Result / High(Fnoten) + 1;
FSchnitt := Result;
MfG
Bummi
www.explido-software.de
|
|
SkyX 
      
Beiträge: 19
Win Xp
Delphi 2007 Prof
|
Verfasst: Di 18.11.08 16:35
So nochmas die Grundfunktionen des Programmes, das ich schreiben soll!
Es geht darum das ich die Anzahl der Noten selber eingeben kann und dementsprechend öffnet sich ein Query, wo man die Noten eingibt! Mit dem letzten Ok des Querys soll der Schnitt ermittet werden und in einem Edit Fenster ausgegeben werden.
@bummi
wenn ich Anzahl wegnehme kommt ein Fehler (nicht genügend Parameter vorhanden)
Und zur Rechnung sollte ja eigentich so stimmen, habe nämich ein ähnliches Programm vorher gehabt wo man nur eine bestimmte Anzahl hatte von Noten und habe die Rechnung grad übernommen und ein bisschen abgeändert, sollte eigentich stimmen!
Hier beide Codes nochmals:
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:
| unit Unit_Noten;
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Klasse_Noten;
type TForm1 = class(TForm) Label1: TLabel; Label2: TLabel; Edi_Anzahl: TEdit; Edit_Schnitt: TEdit; Bu_Eingabe: TButton; Bu_Ende: TButton; Bu_Clear: TButton; procedure FormCreate(Sender: TObject); procedure Bu_EingabeClick(Sender: TObject); procedure FormActivate(Sender: TObject); procedure Bu_EndeClick(Sender: TObject); procedure Bu_ClearClick(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); private
public end;
var Form1: TForm1; Noten :TNoten; Anzahl: Integer;
implementation
{$R *.DFM}
procedure TForm1.Bu_EingabeClick(Sender: TObject); var NotenString: string; i: word; begin begin If Edi_Anzahl.Text = '' then showmessage('Bitte Eingabe tätigen') else Anzahl:= StrToInt(Edi_Anzahl.text); Noten := TNoten.Create(Anzahl); end;
for i:= 1 to Anzahl do begin if InputQuery('Noteneingabe',IntToStr(i)+'. Note:',NotenString) then begin Noten.SetNoten(i-1,StrToInt(NotenString)); Noten.BerechneSchnitt; end; end; end;
procedure TForm1.FormActivate(Sender: TObject); begin edi_Anzahl.setfocus; end;
procedure TForm1.Bu_EndeClick(Sender: TObject); begin close; end;
procedure TForm1.Bu_ClearClick(Sender: TObject); begin edi_Anzahl.clear; edi_Anzahl.setfocus; Edit_Schnitt.clear; end;
procedure TForm1.FormCreate(Sender: TObject); begin Noten:= TNoten.create(Anzahl); end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin Noten.Destroy; end;
end. |
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:
| interface
type TNoten = class(TObject) private FAnzahl:Integer; FSchnitt:single; FNoten: array of integer; public procedure BerechneSchnitt; function GetSchnitt(Position:integer):integer; procedure SetNoten(Position,Noten:Integer); constructor Create (Anzahl:integer); end;
implementation
constructor TNoten.Create(Anzahl:Integer); begin inherited create; FAnzahl:= Anzahl; SetLength(FNoten,FAnzahl); end;
Procedure TNoten.SetNoten(Position,Noten:Integer); begin FNoten[Position]:= Noten; end;
procedure TNoten.BerechneSchnitt; var summe,i : integer; begin summe:= 0; For i:= 0 to FAnzahl -1 do Summe := Summe + FNoten[i]; FSchnitt := Summe/FAnzahl; end;
function TNoten.GetSchnitt(Position:Integer):Integer; begin Result:=FNoten[Position]; end;
end. |
|
|
bummi
      
Beiträge: 1248
Erhaltene Danke: 187
XP - Server 2008R2
D2 - Delphi XE
|
Verfasst: Di 18.11.08 16:55
Ich bleibe bei meiner Meinung daß BerechneSchnitt in der gegebenen Implementierung nicht passt.
10 Noten
1. Eingabe (5) >> BerechneSchnitt >> (5 + 9*0) / 10 = 0,5
2. Eingabe (3) >> BerechneSchnitt >> (5 + 3 + 8*0) / 10 = 1,6
...
...
>> zugegebenermaßen passt es nach der kompletten Eingabe aller Noten, aber "sauber" ist die Klasse so nicht
zudem ist mir immer noch nicht klar was Du hier vorhast
Delphi-Quelltext 1: 2: 3: 4:
| function TNoten.GetSchnitt(Position:Integer):Integer; begin Result:=FNoten[Position]; end; |
Du erwartest dem Namen nach den Schnitt ein Float und gibst zurück die Positionte Note.
Die Create Änderung würde so aussehen
Delphi-Quelltext 1: 2: 3: 4:
| constructor TNoten.Create; begin inherited create; end; |
Moderiert von matze: Delphi-Tags hinzugefügt
|
|
SkyX 
      
Beiträge: 19
Win Xp
Delphi 2007 Prof
|
Verfasst: Di 18.11.08 17:00
bummi hat folgendes geschrieben : |
>> zugegebenermaßen passt es nach der kompletten Eingabe aller Noten, aber "sauber" ist die Klasse so nicht
zudem ist mir immer noch nicht klar was Du hier vorhast
Delphi-Quelltext 1: 2: 3: 4:
| function TNoten.GetSchnitt(Position:Integer):Integer; begin Result:=FNoten[Position]; end; |
Du erwartest dem Namen nach den Schnitt ein Float und gibst zurück die Positionte Note.
[/delphi]
Moderiert von matze: Delphi-Tags hinzugefügt |
Ja, da geb ich zu das passt nicht mit der Ausgabe korriegiere ich!
Nur wie kriege ich das jetzt sauber zum laufen? Will ja keine Fest gesetzte Notenanzahl haben... sondern die Anzahl der Noteneingabe selber per Arry festlegen und diese dann so berechnen, dass der Durchschnitt der Noten kommt!
EDIT:
Das mit dem constructor hat unser lehrer vorgeben!
|
|
bummi
      
Beiträge: 1248
Erhaltene Danke: 187
XP - Server 2008R2
D2 - Delphi XE
|
Verfasst: Di 18.11.08 17:11
Wie wäere es mit einem eigenen Eingabefenster mit Edit und 2 Button
Button 1 weiter (mrok)
Button 2 fertig (mrCancel)
weiter nur enabled wenn TryStrToInt(Edit1.Text,i)
Der Aufruf:
DeinButtonKlick;
var
loop:Boolean;
begin
loop := true;
while loop do
begin
MyInputForm:=TmyInputForm.Create(self);
if MyInputForm.ModalResult=mrok then
begin
Noten.SetNoten(i-1,StrToInt(MyInputForm.Edit));
end else loop := false;
MyInputForm.Free;
end;
Edit_Schnitt.Text:=FloatToStr(Noten.GetSchnitt(1));
end;
|
|
SkyX 
      
Beiträge: 19
Win Xp
Delphi 2007 Prof
|
Verfasst: Di 18.11.08 17:14
Die Lösung hört sich jedenfalls besser an, als das mit dem Query!
Aber leider darf ich das Query nicht rausnehmen! Müssen wir so machen mit Query.
Auch wenns nicht die sauberste Lösung sein sollte, sollte es irgendwie mal laufen....
nur ich komm nicht drauf....
|
|
bummi
      
Beiträge: 1248
Erhaltene Danke: 187
XP - Server 2008R2
D2 - Delphi XE
|
Verfasst: Di 18.11.08 17:27
dann bau einfach
function TNoten.GetSchnitt(Position:Integer):Integer;
begin
Result:=FNoten[Position];
end;
um in
function TNoten.GetSchnitt:Double;
begin
Result:=FSchnitt;
end;
und lass den Rest wie er ist
nach Deiner Schleife nocht ein
Edit_Schnitt.Text:=FloatToStr(Noten.GetSchnitt);
und gut ist
|
|
SkyX 
      
Beiträge: 19
Win Xp
Delphi 2007 Prof
|
Verfasst: Di 18.11.08 17:39
Danke klappt super, zwar nicht die sauberste Lösung, da man ständig den Schnitt sieht, aber besser als nix!
|
|
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Di 18.11.08 17:39
Und wieso nicht einfach die Klasse TNoten von TList ableiten? Die Eigenschaften Anzahl und Schnitt lassen sich doch in einer Getter-Methode wunderbar berechnen.
|
|