Autor Téma: Funkcia ako parameter do inej funkcie  (Přečteno 269 krát)

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 5970
  • Karma: 43
    • Verze Delphi: W10 + D11
Funkcia ako parameter do inej funkcie
« kdy: 09-08-2021, 13:33:38 »

V niektorých formulároch mám definovanú
Kód: Delphi [Vybrat]
  1. procedure ApplyChanges;
Pokúšam sa ju odovzdať ako parameter. V GlobalVar mám
Kód: Delphi [Vybrat]
  1. TProcApplyChange = procedure of object;
  2.   procedure AddFormData(FocComboBox: TAdvComboBox; AFormStyler: TAdvFormStyler; AApplyChanges: TProcApplyChange);
  3.  
To mi nefunguje
Kód: Delphi [Vybrat]
  1. procedure TGlobalVar.ApplyDBChange;
  2. begin
  3.   FDataIsChanged := False;
  4.   if Assigned(FApplyChanges) then // Je vždy False. Ak to zakomentujem, tak
  5.     FApplyChanges;  //  Padne to na nekonečnú slučku
  6. end;
  7.  
Teraz netuším ako to mám urobiť. Definícia TProcApplyChange je asi nesprávna
W10 64b, Delphi 10.4, FireBird 3.05
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 5970
  • Karma: 43
    • Verze Delphi: W10 + D11
Re:Funkcia ako parameter do inej funkcie
« Odpověď #1 kdy: 09-08-2021, 14:00:50 »
Opäť som zvolil obrátený postup. Najprv som sa opýtal a potom hľadal.
Kód: Delphi [Vybrat]
  1.   TProcApplyChange = reference to procedure;
Teraz mám problém v tom, že pri FormCreate funkcia ešte nie k dispozícii. Vo FormShow to je trochu neskoro.
Dá sa to nejako vyriešiť? Mám vlastného predka pre všetky formuláre. Skúsim to hodiť tam. Len definíciu.
.
Nepomohlo to.
« Poslední změna: 09-08-2021, 14:03:32 od Stanislav Hruška »
W10 64b, Delphi 10.4, FireBird 3.05
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 5970
  • Karma: 43
    • Verze Delphi: W10 + D11
Re:Funkcia ako parameter do inej funkcie
« Odpověď #2 kdy: 09-08-2021, 14:29:20 »
Len na upresnenie
Kód: Delphi [Vybrat]
  1. FormCreate
  2.  
  3. ApplyChanges;  Toto funguje
  4. oGlobVar.ApplyDBChange;  //  Toto nefunguje ApplyChanges spôsobí AV

W10 64b, Delphi 10.4, FireBird 3.05
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 5970
  • Karma: 43
    • Verze Delphi: W10 + D11
Re:Funkcia ako parameter do inej funkcie
« Odpověď #3 kdy: 09-08-2021, 15:31:23 »
Už som sa z toho vysomáril. Tá definícia ostala pôvodná. Po analýze čo a aké tam mám som to dal do poriadku.
W10 64b, Delphi 10.4, FireBird 3.05
Expert na kladenie nejasne formulovaných otázok.