Delphi-Version: 10 Seattle
Call TList<Procedure of object>
Mojje,
in diesem Thread haben wir festgestellt, dass man statt einem TArray<TProcedureOfObject> eine TList<TProcedureOfObject> benutzen muss, weil das Array in diesem Zusammenhang wohl buggy ist. Ich habe also meine ganze Situation auf
Delphi-Quellcode:
umgebuegelt. Ich kann die Liste befuellen, alles scheint zu funktionieren.
type
TUpdateProcedure = Procedure of object; TUpdateProcedures = TList<TUpdateProcedure>; var UpdateProcedures: TUpdateProcedures; [...] begin UpdateProcedures := TUpdateProcedures.Create; UpdateProcedures.AddRange([UpdateView001, UpdateView002]); [...] UpdateProcedures[0]; // CALL end; Der procedure CALL an sich wird aber nicht ausgefuehrt. Ich sehe nur einen range-check der Liste, sonst passiert gar nichts. Mein Breakpoint in UpdateView001 kommt nicht. Was ist da los? |
AW: Call TList<Procedure of object>
Um den Call auszuführen, musst du die runden Klammern hinter die Procedure/Function schreiben - auch wenn keine Parameter vorhanden sind. Daran unterscheidet der Compiler, ob du die Methode nur referenzierst oder ausführen willst.
Delphi-Quellcode:
UpdateProcedures[0](); // CALL
|
AW: Call TList<Procedure of object>
Danke :)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:23 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz