![]() |
Dynamisches Array und Class
Hallo zusammen,
habe zur Übung folgendes ausprobiert. Habe eine Klasse TSave in der 3 Werte gerechnet werden. Da die Klasse u.u. mehrfach durchlaufen werden soll, habe ich für meine Sicherungen einen eigenen Typ erstellt. Die einzelnen Sicherungen sollen in einem Array gespeichert werden. Jetzt soll jede Sicherung die sich im Array befindet, die Klasse TSave benutzen um die 3 Werte für jede Sicherung zu berechnen. Weiß jetzt jedoch nicht genau wo ich was deklarieren soll. Mit Sicherung1 und ohne Array hatte alles funktioniert. Mein Code ist beigefügt:
Delphi-Quellcode:
Unit Sicherung;
interface type TSave = class(TObject) private F_Kraft: Double; F_Reibwert: Double; F_Lang: Double; F_Quer: Double; F_Hoch: Double; function getNieder: Double; function getDirektL: Double; function getDirektQ: Double; public property Kraft: Double write F_Kraft; property Reibwert: Double write F_Reibwert; property Lang: Double write F_Lang; property Quer: Double write F_Quer; property Hoch: Double write F_Hoch; property Niederzurrung: Double read getNieder; property DirektsicherungL: Double read getDirektL; property DirektsicherungQ: Double read getDirektQ; end; implementation function TSave.getNieder; begin result:= F_Hoch/Sqrt(Sqr(F_Lang) + Sqr(F_Hoch) + Sqr(F_Quer)) /2 * F_Kraft * F_Reibwert; end; function TSave.getDirektL; begin result:= F_Lang/Sqrt(Sqr(F_Lang) + Sqr(F_Hoch) + Sqr(F_Quer)) * F_Kraft; end; function TSave.getDirektQ; begin result:= F_Quer/Sqrt(Sqr(F_Lang) + Sqr(F_Hoch) + Sqr(F_Quer)) * F_Kraft; end; end. var HauptF: THauptF; implementation uses Sicherung; type TSicherung = record sichmittel: string[30]; kraftmax: string[6]; kraftist: string[6]; reibwert: string[4]; lang: string[4]; quer: string[4]; hoch: string[4]; direktv: boolean; direktl: boolean; direktr: boolean; direkth: boolean; end; var //Sicherung: TSicherung; Sicherung: array of TSicherung; pm, index: Word; //var Sicherung1: TSave; {$R *.dfm} procedure THauptF.FormCreate(Sender: TObject); begin HauptF.Height:= 600; HauptF.Width:= 800; VorneCk.Enabled:= false; HintenCk.Enabled:= false; LinksCk.Enabled:= false; RechtsCk.Enabled:= false; FormschlussL.Enabled:= false; DecimalSeparator:= ','; end; procedure THauptF.BerSicherungBClick(Sender: TObject); var code: Integer; IstKraft, MaxKraft, ReibWert, Lang, Quer, Hoch: Single; var Sicherung(1): TSave; begin Inc(pm); //SetLength(Sicherung, pm); Sicherung(1):= TSave.Create; Val(MaxKraftE.Text, MaxKraft, code); //Val(IstKraftE.Text, IstKraft, code); Val(ReibwertC.Text, Reibwert, code); Val(LangE.Text, Lang, code); Val(QuerE.Text, Quer, code); Val(HochE.Text, Hoch, code); if (IstKraftE.Text <> '') and (IstKraftE.Text <> '0') then begin Val(IstKraftE.Text, IstKraft, code); Sicherung(1).Kraft:= IstKraft; end else begin // Sicherung1.Kraft:= MaxKraft; end; //Sicherung1.Reibwert:= Reibwert; //Sicherung1.Lang:= Lang; //Sicherung1.Quer:= Quer; //Sicherung1.Hoch:= Hoch; //NiederL.Caption:= 'Niederzurrung = ' + FloatToStr(Round(Sicherung1.Niederzurrung)) // + ' daN'; //DirektLL.Caption:= 'Direktzurrung längs = ' + FloatToStr(Round(Sicherung1.DirektsicherungL)) // + ' daN'; //DirektQL.Caption:= 'Direktzurrung quer = ' + FloatToStr(Round(Sicherung1.DirektsicherungQ)) // + ' daN'; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:00 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz