Redimentionner une form avec une image

Résolu
flo160fr Messages postés 157 Date d'inscription dimanche 19 novembre 2000 Statut Membre Dernière intervention 14 avril 2009 - 21 janv. 2006 à 12:43
jlen100 Messages postés 1606 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 25 juillet 2014 - 21 janv. 2006 à 15:48
Bonjours, je voudrai savoir comment faire pour redimentionner une feneitre grace a une image dans le coin inférieur droit de la form (BorderStyle := bsNone)

...

8 réponses

jlen100 Messages postés 1606 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 25 juillet 2014 13
21 janv. 2006 à 12:54
salut,

je pense que tu dois utiliser les propriété left top width et height de l'image et de la form

je n'ai pas le code sous la main mais le principe est le suivant:

dans l'évènement onmouse down de l'image tu mets un flag qui mémorise l'action

dans l'évènement on mousemove tu récupère le déplacement de la souris
et tu mets à jour les propriétés width et height de la fenetre et les
propriétés top et left de l'image

dans le onmouseup tu reset le flag



@+

jlen
3
jlen100 Messages postés 1606 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 25 juillet 2014 13
21 janv. 2006 à 15:21
essaye çà



procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

begin

image1.Tag:= 1;

old.X:=X;old.Y:=Y;

end ;



procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState;

X, Y: Integer);

begin

if image1.Tag =0 then exit;

with TForm1 do

begin

Height:= Height+Y-old.Y;

Width:= Width +X-old.X;

end ;

with Image1 do

begin

top: = top+ Y-old.Y;

left:= left+X-old.X;

end ;



end;



procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

begin

image1.Tag: =0;



end;

je n'ai pas mis de controle de validité en particulier si tu réduit trop la fenêtre

@+

jlen
3
flo160fr Messages postés 157 Date d'inscription dimanche 19 novembre 2000 Statut Membre Dernière intervention 14 avril 2009
21 janv. 2006 à 12:58
ok je vai essayer... merci

...
0
jlen100 Messages postés 1606 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 25 juillet 2014 13
21 janv. 2006 à 13:04
si tu n'y arrives pas je rechercherai la source ou j'ai fait quelque chose de similaire

@+

jlen
0

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

Posez votre question
flo160fr Messages postés 157 Date d'inscription dimanche 19 novembre 2000 Statut Membre Dernière intervention 14 avril 2009
21 janv. 2006 à 13:40
Oui, si tu pouvai me passer quelques bouts de codes,... car je voi pas bien comment faire...

...
0
flo160fr Messages postés 157 Date d'inscription dimanche 19 novembre 2000 Statut Membre Dernière intervention 14 avril 2009
21 janv. 2006 à 15:39
Voici le code que j'ai utilisé :

procedure TForm1.ImgCoinBasDroiteMouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
ImgCoinBasDroite.Tag:=1;
old.X:=X;old.Y:=Y;
end;

procedure TForm1.ImgCoinBasDroiteMouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer);
begin
if ImgCoinBasDroite.Tag=0 then exit;
with TForm1 do
begin
Form1.Height:= Form1.Height+Y-old.Y;
Form1.Width:= Form1.Width +X-old.X;
end;

end;

procedure TForm1.ImgCoinBasDroiteMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
ImgCoinBasDroite.Tag:=0;
end;

(Faut pas oublier de déclarer old comme variable de type Tpoint)

et ce bout de code ne m'as pas servis, car il y avai déja des alignements pour l'image...
with ImgCoinBasDroite do

begin

top:= top+ Y-old.Y;

left:=left+X-old.X;

end;

Merci beaucoup !
0
flo160fr Messages postés 157 Date d'inscription dimanche 19 novembre 2000 Statut Membre Dernière intervention 14 avril 2009
21 janv. 2006 à 15:40
PS : pour la taille minimale de la feneitre c'étai déja prévu.

...
0
jlen100 Messages postés 1606 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 25 juillet 2014 13
21 janv. 2006 à 15:48
oui j'avais oublié de te dire de déclarer old en record ou en
Tpoint en variable globale et pour les alignements c'est vrai que çà
simplifie le code mais bon je l'ai refait en 1/4 heure à partir d'une
autre source alors je n'ai pas cherché à optimiser

@+

jlen
0
Rejoignez-nous