3 Composants et un problème acec TImage

Signaler
Messages postés
27
Date d'inscription
dimanche 9 janvier 2005
Statut
Membre
Dernière intervention
19 décembre 2007
-
Messages postés
27
Date d'inscription
dimanche 9 janvier 2005
Statut
Membre
Dernière intervention
19 décembre 2007
-
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.

7 réponses

Messages postés
1418
Date d'inscription
samedi 12 juin 2004
Statut
Membre
Dernière intervention
5 juillet 2010
9
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 !




Messages postés
27
Date d'inscription
dimanche 9 janvier 2005
Statut
Membre
Dernière intervention
19 décembre 2007

OK c'est + simple mais ça marche pas mieux !
Messages postés
1418
Date d'inscription
samedi 12 juin 2004
Statut
Membre
Dernière intervention
5 juillet 2010
9
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 !




Messages postés
27
Date d'inscription
dimanche 9 janvier 2005
Statut
Membre
Dernière intervention
19 décembre 2007

 
Messages postés
1418
Date d'inscription
samedi 12 juin 2004
Statut
Membre
Dernière intervention
5 juillet 2010
9
@+
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 !




Messages postés
27
Date d'inscription
dimanche 9 janvier 2005
Statut
Membre
Dernière intervention
19 décembre 2007

 
Messages postés
27
Date d'inscription
dimanche 9 janvier 2005
Statut
Membre
Dernière intervention
19 décembre 2007

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 ?