begin process at 2012 02 11 08:45:04
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Graphique

 > DESSINER UN RECTANGLE DE SÉLECTION AU DESSUS D'AUTRES COMPOSANTS

DESSINER UN RECTANGLE DE SÉLECTION AU DESSUS D'AUTRES COMPOSANTS


 Information sur la source

Note :
10 / 10 - par 3 personnes
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Graphique Classé sous :sélection, rectangle, dessin Niveau :Initié Date de création :08/03/2005 Vu / téléchargé :10 502 / 837

Auteur : Delphiprog

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

 Description

Cliquez pour voir la capture en taille normale
Dans le forum, Guépard a posé une question (http://www.delphifr.com/forum.v2.aspx?ID=406148) fort intéressante : comment, à l'exécution, sélectionner plusieurs composants en traçant un rectangle au-dessus et non pas en dessous (chose beaucoup plus facile à faire).


 Conclusion

Le code utilise la fonction DrawFocusRect des API par souci de simplification. Le but du demandeur est de dessiner un rectangle de couleur. Il n'y a aucune difficulté à utiliser la méthode Rectangle d'un objet Canvas en remplacement.

Je précise que ce code ne se limite pas à dessiner un rectangle mais qu'il vérifie :
- que le dessin reste dans des limites fixées (voir commentaires sur la méthode MakeRect)
- que le rectangle de sélection, qu'il soit dessiné vers la droite ou la gauche, le haut ou le bas, ajuste les coordonnées pour obtenir un rectangle dont les coordonnées sont toujours définies de la manière suivante : (coin supérieur gauche, coin inférieur droit).

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip TABLE DE CORRESPONDANCE TYPES DE DONNÉES API/PASCAL OBJET
Source avec Zip Source avec une capture GÉNÉRER DES PDF AVEC DELPHI ET PDF CREATOR
Source avec Zip Source avec une capture DESIGN PATTERN OBSERVER : IMPLÉMENTATION RÉUTILISABLE
Source avec Zip DESIGN PATTERN STRATÉGIE APPLIQUÉ AU CODE "JOURNAL DE DÉBUGG...
Source avec Zip Source avec une capture UTILISATION DU COMPOSANT TDRAWGRID

 Sources de la même categorie

Source avec Zip Source avec une capture LE CERCLE ENCHANTÉ D'ANDRES GÎT EN NOS MÉMOIRES par Caribensila
Source avec Zip Source avec une capture COMPARATIF ALGO CERCLES par barbichette
Source avec Zip Source avec une capture RAYTRACING EN DELPHI (PROGRESSIVE PATH TRACING) par Bacterius
Source avec Zip Source avec une capture TEXTE SUR COURBE DE BEZIER par pseudo3
Source avec Zip Source avec une capture YEUXROUGES par pseudo3

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture PCB DESIGN LOGICIEL DE CRÉATION DE CIRCUIT IMPRIMÉ ET ACCESS... par jfs59
Source avec Zip Source avec une capture DESSINE LES FORMES par titout2
Source avec Zip Source avec une capture [GDI+] TEXTE GRAPHIQUE AVEC CONTOUR par f0xi
Source avec Zip THE GEANTFINDER : GESTIONNAIRE DE BIBLIOTHEQUES par HAFTARIFOUAD
Source avec Zip Source avec une capture DESSINER UNE COURBE SONORE par ralebol

Commentaires et avis

Commentaire de MAURICIO le 09/03/2005 13:09:13 administrateur CS

Salut à toi DelphiProg! Je connaissais déjà DrawFocusRect( mais pas {$IfDef Debugging} dont je n' ai toujours pas compris comment il fonctionne vu que le code juste après n' est jamais executé?!

Juste une petite remarque:
on ne peut pas commencer à seleccionner si l' on clique sur l' un des panels, dommage. J' ai attribué les events OnMouseDown/OnMouseMove/OnMouseUp aux panels mais faut changer quand même quelques bricoles à cause des coordonnées de la souris qui sont celles du compo Sender...
A+

Commentaire de Delphiprog le 09/03/2005 14:00:19 administrateur CS

Bonjour Mauricio.
Le code situé juste après {$IfDef Debugging} n'est jamais exécuté puisque la directive de compilation située au début de l'unité est désactivée (un caractère "!" entre l'accolade et la définition de la directive. Je l'ai laissé volontairement pour montrer l'usage des directives de compilation.
Pour ta remarque, je suis tout à fait d'accord. Mais c'était précisément l'effet recherché.

Commentaire de MAURICIO le 09/03/2005 16:10:45 administrateur CS

Dans ce cas, merci pour cette précision.
Je vais pouvoir noter maintenant ! (bem oui, je note pas tout de suite parce qu' on ne peut changer notre note malheureusement) ...

Commentaire de MAURICIO le 09/03/2005 16:20:54 administrateur CS

Haaa, chui super deçut !!!
Non, pas de la source mais par la directive {$Define Debugging}. Je pensais que le code entre {$IfDef Debugging} et {$EndIf} s' executait si on courait le programme depuis Delphi (mode debugging quoi ...) mais non, en cliquant sur l' exe, le code s' execute aussi :(
Bref, quel est l' interêt alors qu' on aurait le même effet en creant une var de type bool comme ceci:
if varBool = true
then begin


end

Qqu' un peut m' eclairer sur les directives de compilation. Y a t' il un tuto la dessus ??? La réponse est oui mais où ?

Commentaire de Delphiprog le 09/03/2005 17:19:15 administrateur CS

Voir le tuto sur les directives de compilation : http://www.delphifr.com/code.aspx?id=11787
Il est de qui à ton avis ?

Si tu n'as qu'un seul endroit où tu dois exploiter une variable booléenne, alors oui, je suis d'accord avec toi.
Si tu en as plusieurs, alors les directives de compilation sont très utiles puisqu'il suffit de changer la valeur dans un seul endroit pour que le changement soit répercuté partout (à condition que la directive soit visible de là où on souhaite connaitre sa valeur).
C'est ainsi qu'à partir d'un même code on peut générer des versions différentes (évaluation, complète, etc) sans écrire deux fois le même code.

Dans le cas présent, j'ai défini une directive nommée Debugging mais qui n'a rien à voir avec Delphi. J'aurais pu lui donner un autre nom, ça n'aurait rien changé.

Commentaire de MAURICIO le 10/03/2005 19:06:08 administrateur CS

Ça manque d' explications !
Y a pas de zip dans la source avec le link que tu me donnes :(

J' ai bien fait [CTRL]+O+O dans un projet et il me montre les options de compilation, exact?
D' ailleurs, pourquoi un programme ne fonctionnerai pas de la même manière sur 2 postes differents, je pige pas même si j' en ai déjà fait l' expérience, surtout sur 2 versions differentes de Windows. Jte jure, là chui perdu!

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Dessin d'un rectangle? [ par Gerard ] Je me sens un peu bête... mais pourquoi cela ne donne pas un rectangle? procedure TForm1.FormCreate(Sender: TObject); begin Canvas.Pen.Width:=1; dessin sur un bitmap [ par jlg75 ] J'ai commencé un petit prog de dessin pour mes débuts en DELPHI.Je dessine sur un bitmap (feuille blanche pour l'instant),chargé dans une TImage. J'ut Image dans une TStatusBar !!! [ par MAsterC ] Comment fait-on pour mettre un Tprogresbar et un petit dessin dans l'item TStatusBar ????POUR PLUS DE DÉTAILS ALLER VOIR DANS INTERNET EXPLORER EN BAS Pb de Multi sélection dans un TDBlookupListBox [ par JoeyAstor ] G un TDBLookupListBox qui m'affiche donc un resultat d'un TADOQuery generé par une requete selectionnant 2 tables et j'affiche donc 3 champs dans mon Ajouter OnKeyPress à un TPaintBox [ par jlg75 ] J'utilise un TPaintBox pour un programme de dessin, je voudrais qu'il réagisse à l'événement OnKeyPress (ou OnKeyDown) pour sortir de la fonction dess CreateParented et rafraichissement ... [ par almi ] Bonjour à tous,Je cherche à créer un ToolBox dans une application de dessin que je n'ai pas conçu.Pour ce faire, j'utilise la méthode CreateParented e grille de dessin [ par ghassenus ] salut bein je suis débutant en delphi et je souhaite crééer une grille de dessin ( comme papier millimetré )je voudrait que le crayon de dessin ait un COMPOSANT ??? [ par iocha ] Salut à tous,qq un saurait-il ou trouver un composant de type TREEVIEW avec cases à cocher pour la sélection de fichiers ou de répertoires...Je ne sai Pourquoi un double clic sur une sélection ne le positionne pas comme désiré [ par BXDS ] BonjourJ'ai une DBgrille. Lorsque je double clique sur un enregistrement, il se lance sur le premier enregistrement au lieu de celui cliqué.Le double dessiner sur un flux vidéo [ par lupoo ] hello,je n'arrive pas à faire apparaître du dessin sur l'image vidéo, elle s'impose toujours par dessus le dessin...comment faire pour inverser cela?m


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

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,780 sec (4)

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