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

  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  [ Delphi ] {OOP} visibilite dans une classe VCL

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[ Delphi ] {OOP} visibilite dans une classe VCL

n°332123
Ciler
Posté le 13-03-2003 à 14:19:30  profilanswer
 

:hello:  
 
Spa une demande de compo cette fois  :o  
 
Voila le probleme, je souhaite recuperer le graphisme contenu dans un TPanel... Mais il a pas de Canvas (ou plutot le canvas n'est pas un membre visible de la classe).
 
On m'a suggere ailleur de creer une classe :
 

Code :
  1. TMyPanel = class(TPanel)
  2. published
  3.   property Canvas: TCanvas;
  4. end;


 
Ca peut forcer la visibilite du canvas ca ? Ou ca en cree un deuxieme avec le meme contenu que celui cache ?
 
Est-ce qu'il ne faidrait pas faire property Canvas: TCanvas read <je sais pas quoi mettre ici>; ?


Message édité par Ciler le 13-03-2003 à 14:20:08
mood
Publicité
Posté le 13-03-2003 à 14:19:30  profilanswer
 

n°332173
antp
Super Administrateur
Champion des excuses bidons
Posté le 13-03-2003 à 15:00:40  profilanswer
 

Je pense que c'est comme ça qu'il faut faire en effet
Si la propriété est déjà définie dans un ancêtre du n'es pas obligé de définir le "read".
Quand tu parles d'un deuxième avec même contenu, t'entends quoi par "contenu" ? les property sont juste des genre de pointeurs vers des méthodes ou attributs, y a pas de contenu donc.


Message édité par antp le 13-03-2003 à 15:01:23

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°332290
Ciler
Posté le 13-03-2003 à 17:23:39  profilanswer
 

antp a écrit :

Je pense que c'est comme ça qu'il faut faire en effet
Si la propriété est déjà définie dans un ancêtre du n'es pas obligé de définir le "read".
Quand tu parles d'un deuxième avec même contenu, t'entends quoi par "contenu" ? les property sont juste des genre de pointeurs vers des méthodes ou attributs, y a pas de contenu donc.


 
OK... Je teste tonight

n°332886
taureau
Posté le 14-03-2003 à 07:05:48  profilanswer
 

cela fonctionnera mieux comme cela...
 

TMyPanel = class(TPanel)
published
    property Canvas;
end;


 
 
pour l'utiliser il te suffira alors de caster ton panel ex:  
 

TMyPanel(Panel1).Canvas.TextOut(10,10,edit1.text);


 
et je te rassure ce truc ne crééra pas un deuxième canvas, spa bo et les puristes de l'objet vont devenir tout rouge ... mais sa marche :d

n°333651
Ciler
Posté le 14-03-2003 à 16:51:36  profilanswer
 

Taureau a écrit :

cela fonctionnera mieux comme cela...
 

TMyPanel = class(TPanel)
published
    property Canvas;
end;


 
 
pour l'utiliser il te suffira alors de caster ton panel ex:  
 

TMyPanel(Panel1).Canvas.TextOut(10,10,edit1.text);


 
et je te rassure ce truc ne crééra pas un deuxième canvas, spa bo et les puristes de l'objet vont devenir tout rouge ... mais sa marche :d


 
Ben... ca marche, ca marche, c'est vite dit...
 
Selon les fonctions appelees ensuite, ca donne des resultatts amusant
Image1.Canvas.Assign(MyPanel.Canvas); leve une exception
Image1.Canvas.Copyrect(x,MyPanel.Canvas,x); fonctionne  :pt1cable:  
(x est un TRect valide)

n°333830
taureau
Posté le 14-03-2003 à 20:32:25  profilanswer
 

le fait que cela lève une exception ne provient absolument pas de cette technique, mais c juste que tu ne peux assigner un TControlCanvas à un TBitmapCanvas...donc ça marche oui  :D

n°333871
Ciler
Posté le 14-03-2003 à 22:52:06  profilanswer
 

Taureau a écrit :

le fait que cela lève une exception ne provient absolument pas de cette technique, mais c juste que tu ne peux assigner un TControlCanvas à un TBitmapCanvas...donc ça marche oui  :D  


 
 :non:  
 
J'ai essaye de balancer le canvas a un autre TMyPanel et ca fait  
Impossible d'assigner un TControlCanvas à un TControlCanvas  :pt1cable:


---------------
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°334005
taureau
Posté le 15-03-2003 à 12:01:58  profilanswer
 

ben c normal non ? il ne faut pas confondre un canvas avec une bitmap...en plus ton canvas est en lecture seule...
 
donc si c pour faire un copie de son contenu il faut nécessaire faire Canvas.Copyrect


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

  [ Delphi ] {OOP} visibilite dans une classe VCL

 

Sujets relatifs
Log4j ou classe de log faite "maison" ?[ Delphi ] Un composant qui affiche du XML highlighte
Equivalante de Delphi 6 et C++ Builder sous Debian !!![js / css] modifier une classe dynamiquement !
Visibilite des classes MFC[JAVA] classe Date deprecated ? c grave ?
[Delphi] Sauvegarder une image en gif en utilisant la jvcl ?[ Delphi ] Supprimer un repertoire et son contenu
pascal vers delphi[delphi] Evenement NavigateComplete2 de IE via OLE :??: Zion help plz
Plus de sujets relatifs à : [ Delphi ] {OOP} visibilite dans une classe VCL


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