Hallo Lee,
zu for i:=0 to High(Dreiecke) do //wie ist entsprechende Code für TList???
Ich bin sicher, dass du das auch ohne Hilfe herausbekommst.
Schau doch mal, wie du das in deinem "FormDestroy" machst.
Zu with Dreiecke[i] do begin //record,objetc or class type required
Die Fehlermeldung sagt doch was fehlt.
Erwartet wird ein Rekord-, Objekt- oder Klassentyp, Dreiecke[i] ist keines davon sondern ein Zeiger auf ein TDreieck. Wenn ich das richtig sehe, ist das dem Compiler aber nicht bekannt, für den ist Dreiecke[i] nur ein Zeiger auf einen Speicherbereich.
Wenn du schreibst with hDreieck(Dreiecke[i]) do begin
dann weiß er zumindest, dass es sich um einen Zeiger auf ein TDreieck handelt, was aber das Problem nicht heilt, denn es wird ja ein Rekord-, Objekt- oder Klassentyp erwartet.
Mit with hDreieck(Dreiecke[i])^ do begin
sollte es funktionieren (Beachte das ' ^ ').
Abend Klaus, danke für deine nette und ausführliche Erklärung!
zu 1). Da hast du recht
"
for i:=0 to High(Dreiecke) do" soll durch "
for i:=0 to Dreiecke.Count-1 do" ersetzt werden, ich hab es in "FormDestroy" schon gemacht, bin doch blöd
zu 2). "
with hDreieck(Dreiecke[i])^ do begin" schon in Programm geschrieben, aber leider hab ich wieder Fehlermeldung bekommen:
Missing Operator or semicolon
Meine Frage: es ist ganz klar, dass Dreiecke[i] ein Zeiger auf ein TDreieck ist. Aber was ist denn hDreieck(Dreiecke[i])? Also hDreieck(ein Zeiger auf ein TDreieck ) ist auch ein Zeiger auf ein TDreieck? Ich bin verwirrt.
Gruss
Lee