3 Composants et un problème acec TImage

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

7 réponses

ni69 Messages postés 1418 Date d'inscription samedi 12 juin 2004 Statut Membre Dernière intervention 5 juillet 2010 12
19 juin 2005 à 20:57
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 !




0
djiki Messages postés 27 Date d'inscription dimanche 9 janvier 2005 Statut Membre Dernière intervention 19 décembre 2007
19 juin 2005 à 22:10
OK c'est + simple mais ça marche pas mieux !
0
ni69 Messages postés 1418 Date d'inscription samedi 12 juin 2004 Statut Membre Dernière intervention 5 juillet 2010 12
19 juin 2005 à 23:49
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 !




0
djiki Messages postés 27 Date d'inscription dimanche 9 janvier 2005 Statut Membre Dernière intervention 19 décembre 2007
20 juin 2005 à 19:26
 
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ni69 Messages postés 1418 Date d'inscription samedi 12 juin 2004 Statut Membre Dernière intervention 5 juillet 2010 12
20 juin 2005 à 19:44
@+
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 !




0
djiki Messages postés 27 Date d'inscription dimanche 9 janvier 2005 Statut Membre Dernière intervention 19 décembre 2007
20 juin 2005 à 20:54
 
0
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
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 ?
0
Rejoignez-nous