3 Composants et un problème acec TImage

Messages postés
27
Date d'inscription
dimanche 9 janvier 2005
Statut
Membre
Dernière intervention
19 décembre 2007
- - Dernière réponse : djiki
Messages postés
27
Date d'inscription
dimanche 9 janvier 2005
Statut
Membre
Dernière intervention
19 décembre 2007
- 20 juin 2005 à 21:05
Bonjour tout le monde,
mon problème est le suivant :
je crée un projet avec Form1 FormStyle à fsMDIForm
je crée une fiche avec Form2 FormStyle à fsMDIChild et je lui met une couleur de fond quelconque.
Dans form1 je mets 1 TImage et 1 boutton
maintenant quand je clique sur le bouton je veux voir la représentation de Form2 dans TImage, mais rien ne se passe sauf si je déplace la fenêtre fille sur TImage et que je la retire, alors la ! miracle !le TImage me dessine bien la Form2.
Si quelq'un pouvait m'expliquait et surtout m'évitait cette gymnatique ce serait bien (je joint mon code )


unit Unit1;


interface


uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, ExtCtrls, StdCtrls;


type


TForm1 = class(TForm)
Button1: TButton;
Image1: TImage;
procedure Button1Click(Sender: TObject);


private
{ Déclarations privées }


public
{ Déclarations publiques }

end;


var


Form1: TForm1;


implementation


{$R *.dfm}


uses unit2 ;


procedure TForm1.Button1Click(Sender: TObject);


var R :TRect;


begin
R: =image1.ClientRect;
image1.Canvas.Brush.Color:=clwhite;
image1.Canvas.StretchDraw(R,form2.GetFormImage);
end;


end.
Afficher la suite 

7 réponses

Messages postés
1529
Date d'inscription
samedi 12 juin 2004
Statut
Membre
Dernière intervention
5 juillet 2010
7
0
Merci
Tu peux remplacer


procedure TForm1.Button1Click(Sender: TObject);

var

R :TRect;

begin

R:= image1.ClientRect;

image1.Canvas.Brush.Color:=clwhite;

image1.Canvas.StretchDraw(R,form2.GetFormImage);

end;
par :

procedure TForm1.Button1Click(Sender: TObject);

Image1.Picture.Bitmap.Assign(Form2.GetFormImage);
end;



C'est plus simple


@+
Bonne Prog'
Nico [www.ni69.new.fr]
<hr size ="2" width="100%">





N'oubliez pas de cliquer sur Réponse acceptée lorsque la réponse vous convient !




Commenter la réponse de ni69
Messages postés
27
Date d'inscription
dimanche 9 janvier 2005
Statut
Membre
Dernière intervention
19 décembre 2007
0
Merci
OK c'est + simple mais ça marche pas mieux !
Commenter la réponse de djiki
Messages postés
1529
Date d'inscription
samedi 12 juin 2004
Statut
Membre
Dernière intervention
5 juillet 2010
7
0
Merci
Essaye en rajoutant Update après la mise en place de l'image...



procedure TForm1.Button1Click(Sender: TObject);
Image1.Picture.Bitmap.Assign(Form2.GetFormImage);

Update;

end;

@+
Bonne Prog'
Nico [www.ni69.new.fr]
<hr size="2" width="100%">





N'oubliez pas de cliquer sur Réponse acceptée lorsque la réponse vous convient !




Commenter la réponse de ni69
Messages postés
27
Date d'inscription
dimanche 9 janvier 2005
Statut
Membre
Dernière intervention
19 décembre 2007
0
Merci
 
Commenter la réponse de djiki
Messages postés
1529
Date d'inscription
samedi 12 juin 2004
Statut
Membre
Dernière intervention
5 juillet 2010
7
0
Merci
@+
Bonne Prog'
Nico [www.ni69.new.fr]
<hr size="2" width="100%">





N'oubliez pas de cliquer sur Réponse acceptée lorsque la réponse vous convient !




Commenter la réponse de ni69
Messages postés
27
Date d'inscription
dimanche 9 janvier 2005
Statut
Membre
Dernière intervention
19 décembre 2007
0
Merci
 
Commenter la réponse de djiki
Messages postés
27
Date d'inscription
dimanche 9 janvier 2005
Statut
Membre
Dernière intervention
19 décembre 2007
0
Merci
Bon troisième essai !

Donc, avec update ,TIMage est toujours invisible !
Je parviens à l'afficher en créant un effet "paupière" : je modifie les dimensions du bouton pour recouvrir le Timage, je redessine le bouton et enfin je lui redonne sa taille d'origine.
Mais ce n'est pas ce que j'attends de Delphi.

Allo, allo la terre ,vous me recevez ?
Commenter la réponse de djiki