Non funzion mi da un erore di scrittura/lettura al indirizzo.
codice:
procedure TForm1.ExecMethod(OnObject: TObject; MethodName: string) ;
var
Routine: TMethod;
Exec: TExec;
begin
Routine.Data := Pointer(OnObject) ;
Routine.Code := @MethodName ;
if not Assigned(Routine.Code) then Exit;
Exec := TExec(Routine) ;
Exec;
end;
dove methodname viene ricavato da:
codice:
procedure TForm1.ListView1DblClick(Sender: TObject);
var
b:string;
begin
b:=ListView1.Selected.Caption;
ExecMethod(Form1,b+'Execute') ;
end;
le procedure alle quallio voglio trovare il puntatore sono
codice:
procedure CDROMExecute(Sender: TObject);
procedure AvvioTaskExecute(Sender: TObject);
procedure onLineExecute(Sender: TObject);
procedure MouseExecute(Sender: TObject);
procedure DirEDriveExecute(Sender: TObject);
procedure MonitorExecute(Sender: TObject);
procedure AudioExecute(Sender: TObject);
procedure FileSystemExecute(Sender: TObject);
gli oggetti dai qualli b prende i nome sono:
'CDRom'
'CambiaForm'
'TaskBar'
'onLine'
'Mouse'
'DirEDrive'
'Monitor'
'Audio'
'FileSystem'
'Creazione'
Forse uttilizzare il @ per trovare l'indirizzo di una funzione da risultati pero per le procedure no(suposizione)
Prima il prof ci aveva dato l'istruzione
codice:
OnObject.MethodAdress(methodname);
per trovare l'indirizzo pero ritorna valore nil