Drag drop & Tpanel [Résolu]

templeofboom 41 Messages postés vendredi 19 novembre 2004Date d'inscription 21 juin 2005 Dernière intervention - 4 mai 2005 à 11:26 - Dernière réponse : templeofboom 41 Messages postés vendredi 19 novembre 2004Date d'inscription 21 juin 2005 Dernière intervention
- 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

ni69 1529 Messages postés samedi 12 juin 2004Date d'inscription 5 juillet 2010 Dernière intervention - 4 mai 2005 à 14:26
+3
Utile
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 !
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de ni69
ni69 1529 Messages postés samedi 12 juin 2004Date d'inscription 5 juillet 2010 Dernière intervention - 4 mai 2005 à 12:34
0
Utile
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
templeofboom 41 Messages postés vendredi 19 novembre 2004Date d'inscription 21 juin 2005 Dernière intervention - 4 mai 2005 à 13:53
0
Utile
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
ni69 1529 Messages postés samedi 12 juin 2004Date d'inscription 5 juillet 2010 Dernière intervention - 4 mai 2005 à 14:01
0
Utile
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
templeofboom 41 Messages postés vendredi 19 novembre 2004Date d'inscription 21 juin 2005 Dernière intervention - 4 mai 2005 à 14:11
0
Utile
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
templeofboom 41 Messages postés vendredi 19 novembre 2004Date d'inscription 21 juin 2005 Dernière intervention - 4 mai 2005 à 14:30
0
Utile
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.