COMPOSANT POUR DÉPLACER ET REDIMENSIONNER LES AUTRES À L'EXÉCUTION

cs_MAURICIO Messages postés 2106 Date d'inscription mardi 10 décembre 2002 Statut Modérateur Dernière intervention 15 décembre 2014 - 4 mars 2008 à 16:46
Bacterius Messages postés 3792 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 3 juin 2016 - 18 mars 2008 à 00:19
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/45947-composant-pour-deplacer-et-redimensionner-les-autres-a-l-execution

Bacterius Messages postés 3792 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 3 juin 2016 10
18 mars 2008 à 00:19
Bonjour,
faut pas être jaloux the Jos :p
Cette source je la trouve très bien, 9/10 !
Moi je ne comprends pas trop comment faire un composant... ne peut-on pas en faire un entièrement nouveau ? sans rien ? faut-il choisir un type ancêtre ? ...
Enfin bon :)

Cordialement, Bacterius !
The Jos Messages postés 2 Date d'inscription mercredi 6 décembre 2006 Statut Membre Dernière intervention 14 octobre 2016
10 mars 2008 à 20:11
Bounjour à tous

Pour info il y a longtemps j'avais fait un composant comme ça qui permettait de redimensionner et de déplacer n'importe quel contrôle a l'éxcécution et sans clipping. Je vous donne le lien http://herea.soft.free.fr/Unites.htm le compo s'appelle TMRControl. Y a un projet exe a l'intérieur pour démo.

A+

http://herea.soft.free.fr (racine du site)
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
9 mars 2008 à 22:10
Comme ça, on a le choix.
Bravo à tous les deux.
Fred_Ca_Pulse Messages postés 20 Date d'inscription mercredi 15 mars 2006 Statut Membre Dernière intervention 19 juin 2008
4 mars 2008 à 18:09
Un oubli ... qui ne nuit pas au fonctionnement ... mais c'est mieux pour tester.

procedure TForm1.FormCreate(Sender: TObject);
begin
MoveAndResize1 := MoveAndResize.TMoveAndResize.Create( Self );
// Oubli ... en création dynamique du composant ... rien n'est stocké !!!
MoveAndResize1.OnMove := MoveAndResizeMoveOrResize;
MoveAndResize1.OnResize := MoveAndResizeMoveOrResize;
end;

Désolé
Fred_Ca_Pulse Messages postés 20 Date d'inscription mercredi 15 mars 2006 Statut Membre Dernière intervention 19 juin 2008
4 mars 2008 à 18:06
Salut Mauricio

Effectivement tu as raison, j'avais même déjà testé ton compo à l'époque ( je m'en souvenais même plus ) : il marche super bien ... sauf un bug de dessin sur les TLabel.

Je viens de tester à nouveau ton TcyResizer : j'ai toujours le même bug en ayant changé de machine et de système ( Vista maintenant ).
Ce bug provient réellement de l'activation de la vérification des limites sur la ligne 233 - FControl.Perform(WM_PAINT, DC, 0) dans la procédure PAINT_OTHER_CONTROLS.
Voici une proposition de modification qui fonctionne pour moi :
{$IFOPT R+}
{$R-}
FControl.Perform(WM_PAINT, DC, 0);
{$R+}
{$ELSE}
FControl.Perform(WM_PAINT, DC, 0);
{$ENDIF}

Bon, bref, j'aurais effectivement pu me passer de réécrire mon composant ... tant pis, il est là maintenant et j'espère qu'il pourra servira aux débutants, peut-être un peu perdus dans ton code de niveau plus avancé.

A+
Rejoignez-nous