2010-11-26 2 views
0

mit TGrid Arbeiten an CAD-ProjektTGrid für ein CAD-Projekt delphi

Viele cad ist in Delphi sind eine Verschwendung von Zeit, um meine Bedürfnisse

Ich habe genommen TGrid und realisiert ‚Auswahl‘, die nicht in Onselectcell Dosis arbeiten funktioniert aber in OnDrawCell, aber das wiederholte Wiederholen von Code in OnDrawCell ist in meinen Augen nicht gut. Also habe ich den Malvorgang außer Kraft gesetzt und mein eigenes Event gemacht und wieder "Auswahl" vor dem Druck bekommen. Dies nimmt auch eine Menge verwirrenden Code aus meiner OnDrawCell und ermöglicht die Anpassung des Auswahlbereichs, bevor eine Auswahl gezogen wird. Das ist in Ordnung, aber es ruft Farbe zu oft für eine einzelne Farbe, die die Verfolgung meines Objektcodes ist schwierig, wenn ich muss? Hat jemand eine bessere Vorstellung davon, was ich überschreiben sollte, als Paint?

2/ Ich habe bereits meine Objektinformationen in den Zellen Text von TGrid geschrieben und mein Projekt funktioniert gut so. Ich möchte nur einen grafischen Aspekt in das Projekt einfügen, um Objekte ziehen zu können. und verstecke den Text

Ich habe eine Reihe von Drawobjects gesetzt, dass jedes Objekt über eine Reihe von Zellen zeichnen wird. Und das führt zu Problemen wie Teilobjekte, die in TGrid angezeigt werden.

Ich denke auch an die Zelle Höhe und Breite mit meinem Drawobject Größe zu verbinden. Dies ermöglicht, dass die Gitterzellen klein sind, so dass ein Drawobject eine gestufte/gesetzte Pixelbewegung über dem Gitter haben kann, indem ein Tropfen des Drawobjects gezogen wird.

Ich denke, linke Maustaste schleift Objekte, rechte Maustaste zieht das Raster, Mausroller zoomt in und aus Zellengröße. Ich sehe mich selbst entwickeln ein Bitmap-Objekt, das seine Größe enthält, die mit diesem TGrid-Objekt funktioniert und eine Liste, wenn dieses Bitmap-Objekt.

Hat jemand irgendwelche Arbeit/Code in diesem Bereich gesehen, bieten konstruktive Beratung? Ich bin mir sicher, dass jemand mehr weiß als ich.

Ich bin nicht interessiert Kanten des Gitters angezeigt zu werden Ich möchte Speicher speichern, indem Sie den Text der Zelle verwenden, um meine DrawObject-Daten aufzuzeichnen und nur ein Objekt in Sicht zu zeichnen, wenn es sichtbar ist. Dies bedeutet, dass zur Malzeit neu geschrieben wird. Dies geht darauf zurück, auf viele Repaints in TGrid einige zu beschränken. Ich hoffe, jemand hat eine bessere Idee als TTimer, wenn ich kann. Die untere Zeile zeigt einen Bildschirm voller Drawobjects in der TGrid und die Verarbeitung in den meisten Computern, um es zu tun. Lässt 1,4GHz als langsamste Option wählen.

Mein Projekt neet Dosis nicht mit anderen CAD-Projekten

+6

Ihre Frage ist wahrscheinlich zu nebulös alle nützlichen Antworten zu erhalten –

+0

Sie erzählt haben uns viele Dinge über das Projekt, das Sie gerade arbeiten, aber es ist etwas zu mir unklar, wo genau Sie stecken bleiben oder wie können wir helfen Sie. –

+4

Werden Sie jemals lernen, für jede Frage, die Sie stellen, keinen Account zu erstellen? Die Tally ist jetzt bis zu 18 ... (http://stackoverflow.com/users/filter/lexdean) –

Antwort

2

Von dem, was ich sehe, sind Sie umfangreiche Malerei tun comunicate. Wenn Ihre Anwendung eine CAD-Anwendung ist, denke ich, dass TGrid nicht die richtige Komponente ist.

Wenn Sie viel 2D malen oder wenn Sie Ihre eigenen 3D-Sachen rendern, sind Sie wahrscheinlich besser dran mit einer TPaintBox oder TPaintbox32 (siehe Graphics32).

Für den Rest würde ich Ihnen raten, Ihre Frage umzuformulieren, um klarer zu sein, was Sie von uns erwarten. Und wenn Sie mehrere Fragen haben, verteilen Sie sie in separaten Fragen auf dieser Website. Diese Website funktioniert nicht wirklich wie ein Forum, in dem Sie nur über ein bestimmtes Thema chatten (in diesem Fall: die Anwendung, an der Sie gerade arbeiten). Versuchen Sie stattdessen, zu diesem Zeitpunkt eine knappe Frage zu stellen, so dass die Antworten bewertet werden können.