Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1167 connectés 

  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  [Delphi] Pointeur de méthode

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Delphi] Pointeur de méthode

n°133295
Ciler
Posté le 02-05-2002 à 10:51:09  profilanswer
 

:hello:  
 
J'ai un petit problème avec cette fonction de VFW : http://msdn.microsoft.com/library/ [...] c_62pi.asp
 
En fait, j'ai un pb avec le paramètre lpfnCallback  
Dans la déclaration en Delphi, il faut un  
TAVISAVECALLBACK = function(i: integer): longbool;
 
Mais si dans mon prog, je définis une fonction selon la méthode normale avec la bonne déclaration de paramètres, le compilo déclanche une erreur "precédure au lieu de pointeur de méthode"
 
Je n'arrive pas à trouver d'infos sur les pointeurs de méthode dans l'aide...
 
Une idée ?


---------------
And I looked, and behold a pale horse: and his name that sat on him was Death, and Hell followed with him. Revelations 6:8
mood
Publicité
Posté le 02-05-2002 à 10:51:09  profilanswer
 

n°133301
antp
Super Administrateur
Champion des excuses bidons
Posté le 02-05-2002 à 11:09:11  profilanswer
 

Si tu me mets un peu de code (ce que tu as fait comme déclaration de fonction) et le message d'erreur exact du compilateur je pourrai probablement t'aider...


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°135371
Ciler
Posté le 06-05-2002 à 15:46:04  profilanswer
 

Bon ben voila :
 

Citation :


// La fonction à problèmes est  
 
TAVISAVECALLBACK = function(i: int): BOOL; pascal;
     
function    AVISaveV(
    szFile          : LPCSTR;
    pclsidHandler   : PCLSID;
    lpfnCallback    : TAVISAVECALLBACK;
    nStreams        : int;
    var ppavi       : IAVISTREAM;
    var plpOptions  : PAVICOMPRESSOPTIONS
    ): HResult; stdcall; external AVIFILDLL name 'AVISaveVA';
     
// voila l'utilisation que j'en fait
// il faut remplacer le 2e nil...
 
AVISaveV(PChar(AppDir+'final.avi';),nil
,nil,1,WrkStream,WrkOptions);
 


---------------
And I looked, and behold a pale horse: and his name that sat on him was Death, and Hell followed with him. Revelations 6:8
n°135373
Ciler
Posté le 06-05-2002 à 15:47:22  profilanswer
 

Bon ben voila :
 
// La fonction à problèmes est  
 
TAVISAVECALLBACK = function(i: int): BOOL; pascal;
     
function    AVISaveV(
    szFile          : LPCSTR;
    pclsidHandler   : PCLSID;
    lpfnCallback    : TAVISAVECALLBACK;
    nStreams        : int;
    var ppavi       : IAVISTREAM;
    var plpOptions  : PAVICOMPRESSOPTIONS
    ): HResult; stdcall; external AVIFILDLL name 'AVISaveVA';
     
// voila l'utilisation que j'en fait
// il faut remplacer le 2e nil...
 
AVISaveV(PChar(AppDir+'final.avi';),nil,nil,1,WrkStream,WrkOptions);
 
Je ne te met pas le message d'erreur parce-qu'en fait j'en obtient plusieurs selon le type d'entrée que je met...


---------------
And I looked, and behold a pale horse: and his name that sat on him was Death, and Hell followed with him. Revelations 6:8
n°135767
Ciler
Posté le 07-05-2002 à 10:05:04  profilanswer
 

:bounce: up


---------------
And I looked, and behold a pale horse: and his name that sat on him was Death, and Hell followed with him. Revelations 6:8
n°135771
bjbebert
Posté le 07-05-2002 à 10:10:20  profilanswer
 

Le pointeur que tu passes à AVISaveV, c'est bien un pointeur sur une fonction, et pas sur une méthode ?

n°135814
antp
Super Administrateur
Champion des excuses bidons
Posté le 07-05-2002 à 10:39:45  profilanswer
 

Tu es sûr tu type de TAVISAVECALLBACK ?
Et pourquoi tu passes nil à la fonction par après ?


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°135856
Ciler
Posté le 07-05-2002 à 11:27:08  profilanswer
 

Ben le type TAVISAVECALLBACK est déclaré comme ça dans VFW.pas, j'ai donc pas trop le choix !
 
Sinon, je lui met nil pour que la fonction daigne se lancer mais du coup, je n'ai pas de callback.


---------------
And I looked, and behold a pale horse: and his name that sat on him was Death, and Hell followed with him. Revelations 6:8
n°135858
antp
Super Administrateur
Champion des excuses bidons
Posté le 07-05-2002 à 11:28:43  profilanswer
 

Ha.
:/
Et sinon tu la déclare comment ta fonction quand tu veux utiliser le callback ?


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°135901
Ciler
Posté le 07-05-2002 à 11:52:00  profilanswer
 

Ben un truc du genre
 
function MonCallBack(i: int): bool;
begin
  ProgressBar1.value := i;
end;


---------------
And I looked, and behold a pale horse: and his name that sat on him was Death, and Hell followed with him. Revelations 6:8
mood
Publicité
Posté le 07-05-2002 à 11:52:00  profilanswer
 

n°135906
antp
Super Administrateur
Champion des excuses bidons
Posté le 07-05-2002 à 11:59:50  profilanswer
 

Pas très clair tout ça.
Il dit quoi le compilo ?


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°135922
Ciler
Posté le 07-05-2002 à 12:24:56  profilanswer
 

antp a écrit a écrit :

Pas très clair tout ça.
Il dit quoi le compilo ?  




 
Bon, ben on va essayer de reprendre du début :
 
AVISave est une fonction qui crée un fichier AVI à partir de streams en mémoire...
Comme le procédé peut être un peu long (cf tout bon encodage en DivX), il y a prévu un callback : cad un moyen pour le programmateur de savoir le % de progression. Le callback fonctionne comme suit : il faut une fonction qui reçoit le % de progression en paramètre et revoie true ou false (pour pouvoir interompre la création).
 
Ici, j'aimerais pouvoir spécifier à AVISave l'adresse d'une fonction type
 
function MonCallBack(i: int): bool;  
begin  
 ProgressBar1.value := i;
 MonCallBack := True;  
end;
 
ce qui permet de suivre l'avancement de l'enregistrement.
 
Si je fais  
AVISaveV(PChar(AppDir+'final.avi';),nil
,MonCallBack,1,WrkStream,WrkOptions);
ou
AVISaveV(PChar(AppDir+'final.avi';),nil
,@MonCallBack,1,WrkStream,WrkOptions);
ça ne marche pas... (pas le message exact en tête)


---------------
And I looked, and behold a pale horse: and his name that sat on him was Death, and Hell followed with him. Revelations 6:8
n°135927
antp
Super Administrateur
Champion des excuses bidons
Posté le 07-05-2002 à 12:30:27  profilanswer
 

Ouais mais bon sans le message exact ça aide pas beaucoup :/


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°135932
Ciler
Posté le 07-05-2002 à 12:35:13  profilanswer
 

Ben, tu peut pas essayer de créer un projet ?  :??:  
Tu verra bien ce que ça donne juste en lançant la vérif du code...


---------------
And I looked, and behold a pale horse: and his name that sat on him was Death, and Hell followed with him. Revelations 6:8
n°135934
antp
Super Administrateur
Champion des excuses bidons
Posté le 07-05-2002 à 12:40:17  profilanswer
 

Et les fonctions AviSaveV, le stream, les options, etc ... il connaît pas.


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°135939
Ciler
Posté le 07-05-2002 à 12:45:39  profilanswer
 

Ben...
VFW.pas doit bien trainer sur Delphi Jedi...


---------------
And I looked, and behold a pale horse: and his name that sat on him was Death, and Hell followed with him. Revelations 6:8
n°135946
antp
Super Administrateur
Champion des excuses bidons
Posté le 07-05-2002 à 13:03:10  profilanswer
 

Ouais bon tu me passeras le message d'erreur...


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°135949
Ciler
Posté le 07-05-2002 à 13:06:28  profilanswer
 

okai okai... Thx


---------------
And I looked, and behold a pale horse: and his name that sat on him was Death, and Hell followed with him. Revelations 6:8
n°135982
antp
Super Administrateur
Champion des excuses bidons
Posté le 07-05-2002 à 14:13:24  profilanswer
 

Je t'aurais bien aidé en cherchant VFW etc... comme tu as dit, mais là y a ADO qui m'énerve (BDE rulez), et si je me dépèche pas je vais devoir bosser jeudi & vendredi...


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  [Delphi] Pointeur de méthode

 

Sujets relatifs
[ Delphi ] thread... ? :)Prg Delphi
[C++] Creer un pointeur à partir d'une donnée ???[Delphi] inclure une police dans un projet ;)
[Delphi] + Interbase + Client-serveur, Problème résolu ;)[Delphi] Editeur de code source
Classe en delphi[java] comment déclarer une méthode deprecated
menu 2d sous delphi direct draw ?? HYPER URGENT !!!! (désolé)Borland delphi personel 6 + composant database
Plus de sujets relatifs à : [Delphi] Pointeur de méthode


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR