IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants FMX Delphi Discussion :

ou [OSX] Drag and drop d'une forme [Windows]


Sujet :

Composants FMX Delphi

  1. #1
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 042
    Points : 40 955
    Points
    40 955
    Billets dans le blog
    62
    Par défaut ou [OSX] Drag and drop d'une forme
    Bonjour,

    Cela ne fait pas doublon avec d'autres discussions que j'ai pu lire en particulier ici

    L'explication en image
    Nom : FMXDock_2.PNG
Affichages : 161
Taille : 23,9 Ko
    je voudrais me passer du bouton "attache" en utilisant une opération de glisser-déposer sur le TTabControl
    Mais voilà jusqu'à présent des objets d'une forme à l'intérieur d'un autre objet de cette même forme ont été discutés mais pas ce cas. J'ai fait diverses tentatives sans succès.

    Je joint le zip si quelqu'un veut jouer avec et me trouver une solution je suis preneur
    Fichiers attachés Fichiers attachés
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 042
    Points : 40 955
    Points
    40 955
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    pour faire avancer le schmilblick j'ai rajouté une procédure pour la fiche enfant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    procedure TFormColor.FormMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Single);
    var  ABitmap : TBitmap;
           D: TDragObject; 
    begin
    if Docked then Exit; // déjà ancrée  
    ABitmap:=TBitmap.Create;
    try
      ABitmap.SetSize(40,40);
      ABitmap.Clear(FColor);
      D.Source:=Self;
      if TPlatformServices.Current.SupportsPlatformService(IFMXDragDropService,
                                                           IInterface(DDService))
      then DDService.BeginDragDrop(FormPrincipale, D, FMX.Graphics.TBitmap(ABitmap));
    finally
     ABitmap.Free;
    end;
    end;
    Problèmes à résoudre :
    - procedure BeginDragDrop(AForm: TCommonCustomForm; const Data: TDragObject; ABitmap: TBitmap); que mettre comme paramètres ? dans tout les sources que j'ai pu voir AForm = Self et non une autre forme, pour Data Ok , Abitmap : Ok
    - le service démarre correctement mais plante le programme dés que le drag sort de la forme enfant !
    allez, je me fend d'un toute petite nouvelle sur la version RIO : ce bug (ce devait en être un) est corrigé
    Merci de m'avoir lu

    P.S. DDService: IFMXDragDropService; a été mis dans la liste de variables publiques de la forme au cas où ....
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  3. #3
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 042
    Points : 40 955
    Points
    40 955
    Billets dans le blog
    62
    Par défaut Question subsidiaire
    Re,

    Je voulais vérifier que mon drag-drop fonctionnait à l'intérieur de la forme, on ne sait jamais !
    j'ai donc ajouter un rectangle blanc dans la forme enfant, un petit bouton (poubelle) pour le réinitialiser à blanc et un label pour vérifier le code couleur.
    Puis j'ai programmé les différents évènements de drag-drop de ce rectangle2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    procedure TFormColor.Rectangle2DragDrop(Sender: TObject;
      const Data: TDragObject; const Point: TPointF);
    begin
     if (Data.Source<>Nil) AND data.Source.ClassNameIs('TFormColor')
      then begin
          Rectangle2.Fill.Color:= RectColor;
          Label1.Text:=IntToHex(RectColor,8);
      end;
    end;
     
    procedure TFormColor.Rectangle2DragOver(Sender: TObject;
      const Data: TDragObject; const Point: TPointF; var Operation: TDragOperation);
    begin
    if (Data.Source<>Nil) AND data.Source.ClassNameIs('TFormColor')
      then Operation:=TDragOperation.Move
      else Operation:=TDragOperation.None;
    end;
     
    procedure TFormColor.SpeedButton1Click(Sender: TObject);
    begin
    Rectangle2.Fill.Color:=TAlphaColors.White;
    Label1.Text:=IntToHex(Rectangle2.Fill.Color,8);
    end;
    surpises à l'éxecution
    Nom : subsidiaire.PNG
Affichages : 133
Taille : 10,7 Ko
    le dragdrop fonctionne mais vous ne trouvez pas qu'il y a une différence de couleur (fenêtre gauche) ?
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  4. #4
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 858
    Points : 11 301
    Points
    11 301
    Billets dans le blog
    6
    Par défaut
    N'y a-t-il pas un chouïa de transparence à la base de l'explication ?
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  5. #5
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 042
    Points : 40 955
    Points
    40 955
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    Aucune transparence , du moins pas de mon fait ! ce sont deux rectangles (le conteneur comme le contenu) avec une opacité = 1
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  6. #6
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 042
    Points : 40 955
    Points
    40 955
    Billets dans le blog
    62
    Par défaut
    Re,
    Excepté la petite question subsidiaire, c'est résolu, je vous ait fait plancher pour rien il s'agit très certainement d'un bug de la version 10.2.3 (à vérifier s'il s'agissait d'une récession ?, j'ai peut-être mal cherché)
    voici une démo avec Carnival (bêta version de Rio 10.3)
    https://serge-girard.developpez.com/...gDragDrop.webm
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Drag and drop sur une PictureBox
    Par abdiouldbody dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 17/06/2009, 15h55
  2. drag and drop sur une listBox?
    Par Mickey.jet dans le forum Delphi
    Réponses: 3
    Dernier message: 30/09/2006, 10h27
  3. [VB.NET]Drag and Drop dans une Listview
    Par gégécap dans le forum Windows Forms
    Réponses: 5
    Dernier message: 23/08/2006, 18h41
  4. Drag and Drop sur une JTree
    Par Xhéras dans le forum Composants
    Réponses: 5
    Dernier message: 07/07/2006, 12h09
  5. Drag and drop d'une structure avec virtualtreeview
    Par laudur dans le forum Composants VCL
    Réponses: 1
    Dernier message: 03/05/2006, 16h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo