begin process at 2010 03 17 04:48:38
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Composants

 > CREATION ET GESTION DYNAMIQUE D'UN COMPOSANT TSHAPE

CREATION ET GESTION DYNAMIQUE D'UN COMPOSANT TSHAPE


 Information sur la source

Note :
Aucune note
Catégorie :Composants Classé sous :creation, composant, shape Niveau :Débutant Date de création :09/11/2008 Date de mise à jour :09/11/2008 18:28:02 Vu / téléchargé :1 779 / 188

Auteur : lord948

Ecrire un message privé
Commentaire sur cette source (7)
Ajouter un commentaire et/ou une note

 Description

Bonjour a tous,
Voila c'est mon premier code que je poste, ce sont quelques idées que j'ai eu pour un projet qui n'a pas abouti.
Pour résumer, la création et la destruction d'un multitude d'objet TShape tout en permettant la modification de ces propriétés.
  



 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !
  • Main.dfmTélécharger ce fichier [Réservé aux membres club]1 737 octets
  • Main.pasTélécharger ce fichier [Réservé aux membres club]Voir ce fichier4 707 octets
  • Project1.dprTélécharger ce fichier [Réservé aux membres club]Voir ce fichier360 octets
  • Project1.dprojTélécharger ce fichier [Réservé aux membres club]3 143 octets
  • Project1.dproj.localTélécharger ce fichier [Réservé aux membres club]1 206 octets
  • Project1.identcacheTélécharger ce fichier [Réservé aux membres club]270 octets
  • Project1.resTélécharger ce fichier [Réservé aux membres club]5 280 octets
  • Propr.dfmTélécharger ce fichier [Réservé aux membres club]4 983 octets
  • Propr.pasTélécharger ce fichier [Réservé aux membres club]Voir ce fichier3 091 octets

Télécharger le zip


 Sources du même auteur

Source avec Zip INTÉGRER UN TDBLOOKUPCOMBOBOX DANS TSTRINGGRID

 Sources de la même categorie

Source avec Zip COMPOSANT THORLOGE par Michel34
Source avec Zip COMMANDS MANAGER - BESOIN DE COMMANDES DANS VOS PROGRAMMES T... par f0xi
Source avec Zip Source avec une capture COMPOSANT TZSIMAGE par ThWilliam
Source avec Zip Source avec une capture UTILISER LES COMPOSANTS PAR LEURS NUMÉROS par Dany3
Source avec Zip Source avec une capture TQGRID UN STRINGGRID AMÉLIORER. par yanb

 Sources en rapport avec celle ci

Source avec Zip COMPOSANT THORLOGE par Michel34
Source avec Zip Source avec une capture UTILISER LES COMPOSANTS PAR LEURS NUMÉROS par Dany3
Source avec Zip Source avec une capture TQGRID UN STRINGGRID AMÉLIORER. par yanb
Source avec Zip Source avec une capture GESTION DES "CRASHS D'APPLICATION" par Bacterius
Source avec Zip CREATION DYNAMIQUE DE CONTROLES par Icebird

Commentaires et avis

Commentaire de JulioDelphi le 10/11/2008 11:02:39 administrateur CS

Salut !
Source sans grand intérêt mais qui peut etre sympa si tout est bien géré. Pas mal de personnes se posent des questions sur la création dynamique.
Je n'ai pas encore testé, juste lu le code en travers et je vois un peu trop de procedures identiques, on peut simplifier tout ça à mon avis :]
Je regarde ce soir, bon courage.

Commentaire de JulioDelphi le 10/11/2008 20:47:49 administrateur CS

Main.pas :
----------
1) Renommer TOUS les composants afin de savoir à quoi sert le Button1 ou le RadioButton2 ...
2) Réindentation du code.
3) Modification des 'cast' ex: (Source as TShape).Machin -> TShape(Source).Machin
4) Suppression du OnFormResize qui est inutile car les propriétés "Anchors" des composants servent à ça.
5) Modification de ... :
    case Shape1.Shape of
    stCircle: ComboBox1.ItemIndex := 0;
    stEllipse: ComboBox1.ItemIndex := 1;
    stRectangle: ComboBox1.ItemIndex := 2;
    stRoundRect: ComboBox1.ItemIndex := 3;
    stRoundSquare: ComboBox1.ItemIndex := 4;
    stSquare: ComboBox1.ItemIndex := 5
    end;
--> ... en une seule ligne :
    cb_Shape.ItemIndex := Ord(ShapeDemo.Shape); // Ord() : ordinal d'un type énuméré par exemple.
Pour cela, j'ai dû retrier le contenu de la ComboBox dans le même ordre que le type énuméré.
6) Ajout d'un petite vérif : "if (Objet is TShape) then"

Propr.pas :
-----------
1) Renommer TOUS les composants
2) Modification de ... :
  case ComboBox1.ItemIndex of
  0:Shape1.Shape := stCircle;
  1:Shape1.Shape := stEllipse;
  2:Shape1.Shape := stRectangle;
  3:Shape1.Shape := stRoundRect;
  4:Shape1.Shape := stRoundSquare;
  5:Shape1.Shape := stSquare
  end
--> ... en une seule ligne :
  ShapeDemo.Shape := TShapeType(cb_Shape.ItemIndex);
