begin process at 2010 02 10 12:02:11
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Delphi

 > 

Divers

 > 

Débutant(e)

 > 

Composant en avant plan


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Composant en avant plan

vendredi 26 septembre 2008 à 15:07:53 | Composant en avant plan

RURUInc

Bonjour à tous.

J'ai un petit soucis lors du déplacement d'un composant à l'aide de la souris.
Je m'explique
Imaginons que j'ai 5 panels sur une form placer n'importe où.
et que je place 3 evenements (les mêmes pour tous).

Voici l'exemple complet qui fonctionnera sur votre D7
(utile pour ceux qui ne maitrise pas le deplacement de composant)

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls;

type
  TForm1 = class(TForm)
    Panel1: TPanel;
    Panel2: TPanel;
    Panel3: TPanel;
    Panel4: TPanel;
    Panel5: TPanel;
    procedure PanelMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure PanelMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure PanelMouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
  private
    { Private declarations }
    Cote:Byte;
    Fpos: TPoint;
    procedure Setpos(const Value: TPoint);
  public
    { Public declarations }
    property pos:TPoint read Fpos write Setpos;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Setpos(const Value: TPoint);
begin
  Fpos := Value;
end;

procedure TForm1.PanelMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  If (Button=MbLeft) And (ssShift in Shift) Then
  Begin
    Cote:=1;
    pos := Point(x,y);
  end;
end;

procedure TForm1.PanelMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  if (Sender is TPanel) then
  Begin
//    TPanel(Sender).Cursor:=CrDefault;
    if (ssShift in shift) then
    Begin
      Tpanel(Sender).Cursor := crSizeAll;
      if (Cote = 1) then
      Begin
        TPanel(Sender).Left := TPanel(Sender).Left + X - pos.X;
        TPanel(Sender).Top := TPanel(Sender).Top + Y - pos.y;
      end;
    end;
  end;
  Shift := [];
end;

procedure TForm1.PanelMouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  Cote:=0;
  TPanel(Sender).Cursor:=CrDefault;
end;

end.

Voici la visu du Form1

Mon probleme.

si vous deplacer un panel (SHIFT + CLIQUE GAUCHE) certain passe en dessous d'autre au dessus des autres.

Comment faire pour obliger le composant que je déplace, à passer toujours au-dessus du composant qu'il survol ???

J'espere avoir bien expliquer mon probleme.

vendredi 26 septembre 2008 à 15:57:11 | Re : Composant en avant plan

RURUInc

Réponse acceptée !
Laisser tomber j'ai trouvé.

BrinkToFront;

Mdr...
vendredi 26 septembre 2008 à 22:05:05 | Re : Composant en avant plan

Nicolas___

je dirais même plus : BringToFront pour ceux que ca interresse !

Nico


Cette discussion est classée dans : end, sender, procedure, shift, tpanel


Répondre à ce message

Sujets en rapport avec ce message

TNotifyEvent [ par apz ] Salut, en executant ce code j'ai eu le code d'ereur suivant : Types incompatibles : 'TnotifyEvent' et 'procedure, untyped pointer or untyped parameter "Incompatible types :''Cardinal' and 'String' " [ par Don0Choa ] Bonjour, je fais un petit prog permettant de fair des boite de dialogue en séléctionnant les bouttons, icones etc...Mais voila j'ai une erreur comem d pb a creer un exe avec la principal form invisible [ par Winniez ] J'ai voulu au demarrage de exe afficher une autre form que la form principal. a l'execution sa me met une erreur, apres g mis le meme code dans un bou Récupérer les données de zones Edit d'une autre appli [ par Prog59 ] Bonjour,J'ai une appli qui contient des Edit et je voudrai récupérer les données des Edit dans un fichier txt.J'ai repris le prg de DelphiProg concern probleme avec sockets [ par PsyClown44 ] Salut!J'ai un prob avec le composant TClientSocket : je n'arrive pas a recevoir de paquets lors d'une connexion!Voila le code:unit Unit1;interfaceuses Newbie & TCPI/IP [ par Megafan ] Bonjour je suis complétement débutant en delphi, par contre je suis pas mauvais en VB.Pourquoi je change allez vous dire ?Parce que VB ne tourne pas s Réccupérer des données sur un autre Unit [ par m_cyril1 ] J'ai fait un petit programme, celui-ci mémorise des chiffres entier sur une première form et sur la deuxième le résultat de la somme des chiffres s'af Application ne fonctionnant que sur le PC où je développe. [ par blood01 ] Bonjour à tous,Je suis en train de développer un logiciel permettant d'envoyer des données dans EXCEL. Apres traitement, je récupère les résultats et Erreur de type asynchrone [ par Francky23012301 ] Salut à tous,j'ai voulu faire un petit test de transfert de fichiers transfert client->serveur :La connection du client au serveur s'effectue correcte probleme de click entre un temps [ par maxioutils ] Voila le code presque complet :unit Unit6; interface uses  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,  Dialogs, StdCtr


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,296 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales