2009-03-17 7 views
1

J'ai besoin de développer une application en Delphi où j'ai un contrôle TDrawGrid et une image est affichée dans les cellules de la grille en fonction du type de mise en page que je choisis. Je dessine une ligne sur la toile d'une cellule. la fonctionnalité que je dois fournir dessine une ligne, dessine plusieurs lignes sur une imgae iside la cellule, sélectionne n'importe quelle ligne et la déplace, l'agrandit, la supprime.Comment développer une application de dessin en Delphi

Y a-t-il un moyen de faire des lignes comme des contrôles lors de l'exécution afin qu'elles répondent toutes aux événements de la souris.

Répondre

1

Vous pouvez créer des contrôles personnalisés. (Assurez-vous de jeter un coup d'œil au manuel des rédacteurs de composants car il y a des captures).

Vous pouvez commencer à regarder le contrôle TShape. Il est utilisé pour des formes simples. Peut-être que vous pouvez l'étendre pour soutenir les lignes.

3

Je déconseille l'implémentation de vos objets de dessin en tant que contrôles VCL non fenêtrés. Vous n'en tirerez pas grand-chose, mais certaines choses (comme les tests de réussite) seraient beaucoup plus difficiles que si vous les codiez vous-même.

Les contrôles VCL sont rectangulaires, donc pour les lignes diagonales parallèles, un contrôle serait au-dessus de l'autre, au moins partiellement. Généralement, les événements de souris n'atteignent que le contrôle le plus élevé dans l'ordre Z. C'est quelque chose que vous auriez à corriger dans votre propre code.

Les lignes sélectionnées doivent porter les points de fin, afin que l'utilisateur sache où les saisir pour le déplacer ou le redimensionner. Encore une fois, quelque chose qu'un contrôle personnalisé ne fournit pas (à l'exécution), vous devrez donc le coder.

Je créerais probablement simplement une classe d'objets ligne, et implémenterais toutes les fonctionnalités pour créer, dessiner, sélectionner, déplacer et redimensionner, en supprimant moi-même des lignes.

1

Dans le passé, j'ai créé une application de conception de réseau qui utilisait des formes, du texte, des lignes de connexion &. J'ai utilisé le produit ExpressFlowChart de DevExpress qui, bien qu'il ait quelques faiblesses, a rendu la tâche relativement simple. Comme nous l'avons déjà mentionné, le test de coup est un point de douleur particulièrement problématique. C'est bien d'avoir quelqu'un pour faire ce travail de levage.

Questions connexes