Autor Téma: Presun funkcií z interface do implementation  (Přečteno 245 krát)

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 6141
  • Karma: 44
    • Verze Delphi: W10 + D11
Presun funkcií z interface do implementation
« kdy: 01-12-2021, 12:22:21 »
Kód: Delphi [Vybrat]
  1. type
  2.   TBasalFormClass = class of TBasalForm;
  3.  
  4.  
  5.   function GetForm(ATypeForms: TTypeForm): TBasalFormClass;
  6.   function GetFormPart1(ATypeForms: TTypeForm): TBasalFormClass;
  7.   function GetFormPart2(ATypeForms: TTypeForm): TBasalFormClass;
  8.   procedure FinallyTry(const ALeftMainForm, ATopMainForm: Integer; const ATypeForms: TTypeForm);
  9.   procedure NewForm(ATypeForms: TTypeForm);
  10.   procedure ServeMainForm(const ATypeForms: TTypeForm; var ALeftMainForm, ATopMainForm: Integer);
  11.  
Prvé tri funkcie sa používajú výhradne v danej jednotke. Bolo by dobre ich mať v implementation. Neviem to urobiť.
W10 64b, Delphi 10.4, FireBird 3.08
Expert na kladenie nejasne formulovaných otázok.

Offline Morrison

  • Hrdina
  • ****
  • Příspěvků: 315
  • Karma: 12
    • Verze Delphi: D5, XE2, 10.4
Re:Presun funkcií z interface do implementation
« Odpověď #1 kdy: 01-12-2021, 20:50:05 »
V čem konkrétně je problém?

Jinak obecně, pokud chceš mít nějakou rutinu pouze v sekci implementation, tak si ji tam prostě dej :) Logicky tedy nebude žádná definice v interface, jenom v implementation budeš mít napsanou lokální funkci. Samozřejmě pokud ji někde dále používáš, musí být ta funkce vždycky napsaná nad místem, kde ji voláš.

Kód: Delphi [Vybrat]
  1. interface
  2.  
  3. type
  4.   TBasalFormClass = class of TBasalForm;
  5.  
  6. implementation
  7.  
  8. // tady je GetForm jeste neznama
  9.  
  10. function GetForm(ATypeForms: TTypeForm): TBasalFormClass;
  11. begin
  12.  
  13. end;
  14.  
  15. // tady uz muzes GetForm pouzivat
  16.  
nil

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 6141
  • Karma: 44
    • Verze Delphi: W10 + D11
Re:Presun funkcií z interface do implementation
« Odpověď #2 kdy: 01-12-2021, 21:02:29 »
Už v ničom ;)  Predtým som to robil zle. Už si to nepamätám. Teraz som si uvedomil niektoré závislosti a pravidlá.
W10 64b, Delphi 10.4, FireBird 3.08
Expert na kladenie nejasne formulovaných otázok.