ich arbeite ja gerade an der Portierung unseres DachCAD Programms.
Um nun nicht das Eingabeformular für jeden Dachtyp hart codiert erstellen zu müssen, wollte ich mir ein Array mit den Dachtypen, deren Namen und Klasse des Eingabeformulares erstellen.
Das habe ich bis jetzt so gemacht:
Code: Alles auswählen
type
dacheingabeformrecty = packed record
Name : msestring;
formclass : custommseformclassty;
end;
dachtypenty = (dtpultdach, dtsatteldach, dtwalmdach, dtkrueppelwalmdach, dtzeltdach,
dtturm, dtmansarddach1, dtmansarddach2, dtwinkelbau, dt3giebelbau,
dttbau, dttonnendach, dtrechteckbau, dtlbau, dthbau, dtschleppgaube, dtsattelgaube, dtwalmgaube,
dtkrueppelwalmgaube, dtspitzgaube, dttrapezgaube, dttonnengaube,
dtschweifgaube, dtfledermausgaube, dtkamin, dtdachfenster);
steildachtypen = dtpultdach..dttonnendach;
flachdachtypen = dtrechteckbau..dthbau;
gaubentypen = dtschleppgaube..dtfledermausgaube;
const
DacheingabeSteildach : array[steildachtypen] of dacheingabeformrecty = (
(Name : 'Pultdach'; formclass : tdacheingabepultdachfo),
(Name : 'Satteldach'; formclass : tdacheingabepultdachfo),
(Name : 'Walmdach'; formclass : nil),
(Name : 'Krüppelwalmdach'; formclass : nil),
(Name : 'Zeltdach'; formclass : nil),
(Name : 'Turm'; formclass : nil),
(Name : 'Mansarddach Typ 1'; formclass : nil),
(Name : 'Mansarddach Typ 2'; formclass : nil),
(Name : 'Winkelbau'; formclass : nil),
(Name : '3 Giebel Bau'; formclass : nil),
(Name : 'T - Bau'; formclass : nil),
(Name : 'Tonnendach'; formclass : nil)
);
const
DacheingabeFlachdach : array[flachdachtypen] of dacheingabeformrecty = (
(Name : 'Rechteckbau'; formclass : nil),
(Name : 'L - Bau'; formclass : nil),
(Name : 'H - Bau'; formclass : nil)
);
DacheingabeGauben : array[gaubentypen] of dacheingabeformrecty = (
(Name : 'Schleppgaube'; formclass : nil),
(Name : 'Sattelgaube'; formclass : nil),
(Name : 'Walmgaube'; formclass : nil),
(Name : 'Krüppelwalmgaube'; formclass : nil),
(Name : 'Spitzgaube'; formclass : nil),
(Name : 'Trapezgaube'; formclass : nil),
(Name : 'Tonnengaube'; formclass : nil),
(Name : 'Schweifgaube'; formclass : nil),
(Name : 'Fledermausgaube'; formclass : nil)
);
type
Alledachtypenty = array[0..2] of array of dacheingabeformrecty;
var
mainmo: tmainmo;
Alledachtypen : Alledachtypenty;
implementation
uses
mainmodule_mfm;
initialization
Alledachtypen[0] := DacheingabeSteildach;
Alledachtypen[1] := DacheingabeFlachdach;
Alledachtypen[2] := DacheingabeGauben;
end.
Der Compiler meckert bei der zweiten Zeile im initialization Teil.
Die erste akzeptiert er!?
Compiling mainmodule.pas
mainmodule.pas(78,22) Error: Incompatible types: got "Array[flachdachtypen] Of dacheingabeformrecty" expected "{Dynamic} Array Of dacheingabeformrecty"
mainmodule.pas(79,22) Error: Incompatible types: got "Array[gaubentypen] Of dacheingabeformrecty" expected "{Dynamic} Array Of dacheingabeformrecty"
mainmodule.pas(82) Fatal: There were 2 errors compiling module, stopping
Fatal: Compilation aborted
Error: D:\lazarus\fpc\3.0.0\bin\i386-win32\ppc386.exe returned an error exitcode
Kann mir jemand sagen, wie ich das lösen kann?