Drag drop & Tpanel [Résolu]

Messages postés
41
Date d'inscription
vendredi 19 novembre 2004
Dernière intervention
21 juin 2005
- - Dernière réponse : templeofboom
Messages postés
41
Date d'inscription
vendredi 19 novembre 2004
Dernière intervention
21 juin 2005
- 4 mai 2005 à 14:30
Bonjour, voila dans mon programme je créé dynamiquement des tpanels
contenus dans des TTabsheet je voudrai pouvoir faire un drag/drop
d'une image dans ces panels or quand j'execute mon glisser deposer, le
Timage se pose en dessous du TPanel et est donc invisible est-ce normal?

Temple0fb00m
Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
Messages postés
1529
Date d'inscription
samedi 12 juin 2004
Dernière intervention
5 juillet 2010
3
Merci
Le problème vient de cette ligne :
parent := TPanel(TTabSheet(PageControl1.ActivePage)); // pour que le Timage ait pour parent TPanel

Il faut la remplacer par celle-ci, tout simplement :
parent := Sender as TPanel;

Autre chose, cette ligne n'est pas correcte :
Parent:= Form1.PageControl1.Pages[PageCount-1];

Il faut mettre :

Parent:= Form1.PageControl1.Pages[PageControl1.PageCount-1];


@+
Bonne Prog'
Nico



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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de ni69
Messages postés
1529
Date d'inscription
samedi 12 juin 2004
Dernière intervention
5 juillet 2010
0
Merci
regarde cette source :
http://www.delphifr.com/code.aspx?ID=12713


@+
Bonne Prog'
Nico



<HR>
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
41
Date d'inscription
vendredi 19 novembre 2004
Dernière intervention
21 juin 2005
0
Merci
merci ni69 mais g déja regardé cette source et je m'en suis inspiré mais la le probleme est que ces composants sont créés dynamiquement et je ne comprend pas pourquoi cette image se retrouve en dessous du Tpanel et non a l'interieur.... le parent n'est peut etre pas bon?

Temple0fb00m
Commenter la réponse de templeofboom
Messages postés
1529
Date d'inscription
samedi 12 juin 2004
Dernière intervention
5 juillet 2010
0
Merci
passe-nous ton code svp...


@+
Bonne Prog'
Nico



<HR>
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
41
Date d'inscription
vendredi 19 novembre 2004
Dernière intervention
21 juin 2005
0
Merci
en gros ici je créé un nouveau TTabsheet contenant un TPanel:



with TTabSheet.Create(Form1.PageControl1.ActivePage) do

begin

PageControl := Form1.PageControl1;

Caption :=Edit1.Text;

with TPanel.Create(Form1.PageControl1.ActivePage) do

begin

Parent:= Form1.PageControl1.Pages[PageCount-1];

Color := clBtnHighlight;

Caption := '';

Left:= 0;

Top:= 0;

Width:= 600;

Height:=500;

Enabled:= true;

Visible:=True;

BevelInner :=bvLowered;

BevelOuter:=bvLowered;

DragMode := dmAutomatic;

OnDragOver := Form1.panelDragOver;

OnDragDrop := Form1.panelDragDrop;

end;

end;

puis voici les différents évènement de drag & drop...

//ici on commence le glissement pour le Timage

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

Shift: TShiftState; X, Y: Integer);

begin

Image1.BeginDrag(true);

end;



procedure TForm1.panelDragOver(Sender, Source: TObject; X, Y: Integer;

State: TDragState; var Accept: Boolean);

begin

accept := Source is TImage;

end;



procedure TForm1.PanelDragDrop(Sender, Source: TObject; X, Y: Integer);

begin

if(Sender is TPanel)and(Source is TImage)then

begin

with Source as TImage do

begin


parent :=
TPanel(TTabSheet(PageControl1.ActivePage)); // pour que le Timage ai pour parent TPanel

Left := X-(width div 2) ; Top := Y-(Height div 2);

// pour que le TImage suive la souris (le centre du Timage)

end;

end;

end;



voila le code est ce que le parent du Timage te parait correct?

Temple0fb00m
Commenter la réponse de templeofboom
Messages postés
41
Date d'inscription
vendredi 19 novembre 2004
Dernière intervention
21 juin 2005
0
Merci
super ca fonctionne merci bcp nico t un chef.....

Temple0fb00m
Commenter la réponse de templeofboom

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.