Also mein Problem sieht wie folgt aus.
Ich schreibe gerade ein Mathe Programm und habe mir einen Typ angelegt:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| Type TRichtungsvektor=Record xRichtung:Real; yRichtung:Real; zRichtung:Real; End; TStuetzvektor=Record xRichtung:Real; yRichtung:Real; zRichtung:Real; End; TGerade=Record Name:String[255]; Stuetzvektor:TStuetzvektor; Richtungsvektor:TRichtungsvektor; End; |
und die entsprechende Variable, da ich ja mehrere benötige(halt mehrere Geraden)
Delphi-Quelltext
1:
| Gerade:Array[1..25] Of TGerade; |
Nun Versuche ich zu überprüfen, ob eine Gerade(Record) schon voll also besetzt ist. Dazu folgender 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:
| procedure TFrmKomponentenPalette.GeradeErzeugenClick(Sender: TObject); Var x:Integer; begin x:=1; Repeat If Gerade[x].Name='' Then GeradeVerfuegbar:=True Else x:=x+1; Until GeradeVerfuegbar Or (x=25); If GeradeVerfuegbar Then If Modus='2-Punkte-Form' Then Begin Gerade[x].Stuetzvektor.xRichtung:=StrToFloat(xAGerade.Text); Gerade[x].Stuetzvektor.yRichtung:=StrToFloat(yAGerade.Text); Gerade[x].Stuetzvektor.zRichtung:=StrToFloat(zAGerade.Text); Gerade[x].Richtungsvektor.xRichtung:=StrToFloat(xBGerade.Text) - StrToFloat(xAGerade.Text); Gerade[x].Richtungsvektor.yRichtung:=StrToFloat(yBGerade.Text) - StrToFloat(yAGerade.Text); Gerade[x].Richtungsvektor.zRichtung:=StrToFloat(zBGerade.Text) - StrToFloat(zAGerade.Text); Gerade[x].Name:=GeradenName.Text; End Else Begin Gerade[x].Stuetzvektor.xRichtung:=StrToFloat(xAGerade.Text); Gerade[x].Stuetzvektor.yRichtung:=StrToFloat(yAGerade.Text); Gerade[x].Stuetzvektor.zRichtung:=StrToFloat(zAGerade.Text); Gerade[x].Richtungsvektor.xRichtung:=StrToFloat(xUGerade.Text); Gerade[x].Richtungsvektor.yRichtung:=StrToFloat(yUGerade.Text); Gerade[x].Richtungsvektor.zRichtung:=StrToFloat(zUGerade.Text); Gerade[x].Name:=GeradenName.Text; End Else ShowMessage('Die Kapazität der Geraden ist erreicht.'); end; |
Letztere Abfragen dienen dazu dem Record neue Werte zu geben, falls noch nicht vorhanden.
Doch das funktioniert nicht so richtig und der kommt mit dem Typ nicht klar.
ErrorMessage ist immer "Klasse bestitzt keine Standarteigenschaft"
Falls jemand eine Idee hat immer her damit^^.
Schonmal im voraus danke.
Moderiert von
Christian S.: Delphi-Tags hinzugefügt