Forum Delphi.cz

Delphi => Obecné => Téma založeno: Stanislav Hruška 09-08-2021, 13:33:38

Název: Funkcia ako parameter do inej funkcie
Přispěvatel: Stanislav Hruška 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
Název: Re:Funkcia ako parameter do inej funkcie
Přispěvatel: Stanislav Hruška 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.
Název: Re:Funkcia ako parameter do inej funkcie
Přispěvatel: Stanislav Hruška 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

Název: Re:Funkcia ako parameter do inej funkcie
Přispěvatel: Stanislav Hruška 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.