Einzelnen Beitrag anzeigen

blacky35

Registriert seit: 9. Jan 2005
Ort: Pfaffenweiler
9 Beiträge
 
Delphi 2005 Professional
 
#1

Dynamisches Array und Class

  Alt 8. Mär 2005, 10:20
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;
Friedrich
  Mit Zitat antworten Zitat