TForm und Raster einstellen
-
Hallo Leute!
Ich zeichen auf meinem TForm eine Linie! Wie kann ich den Raster auf TForm vergrößern! Dieses Rastermaß auf TForm ist mir für mein Projekt viel zu fein! Kann man dieses Raster irgendwie vergrößern!
Sprich das ich zwischen zwei nebeneinander Liegenden Koordinaten nicht 1px Abstand habe sondern 1mm.Zur Erklärung was Raster genau ist, falls meine obige Erklärung unverständlich ist.
Raster: Als Raster bezeichnet man die gleichmäßige bzw. gezielte, an Bedingungen geknüpfte Unterteilung einer Fläche, eines Volumens oder einer Menge.Gruß
-
Hallo
Wenn ich dich richtig verstanden habe dann willst du Abstände von unter einem Pixel. Ganz klar : geht nicht. Sowohl für Windows als für Bildschirme ist Pixel das definierte Mindestsmaß, und außerdem vollkommen unabhängig von physikalischen Maßeinheiten. Wenn du detaillierter darstellen willst mußt du bei gleichbleibender physikalischer Fläche des Bildschirms die Auflösung erhöhen. Dann rutschen die Pixel enger aneinander.
bis bald
akari
-
Und wie machen dann das die Programme wie AutoCAD, SolidWorks, diverse Schaltplanprogramme??
Gruß
-
Hallo
Ich habe keine Ahnung was genau du meinst, kann dir aber versichern das kein Programm geheime Pixel zwischen echte Pixel schieben kann.
bis bald
akari
-
Ich Tip mal drauf das du einstellen willst das deine Zeichenfläche kein Pixel sein soll sonder in mm ?
Dann schau dich mal im GDI-MSDN Bereich um
http://msdn2.microsoft.com/en-us/library/ms532658.aspx
-
Hallo
Aber auch dadurch wird sich die echte Auflösung nicht erhöhen.
bis bald
akari
-
ich glaube er will eher das gegenteil,
also ein gröberes Raster für die Positionierung seiner Komponenten auf der Form.
Soweit ich weiss geht das nicht, habe mal so was in die Richtung mit dem % Operator gelöst. Also sowas wie:void SnapToGrid(TComponent* comp) { int l = comp->Left; int t = comp->Top; comp->Left = l - l % GridWidthX; comp->Top = t - t % GridWidthY; }Hab grad keinen Compiler zur Hand - deshalb keine Garantie für die Compilierbarkeit von dem Kram da oben, aber so die Richtung müsste das IMHO gehen.
VG
Chris
-
swunder schrieb:
[...]Wie kann ich den Raster auf TForm vergrößern! Dieses Rastermaß auf TForm ist mir für mein Projekt viel zu fein! Kann man dieses Raster irgendwie vergrößern!
Sprich das ich zwischen zwei nebeneinander Liegenden Koordinaten nicht 1px Abstand habe sondern 1mm. [...]DerChris schrieb:
@akari
ich glaube er will [...] ein gröberes Raster für die Positionierung seiner Komponenten auf der Form.
@swunder: Kannst ja evtl. die aktuelle Bildschirmauflösung ermitteln und dann für dein Programm definieren: bei 1024x768pix sind auf einem 19"-Monitor 5pix = 1mm (Beispiel ohne realistischen Hintergrund). Müsstest dir dann viell. zu jedem Monitor die gängigste Auflösung überlegen, damit du eine Festlegung treffen kannst.
Diese Festlegung dann viell. in eine Variable (zB mmDef) packen und damit weiterarbeiten. Also z.B. im weiteren Verlauf: Koordinaten für KomponenteFoo: x= 3*mmDef, y= 6*mmDef (wäre dann f. das Beispiel: x= 3mm= 15pix, y= 6mm= 30pix).Ohne GewEhr, nur als Idee.
-
Was ist hier nun eigentlich rausgekommen? Hast du das für dich gelöst? Wie (in groben Zügen)?
-
Darauß ist leider nichts geworden!
Ich kann zwar die Componente im größeren Raster positionieren, danke an DerChris, aber für mich war es auch wichtig dass ich die Leitungen (MoveTo und LineTo) im Raster verlegen kann.
Leider nichts drauß geworden.
Aber ich habe mir da ein anderes Konzept überlegt!! Sprich ich habe kein Raster, die Componete liegen auf einem feinen Raster, was nicht so schlimm ist. Die Leitungen werden nur als gerade Linien gezogen Sprich wenn X>Y ist, dann verändert sich nur die X Variable und die Y Variable bleibt konstant. Mit dieser Lösung ist kein Raster für die Leitungen nötig.
-
Schade, hätte ich gerne mal gesehen die "Rasterlösung". Aber die Hauptsache ist ja, dass du eine Lösung gefunden hast!
