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 VCL Delphi Discussion :

Composant pour personnalier une Form


Sujet :

Composants VCL Delphi

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    octobre 2005
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : octobre 2005
    Messages : 52
    Points : 61
    Points
    61
    Par défaut Composant pour personnalier une Form
    Salut à tous,

    Je recherche une librairie de composants permettant d'avoir une Form personnalisable d'un point de vue de la forme. Genre on a une Form rectangulaire on sélectionne un angle. En le tirant on obtient un pentagone. Le but est d'obtenir une Form vraiment quelconque. Il existe différentes librairies pour avoir des Forms personnalisées mais je ne sais pas s'il en existe ou on puisse faire ce que je recherche.

    Alors si vous en connaissez je suis preneur

    Merci et A+

  2. #2
    Rédacteur
    Avatar de evarisnea
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    juin 2005
    Messages
    1 957
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Transports

    Informations forums :
    Inscription : juin 2005
    Messages : 1 957
    Points : 4 381
    Points
    4 381
    Par défaut
    salut,
    tu peux essayer avec les composants de la JVCL mais pour obtenir mle fonctionnement que tu veux je pense aue tu vas devoir coder un peu ...

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    octobre 2005
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : octobre 2005
    Messages : 52
    Points : 61
    Points
    61
    Par défaut
    Oui mais non je veux sans coder moi . Car vu le projet que j'ai en tete il va falloir que je fasse plein de calculs : et cas pas envie du tout. Au fait 2+2 ca fait bien 3 ?

  4. #4
    Membre expert
    Avatar de aityahia
    Homme Profil pro
    EURL CIEPTAL CARS
    Inscrit en
    mars 2006
    Messages
    1 933
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Algérie

    Informations professionnelles :
    Activité : EURL CIEPTAL CARS
    Secteur : Transports

    Informations forums :
    Inscription : mars 2006
    Messages : 1 933
    Points : 3 315
    Points
    3 315
    Par défaut
    voici un freeware qui pourra vous aider pour Delphi 5


    http://www.delphipages.com/edit/count.cfm?ID=1821

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    octobre 2005
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : octobre 2005
    Messages : 52
    Points : 61
    Points
    61
    Par défaut
    Merci,

    Le petit programme : il s'agit d'une form rectangulaire classique avec un memo dedans. Qd on clique sur un bouton qui est dessus la form change de couleur : .

    C'est pas du tout ce que je cherchais . Moi je souhaites une fiche vierge dont je peux modifier l'apparence géométrique par exemple faire un octadecone.

    Merci quand meme pour le coup de main

  6. #6
    Membre éclairé
    Avatar de denokan
    Homme Profil pro
    Développeur Web
    Inscrit en
    mars 2002
    Messages
    434
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : mars 2002
    Messages : 434
    Points : 746
    Points
    746
    Par défaut
    http://www.torry.net/pages.php?id=94 [FONT=Arial]FormRgn v.21.06.99[/FONT]
    [FONT=Arial]ce composant doit correspondre à ce que tu cherches, je l'avais déjà pas mal utilisé, il est vraiment très bien fait, mais il est prévu pour delphi 5. dans tous les cas tu peux déjà regarder les exemples fournit[/FONT]
    Donnez un poisson à un homme et il mangera pendant un jour... Apprenez-lui à pêcher et il s'assiéra dans une barque et boira de la bière toute la journée

  7. #7
    Membre expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 50
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : juin 2004
    Messages : 2 932
    Points : 3 504
    Points
    3 504
    Par défaut
    heuuuuu :

    - D'abord La FAQ :
    Comment personnaliser la forme de sa fiche ?

    -Ensuite de la géométrie :
    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    unit Unit2;
     
    interface
    uses Windows,Forms,Graphics,Types;
     
    procedure Fenetre_Polygone(AForm:TForm;AngleDebut:integer;NbreCotes:integer);
    procedure Fenetre_Etoile(AForm:TForm;AngleDebut:integer;NbreBranches,TailleBranche:integer);
    procedure Fenetre_Ellipse(AForm:TForm);
    procedure Fenetre_CoinsArrondis(AForm:TForm;RayonHorizontal,RayonVertical:integer);
     
    implementation
    procedure Fenetre_Polygone(AForm:TForm;AngleDebut:integer;NbreCotes:integer);
    var
      hRegion: HRGN;
      Poly: array of TPoint;
      Centre:TPoint;
      Angle:Real;
      i:Integer;
      x,y: Integer;
      RayonX,RayonY:Integer;
    begin
      SetLength(Poly,NbreCotes);
      RayonY:=AForm.Height div 2;
      rayonX:=AForm.Width div 2;
      Centre:=Point(AForm.Width div 2,AForm.Height div 2);
      //Calcul du polygone
      i:=0;
      Angle:=0;
      for i:=0 to NbreCotes-1 do
      begin
        Angle:=i*2*PI/NbreCotes+AngleDebut*PI/180;
        x:=Centre.X+round(RayonX*cos(Angle));
        y:=Centre.Y+round(RayonY*sin(Angle));
        Poly[i]:=Point(x,y);
      end;
      //Creation de la forme
      hRegion := CreatePolygonRgn(Poly[0], NbreCotes, WINDING);
      SetWindowRgn(AForm.Handle, hRegion, True);
    end;
     
    procedure Fenetre_Etoile(AForm:TForm;AngleDebut:integer;NbreBranches,TailleBranche:integer);
    var
      hRegion: HRGN;
      Poly: array of TPoint;
      Centre:TPoint;
      Angle:Real;
      i:Integer;
      x,y: Integer;
      RayonX,RayonY:Integer;
    begin
      SetLength(Poly,NbreBranches*2);
      RayonY:=AForm.Height div 2;
      rayonX:=AForm.Width div 2;
      Centre:=Point(AForm.Width div 2,AForm.Height div 2);
      //Calcul du polygone
      i:=0;
      Angle:=0;
      for i:=0 to (NbreBranches*2)-1 do
      begin
        Angle:=i*2*PI/(NbreBranches*2);//+AngleDebut*PI/180;
        if Odd(i) then
        begin
          x:=Centre.X+round(RayonX*(100-TailleBranche)*cos(Angle)/100);
          y:=Centre.Y+round(RayonY*(100-TailleBranche)*sin(Angle)/100);
        end else
        begin
          x:=Centre.X+round(RayonX*cos(Angle));
          y:=Centre.Y+round(RayonY*sin(Angle));
        end;
        Poly[i]:=Point(x,y);
      end;
      //Creation de la forme
      hRegion := CreatePolygonRgn(Poly[0], NbreBranches*2, WINDING);
      SetWindowRgn(AForm.Handle, hRegion, True);
    end;
     
    procedure Fenetre_Ellipse(AForm:TForm);
    var hRegion: HRGN;
    begin
      hRegion := CreateEllipticRgn(0,0,AForm.Width,AForm.Height);
      SetWindowRgn(AForm.Handle, hRegion, True);
    end;
     
    procedure Fenetre_CoinsArrondis(AForm:TForm;RayonHorizontal,RayonVertical:integer);
    var hRegion: HRGN;
    begin
      hRegion := CreateRoundrectRgn(0,0,AForm.Width,AForm.Height,RayonHorizontal,RayonVertical);
      SetWindowRgn(AForm.Handle, hRegion, True);
    end;
     
    end.
    - Enfin le code (une fiche, 4 boutons bien au milieu de la fiche) :
    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
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      Fenetre_Etoile(Form1,90,5,50);
    end;
     
    procedure TForm1.Button2Click(Sender: TObject);
    begin
      Fenetre_Polygone(Form1,0,8);
    end;
     
    procedure TForm1.Button3Click(Sender: TObject);
    begin
      Fenetre_Ellipse(Form1);
    end;
     
    procedure TForm1.Button4Click(Sender: TObject);
    begin
      Fenetre_CoinsArrondis(Form1,100,100);
    end;
    Bidouilleuse Delphi

  8. #8
    Membre éclairé
    Avatar de denokan
    Homme Profil pro
    Développeur Web
    Inscrit en
    mars 2002
    Messages
    434
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : mars 2002
    Messages : 434
    Points : 746
    Points
    746
    Par défaut
    en fait il existe des composants qui acceptent une image en entrée, puis génèrent grâce à cette image un tableau de points, et enfin utilisent ce tableau de point pour créer une région, et l'utiliser dans SetWindowRgn... le prob c'est que tous les composants que j'ai essayé fonctionnaient sur delphi5, et je n'en trouve aucun compatible avec les verions suivantes
    Donnez un poisson à un homme et il mangera pendant un jour... Apprenez-lui à pêcher et il s'assiéra dans une barque et boira de la bière toute la journée

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    octobre 2005
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : octobre 2005
    Messages : 52
    Points : 61
    Points
    61
    Par défaut
    Le composant qui cache la form principale me conviendrait malheureusement j'ai D7 donc pas utilisable.

    Merci pour le code : mais pour faire une couronne avec des sortes de flammes ben il va falloir la trouver l'expression mathématique et puis bonjour pour coder apres. Lol

    Merci à vous

  10. #10
    Membre expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 50
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : juin 2004
    Messages : 2 932
    Points : 3 504
    Points
    3 504
    Par défaut
    Citation Envoyé par francky23012301
    Le composant qui cache la form principale me conviendrait malheureusement j'ai D7 donc pas utilisable.

    Merci pour le code : mais pour faire une couronne avec des sortes de flammes ben il va falloir la trouver l'expression mathématique et puis bonjour pour coder apres. Lol

    Merci à vous
    Ben si, ta couronne, c'est une étoile... à beaucoup de branches (40 par exemple).
    Pour TailleBranche tu mets 10 (pour 10%) parce que Taillebranche est en % (j'avais oublié de le dire... ).

    Après, si tu veux des flammes un peu "tordues", c'est presque pareil mais beaucoup plus compliqué (il faut d'abord creer un path et "dessiner" des Courbes de Bezier, puis creer la région à partir de ce path)

    As-tu un croquis à nous montrer sur la forme que tu désires donner à ta fiche ?
    Bidouilleuse Delphi

  11. #11
    Membre éclairé
    Avatar de denokan
    Homme Profil pro
    Développeur Web
    Inscrit en
    mars 2002
    Messages
    434
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : mars 2002
    Messages : 434
    Points : 746
    Points
    746
    Par défaut
    http://www.torry.net/pages.php?id=94 FormRgn v.21.06.99

    après quelques essais de plus, et avec l'aide de ce tuto http://delphicool.developpez.com/tut/cpt_compo_vers_D6/ j'ai réussi à faire une form avec la forme souhaitée, de manière très simple... même s'il faut un peu galérer pour installer le compo. installe le compo et corrige le en fonction des indications du tuto, consulte les fichiers d'aide fournis avec le composant, tu devrai y arriver
    Donnez un poisson à un homme et il mangera pendant un jour... Apprenez-lui à pêcher et il s'assiéra dans une barque et boira de la bière toute la journée

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    octobre 2005
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : octobre 2005
    Messages : 52
    Points : 61
    Points
    61
    Par défaut
    Re

    Pour la courbe de Bezier on va attendre l'année prochaine hein . Par contre je vais modifier le composant pour le rendre compilable sous D7

  13. #13
    Membre éclairé
    Avatar de denokan
    Homme Profil pro
    Développeur Web
    Inscrit en
    mars 2002
    Messages
    434
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : mars 2002
    Messages : 434
    Points : 746
    Points
    746
    Par défaut
    ça y est j'ai remis la main sur le compo que j'utilisais, mais il est assez vieux et à priori ne gère pas beaucoup de formats d'image, mais je l'avais trouvé très bien fait.
    cf pièce jointe
    Fichiers attachés Fichiers attachés
    Donnez un poisson à un homme et il mangera pendant un jour... Apprenez-lui à pêcher et il s'assiéra dans une barque et boira de la bière toute la journée

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

Discussions similaires

  1. [VB.NET] Clic sur un bouton pour afficher une form existante
    Par beegees dans le forum Windows Forms
    Réponses: 2
    Dernier message: 09/06/2006, 10h31
  2. [Image] Algorithme pour déterminer une forme continue
    Par wizzmasta dans le forum Algorithmes et structures de données
    Réponses: 1
    Dernier message: 25/04/2006, 15h56
  3. Quel composant pour développer une application de planning ?
    Par Wilco dans le forum Composants VCL
    Réponses: 7
    Dernier message: 19/02/2006, 13h12
  4. Superposition de composant pour faire une image
    Par spikto dans le forum Composants VCL
    Réponses: 14
    Dernier message: 31/12/2005, 15h18
  5. Comment faire pour qu'une Form reste en avant-plan?
    Par Bodom-Child dans le forum C++Builder
    Réponses: 3
    Dernier message: 25/08/2005, 10h28

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