Chciałbym procedurę obiektu korzystać w rekordzie, tak:Jak mogę dołączyć wskaźnik metody do wpisanej stałej?
TCommandRec = record
name: string;
fn: procedure of object;
end;
mogę utworzyć tablicę z tym za zadanie:
commands: array [0..1] of TCommandRec;
...
commands[0].name := '-help';
commands[0].fn := DoHelp;
commands[1].name := '-load';
commands[1].fn := DoLoad;
Co naprawdę chciałbym robić jest stała:
const
cmds: array [0..1] of TCommandRec =
(
(name: '-help'; fn: DoHelp),
(name: '-load'; fn: DoLoad)
);
Jednak otrzymuję błędy dla DoHelp i DoLoad - oczekiwane stałe wyrażenie. Są to dwie metody klasy. Czy jest jakaś składnia, której potrzebuję do wykonania tej pracy, czy też utknąłem budując tablicę w czasie wykonywania?
nie, metoda wskaźnika nie kwalifikuje się jako stałą ekspresję (głównie ze względu na przykład wskaźnik - patrz TMethod.Data). – OnTheFly
@ user539484 Wskaźniki metod ze stałymi tematami to wyrażenia stałe –
@ David Heffernan, czy masz przykład? – OnTheFly