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

 Delphi Discussion :

TDialogColor garde la main


Sujet :

Delphi

  1. #1
    Membre régulier
    Inscrit en
    Mars 2007
    Messages
    202
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 202
    Points : 91
    Points
    91
    Par défaut TDialogColor garde la main
    Bonjour,

    Ma question concerne plus spécifiquement un composant TDialogColor, mais ce serait pareil pour une autre sorte de composant TDialog...
    Sur Form1, il y a donc un TDialogColor ainsi que d'autres composants (TButton, TEdit, etc.)
    Lorsque le composant TDialogColor est en cours d'execution, ce composant a la main. Les autres composants ne peuvent plus être utilisés tant que l'on a pas fermé TDialogColor.
    Bon, c'est normal : C'est ce à quoi on s'attendait.
    Ma question est de savoir s'il y a moyen de supprimer ce privilège, de telle sorte que l'on puisse continuer à travailler avec Form1 et ses composants, tout en conservant TDialogColor ouverte ? (alors qu'actuellement ce n'est possible que si TDialogColor est fermé)

  2. #2
    Membre éprouvé Avatar de BuzzLeclaire
    Homme Profil pro
    Dev/For/Vte/Ass
    Inscrit en
    Août 2008
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev/For/Vte/Ass

    Informations forums :
    Inscription : Août 2008
    Messages : 1 606
    Points : 1 113
    Points
    1 113
    Par défaut
    Citation Envoyé par JJJJJ Voir le message
    Bonjour,

    Ma question concerne plus spécifiquement un composant TDialogColor, mais ce serait pareil pour une autre sorte de composant TDialog...
    Sur Form1, il y a donc un TDialogColor ainsi que d'autres composants (TButton, TEdit, etc.)
    Lorsque le composant TDialogColor est en cours d'execution, ce composant a la main. Les autres composants ne peuvent plus être utilisés tant que l'on a pas fermé TDialogColor.
    Bon, c'est normal : C'est ce à quoi on s'attendait.
    Ma question est de savoir s'il y a moyen de supprimer ce privilège, de telle sorte que l'on puisse continuer à travailler avec Form1 et ses composants, tout en conservant TDialogColor ouverte ? (alors qu'actuellement ce n'est possible que si TDialogColor est fermé)
    Salut,

    Tu pourrais créer une form qui contiendrais ce dont tu as besoin/

    Ensuite un simple Hide et Show pour faire apparaitre la fenetre quand tu voudra et ne bloquera pas l'appli.

    Biensur à toi de gérer à quel moment il faut show ou hide.

    Bye.

  3. #3
    Membre régulier
    Inscrit en
    Mars 2007
    Messages
    202
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 202
    Points : 91
    Points
    91
    Par défaut
    Tu pourrais créer une form qui contiendrais ce dont tu as besoin
    Oui, bien sûr, on est d'accord sur le principe, en théorie.
    Mais en pratique, créer l'équivalent d'une boite de dialogue avec de telles fonctionnalités que celles de TDialogColor, avec les palettes de couleurs, les choix de luminosité etc. se serait un travail gigantesque et sans intérêt puisque c'est disponible et gratuit avec TDialogColor (et qui plus est, pour un nombre de Ko imbattable)
    Merci quand même d'avoir répondu pour donner une idée.
    Pour que ce soit viable de cette façon, il faudrait avoir le code de ce composant et pouvoir le trafiquer un peu.
    Mais il y a peut être une fonction window toute faite qui enlève la main au composant sans avoir besoin de le fermer ?

  4. #4
    Membre chevronné

    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2009
    Messages : 935
    Points : 1 765
    Points
    1 765
    Par défaut
    Salut

    Je sais pas si ca peut t'être utile mais on sait jamais.

    Je me souviens, quand j'essayais de configurer le TaskDialog de Vista, que si on ne donnait pas de Handle parent a l'API du TaskDialog, le TaskDialog n'était pas modal ...

    Donc, peut être essaye de trouver l'API du DialogColor, et appele la sans lui donner de Handle. Par contre, c'est pas sur que tout fonctionne comme tu veux, a toi de tester ...

    En espérant t'avoir aidé,

    Bonne chance

    Mick605

  5. #5
    Membre régulier
    Inscrit en
    Mars 2007
    Messages
    202
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 202
    Points : 91
    Points
    91
    Par défaut
    Merci mic605 pour ta suggestion :
    Donc, peut être essaye de trouver l'API du DialogColor, et appele la sans lui donner de Handle.
    J'ai essayé en vain. Normalement je fais l'appel par un ".execute" ; Jusqu'à présent, je n'ai pas trouvé le moyen de faire autrement.

  6. #6
    Membre confirmé
    Homme Profil pro
    Santé
    Inscrit en
    Septembre 2010
    Messages
    290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Santé
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2010
    Messages : 290
    Points : 534
    Points
    534
    Par défaut
    Salut,

    Regarde du côté des cadres (TFrame) :

    TFrame est un conteneur de composants; il peut être imbriqué dans des fiches ou dans d'autres cadres.
    Un TColorDialog dans un cadre fera l'affaire je pense.

  7. #7
    Membre chevronné

    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2009
    Messages : 935
    Points : 1 765
    Points
    1 765
    Par défaut
    Citation Envoyé par JJJJJ Voir le message
    Merci mic605 pour ta suggestion :
    J'ai essayé en vain. Normalement je fais l'appel par un ".execute" ; Jusqu'à présent, je n'ai pas trouvé le moyen de faire autrement.
    En fait, il ne faudrait pas te servir du composant TColorDialog, mais le creer toi même en utilisant les APIs windows (http://msdn.microsoft.com/en-us/libr...(v=VS.90).aspx).

    Mais je suis pas sur que ce que tu veux faire soit possible. En effet, la couleur est retournée seulement a la fermeture du dialog. Donc, tant que tu n'a pas validé de couleur, je pense que tu n'as pas acces a la couleur sélectionnée.

    Bonne chance

    Mick605

  8. #8
    Membre régulier
    Inscrit en
    Mars 2007
    Messages
    202
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 202
    Points : 91
    Points
    91
    Par défaut
    Bonjour,

    @ mick605 :
    En fait, il ne faudrait pas te servir du composant TColorDialog, mais le creer toi même en utilisant les APIs windows
    Ca dépasse mes compétences pour que je puisse le faire.

    @ caribensila :
    Regarde du côté des cadres (TFrame) :
    Un TColorDialog dans un cadre fera l'affaire je pense.
    Je n'ai pas de Tframe dans mon vieux Dephi 4 (en tout cas, je n'en jamais vu ).

    Merci à vous deux, mais comme vous voyez, mes moyens étant très limités de tous les cotés, je crains qu'il n'y ait peu d'espoir.

  9. #9
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 420
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 420
    Points : 1 325
    Points
    1 325
    Par défaut
    Bonjour à toutes et à tous,

    é 5xJ, dans quel but as tu besoin d'un TColorDialog, pour mettre une couleur sur un autre composant ?

    Si oui tu peux peut-être aussi utiliser sur form2 un TColorGrid avec les couleurs de bases dans ce cas panel1 est en couleur noire (1ère couleur).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    procedure TForm1.Button1Click(Sender: TObject);
    begin
    form2.show ;
    end;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    procedure TForm2.ColorGrid1Change(Sender: TObject);
    begin
    form1.panel1.color := ColorGrid1.ForegroundColor ;
    end;
    @+,

    Cincap

  10. #10
    Membre régulier
    Inscrit en
    Mars 2007
    Messages
    202
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 202
    Points : 91
    Points
    91
    Par défaut
    dans quel but as tu besoin d'un TColorDialog, pour mettre une couleur sur un autre composant ?
    Ce n'est pas cela du tout. Il s'agit de travail sur phtographies à grande résolution, c'est à dire des retouches au nireau du pixel.
    On doit disposer d'une palette de couleurs très étendue avec choix de la luminosité.
    Généralement, ces retouches se font avec un logiciel existant. Mais il y a toujours des cas où on ne trouve pas dans le logiciel commercial l'outil qui conviendrait exactement à ce qu'on veut faire.
    J'ai donc quelques outils "faits maison" pour compléter ce qui existe déjà. Mais, même si on n'a besoin d'eux qu'exceptionnellement, lorsqu'on fait appel à eux, cela devient vite énervant quand on doit, sans arrêt, ouvrir et fermer la même boite de dialogue pour accéder à la palette complète des couleurs.

  11. #11
    Membre chevronné

    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2009
    Messages : 935
    Points : 1 765
    Points
    1 765
    Par défaut
    Salut

    Sinon, tu peux utiliser les composants de la JVCL. En quelques clics, tu peux faire ca :



    Mick605

  12. #12
    Membre régulier
    Inscrit en
    Mars 2007
    Messages
    202
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 202
    Points : 91
    Points
    91
    Par défaut
    @ mick605 :
    En effet, c'est ce qu'il me faudrait à la place du TColorDialog, c'est à dire la palette complète et le réglage de luminosité.
    Mais comment fait-on pour récupérer ce composant ?
    J'ai cherché "JVCL" dans la FAQ Delphi sans rien trouver qui corresponde à cela.

  13. #13
    Membre chevronné

    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2009
    Messages : 935
    Points : 1 765
    Points
    1 765
    Par défaut
    Donc, va sur le site de la JVCL, ici : http://jvcl.delphi-jedi.org/

    Va sur download, et choisis une version. Il s'agit d'une énorme bibliotheque de composants. Pleins de tutos existent sur internet pour expliquer comment l'installer. Quand tu auras ces compos, ajoute un TJvFullColorPanel et un TJvFullColorTrackBar sur ta form.

    Bonne chance

  14. #14
    Membre régulier
    Inscrit en
    Mars 2007
    Messages
    202
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 202
    Points : 91
    Points
    91
    Par défaut
    Merci pour l'information, je vais aller voir ce site.

  15. #15
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 420
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 420
    Points : 1 325
    Points
    1 325
    Par défaut
    Bonjour à toutes et à tous,

    @ 5xJ, pas certain que cette Vcl existe pour D4, vu ta réponse :

    Je n'ai pas de Tframe dans mon vieux Dephi 4 (en tout cas, je n'en jamais vu ).
    Il y a d'autres Vcl :

    http://www.sourcecodeonline.com/details/color_lib.html

    @+,

    Cincap

  16. #16
    Membre régulier
    Inscrit en
    Mars 2007
    Messages
    202
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 202
    Points : 91
    Points
    91
    Par défaut
    Bonjour,

    après avoir regardé les sites indiqués, je suis arrivé à la conclusion suivante :
    J'estime que, pour récupérer les composants voulus, les installer et surtout remplacer les Tcolordialog dans les programmes existants, avec les adaptations probablement nécessaires, il faudrait y passer un temps très largement plus important que le gain de temps espéré au cours des utilisations futures, par rapport à ce qui existe.
    En un mot, le jeu n'en vaut pas la chandelle, comme on dit.
    Lorsque j'ai posé cette question, j'avais espoir qu'il suffirait de spécifier quelques options pré-existantes ou de corriger quelques lignes de code pour modifier le comportement de ces boites de dialogue comme souhaité. Manifestement il n'en est rien. Le plus sage est donc d'y renoncer et de ne pas continuer à perdre son temps sur cette question.
    Avec mes remerciements pour mick605 et cincap, qui ont donnés des références intéressantes de sites pouvant être recherchés dans d'autres circonstances et qui seront probablement être utiles à beaucoup de personnes.

Discussions similaires

  1. Ce qu'il faut sous la main.
    Par ShinMei dans le forum DirectX
    Réponses: 2
    Dernier message: 18/01/2003, 14h12
  2. [jb8][windows] main et applet
    Par ddmicrolog dans le forum JBuilder
    Réponses: 2
    Dernier message: 14/01/2003, 22h42
  3. Programme de boot qui passe la main à Windows
    Par Bob dans le forum Assembleur
    Réponses: 7
    Dernier message: 25/11/2002, 03h08
  4. Main icon (16 bits)
    Par DR dans le forum C++Builder
    Réponses: 2
    Dernier message: 02/09/2002, 08h23
  5. execl rend-elle la main?
    Par chezjm dans le forum C
    Réponses: 16
    Dernier message: 03/06/2002, 18h28

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