Op 2-5-2024 om 08:32 schreef Adriaan van Os via fpc-pascal:
TWindow(myClass).CreateNewWindow;
And this is what crashes. I can report this, if the type-cast is
supposed to work.
Known gotcha. Is and as are no good for method variables, use:
if myclass.inheritsfrom(twindow) then
Olivier Sannier via fpc-pascal wrote:
Hello,
You should cast to TWindowClass as TWindow is used to cast an instance,
not a class reference.
Note that you may not have TWindowClass, in which case you need to
declare it like this:
type
TWindowClass = class of TWindow;
OK. A typecast
Hello,
You should cast to TWindowClass as TWindow is used to cast an instance,
not a class reference.
Note that you may not have TWindowClass, in which case you need to
declare it like this:
type
TWindowClass = class of TWindow;
Note that CreateNewWindow would have to be virtual for
Martin Frb via fpc-pascal wrote:
My example (2nd part of it) was actually wrong.
It was mentioned before
On 01/05/2024 19:43, Jean SUZINEAU via fpc-pascal wrote:
I didn't tested but I imagine it could be done with something like this ?
type
TWindow_Class= class of TWindow;
begin
On 02/05/2024 08:32, Adriaan van Os via fpc-pascal wrote:
Martin Frb via fpc-pascal wrote:
Silly question, but did you assign the value to the variable?
myClass := TWindow;
That's what I did.
TWindow(myClass).CreateNewWindow;
And this is what crashes. I can report this, if the type-cast
Martin Frb via fpc-pascal wrote:
Silly question, but did you assign the value to the variable?
myClass := TWindow;
That's what I did.
TWindow(myClass).CreateNewWindow;
And this is what crashes. I can report this, if the type-cast is supposed to
work.
Regards,
Adriaan van Os
In addition to what Martin said: as long as you have a non-static class
method the value of the variable you call the class method on (e.g.
myClass in your example) will be passed as Self parameter. So no need
for extra parameters.
But how can myClass be passed ?
Adriaan van Os via fpc-pascal schrieb am
Mi., 1. Mai 2024, 17:07:
> Suppose I have a
>
> var myClass: TClass
>
> and (for example) a
>
> class function TWindow.CreateNewWindow( )
>
> Now I want to call CreateNewWindow for var myClass. Of course, depending
> on the class,
>
On 01/05/2024 16:28, Adriaan van Os via fpc-pascal wrote:
Suppose I have a
var myClass: TClass
and (for example) a
class function TWindow.CreateNewWindow( )
Now I want to call CreateNewWindow for var myClass. Of course,
depending on the class, CreateNewWindow will behave
I didn't tested but I imagine it could be done with something like this ?
type
TWindow_Class= class of TWindow;
begin
...
(myClass as TWindow_Class).CreateNewWindow( );
___
fpc-pascal maillist -
Suppose I have a
var myClass: TClass
and (for example) a
class function TWindow.CreateNewWindow( )
Now I want to call CreateNewWindow for var myClass. Of course, depending on the class,
CreateNewWindow will behave different. Type-casting myClass to TWindow crashes (in my
11 matches
Mail list logo