Hop, un cast avec le type énuméré !
3) Modification de :
procedure TPagesDlg.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  if (Edit1.GetTextLen > 0) and (not (key in [#8,'0'..'9'])) then key:=#0
end;

procedure TPagesDlg.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
  if (Edit1.GetTextLen > 0) and (not (key in [#8,'0'..'9'])) then key:=#0
end;

procedure TPagesDlg.Edit3KeyPress(Sender: TObject; var Key: Char);
begin
  if (Edit1.GetTextLen > 0) and (not (key in [#8,'0'..'9'])) then key:=#0
end;

procedure TPagesDlg.Edit4KeyPress(Sender: TObject; var Key: Char);
begin
  if (Edit1.GetTextLen > 0) and (not (key in [#8,'0'..'9'])) then key:=#0
end;

Déjà il y a une erreur de copié/collé car tu vérifie toujours "Edit1.GetTextLen", puis quand tu fais 4 procédure identiques, tu ne trouves pas ça un peu inutile ?
Voici une seule ligne :
  if (TEdit(Sender).GetTextLen > 0) and (not (key in [#8,'0'..'9'])) then key:=#0
Tu mets cette procédure pour les 4 TEdit ! Le sender s'occupe du reste.
4) Supression des 2 RadioButton dont tu détournais l'utilisation pour ajouter des ColorBox. Code :
  if Sender=color_Fond then
       ShapeDemo.Brush.Color := color_Fond.Selected
  else ShapeDemo.Pen.Color := color_Contour.Selected;
5) Suppression du Close; dans la procedure du bouton OK, tu es en ShowModal et ton bouton retourne le code mrOK ! A quoi sert le close !?
6) Ajout d'une petite touche perso : une case a cocher pour mettre le shape en pointillé, Code :

procedure TFormPagesDlg.chk_dottedClick(Sender: TObject);
const Styles: array[Boolean] of TPenStyle = (psSolid, psDot);
begin
  ShapeDemo.Pen.Style:= Styles[chk_dotted.Checked]
end;

J'ai aussi modifié les DFM, pour réorganiser un peu, renommer, etc etc
Qu'en penses tu ?

Commentaire de JulioDelphi le 10/11/2008 20:48:48 administrateur CS

ps : lien vers mon .zip :
http://diabloporc.free.fr/delphi/lord948.zip garantie sans virus :]

Commentaire de Bacterius le 10/11/2008 23:37:49

Lol JulioDelphi :

"http://diabloporc.free.fr/delphi/lord948.zip garantie sans virus :]"

Le petit sourire à la fin n'est pas fait pour renforcer l'idée de ta phrase ^^
Je veux dire on va se douter d'un truc là ...

:]

Cordialement, Bacterius !

Commentaire de lord948 le 11/11/2008 10:19:54

Merci beaucoup pour m'avoir accordé autant de temps a corrigé mes bourdes, et puis rien a dire , j'espère au moyen qu'un jour je pourrai rivalisé avec sa

Commentaire de offlake le 14/11/2008 11:12:25

Revaliser sans doute pas!!
By Offlake

Commentaire de lord948 le 19/11/2008 14:01:23

(Offlake)
désolé mais je ne voit pas l'utilité de ton commentaire.
merci de préciser

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Shape et 3D [ par lapucedu88 ] Bonjour je cherche comment donner un aspect 3D à un composant de type Shape (si sela est possible bien sûr).En fait, pour être pré Creation d'un composant ayant comme propriété un autre composant [ par guiguitt ] Bonjour,J'ai un petit problème... Voila Je veux créer un composant dérivé de TEdit qui propose au programmeur une propriété de Type TCollection. Ainsi creation de composant a l'execution [ par canabice01 ] salut tout le monde voilàj'ai arriver a créer un seul composant : private { Déclarations privées } MonButton:TButton; implementation procedure Creation d'un composant [ par Wolf007 ] Bonjour a tous. Voila mon probleme, je voudrai ajouter à un TEdit la propriete transparent comme celle d'un Label. Je sais qu'il faut créer un composa Creation d'un composant [ par Wolf007 ] Bonjour a tous. Voila mon probleme, je voudrai ajouter à un TEdit la propriete transparent comme celle d'un Label. Je sais qu'il faut créer un composa Composant shape translucide (alpha) [ par orelien ] Bonjour,Je cherche à rendre un composant shape translucide sous Delphi 5 (propriété alpha sous Delphi 6)Si quelqu'un à une idée.MerciOrélien. creation de composant [ par barbulille ] quand je crée un composant, ca se passe bien, il s'installe mais quand je le pose sur une fiche, au lieu de me mettre l'icone( celle par defaut) il me creation dynamique de composant [ par MoveX ] comment cree t on des composants de maniere dynamique?j avais vu une source ou aucun composant netait pose sur la form mais a lexecution on creait un composant serveur http [ par MoveX ] voila, si quelqu un pouvait me dire un composant pour creer un serveur http assez simple de preference, ce serait gentil de m indiquer, et si possible HDC ==> Qu'est-ce que c'est? [ par Citron_vert ] Je voudrais faire un programme utilisant une webcam. J'ai trouvé un composant bien pratique sur le site, TCamera.Ce composant permet de prendre une ph


Nos sponsors


Sondage...

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
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 : 1,076 sec (4)

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