AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TImageEnVect Clientbereich vergrössern

Ein Thema von Kostas · begonnen am 14. Dez 2010
Antwort Antwort
Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.060 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

TImageEnVect Clientbereich vergrössern

  Alt 14. Dez 2010, 21:42
Delphi-Version: 5
Hallo Zusammen,

ich versuche einfache Kreise zu zeichnen auf ein TImageEnVect um dessen Funktionalität mit dem Zoomen zu nutzen.
Die Komponente habe ich auf eine leere Form mit ImageEnVect.Align:= alClient; Standardmäßig hat die Komponente
einen Clientbereicht der etwa 500x500pixel groß ist. Das Problem ist, das die Abmessungen eines Objektes ein Rect
aus Integern besteht. Ich benötige eine Genauigkeit von 0.01mm also multipliziere ich meine Abmessungen mit 100
um integer zu bekommen.

Nun das Problem: Wenn ich Objekte zeichne die in dem Cleintbereich von 500x500 passen funktioniert alles wunderbar.
ich müsst also "nur" den Clientbereicht erweitern und schon wäre mein Problem gelöst.
Interessant ist auch, wenn die linke obere Ecke innerhalb der 500x500 ist, wird das Objekt gezeichnet.
Ist jedoch der linke obere Ecke außerhalb der 500x500 wird es nicht mehr gezeichnet.

Als Beispiel der source:
Hat jemand eine Idee wie der Clientberiecht vergrößert wird? oder gibt es Möglicherweise einen anderen Ansatz?
Es werden mehrere Kreise gezeichnet in einem Bereich von 250x250mm mit einer Auflösung von 1/100mm
Ich möchte damit rein zoomen und sehen ob sich die Kreise berühren. Mein Bereich müsste also 25000 x 25000.

Delphi-Quellcode:
var h:integer;
begin
  ImageEnVect1.RemoveAllObjects;
  ImageEnVect1.ScaleFactor := 1.0; // macht sicht nicht bemerkbar auch wenn dieser verändert wird. Ich meine, er wird nur für das Bemassen benötigt.
  ImageEnVect1.MUnit := ieuMICRONS; //Dito für die Bemassung

  //Die Box wird gezeichnet, obwohl das Objekt deutlich grösser als 500x500 ist.
  h := ImageEnVect1.AddNewObject;
  ImageEnVect1.ObjKind[h] := iekBOX;
  ImageEnVect1.SetObjRect(h, Rect(0,
  0,
  1000000,
  1000000));

  //Der Keis wird gezeichet da die obere linke Ecke im clientbereicht liegt.
  h := ImageEnVect1.AddNewObject;
  ImageEnVect1.ObjKind[h] := iekELLIPSE;
  ImageEnVect1.SetObjRect(h, Rect(500,
  500,
  1000,
  1000));


  //Der Kreis wird nicht gezeichnet, die linke obere Ecke ist ausserhalb des Clientbereichs.
  h := ImageEnVect1.AddNewObject;
  ImageEnVect1.ObjKind[h] := iekELLIPSE;
  ImageEnVect1.SetObjRect(h, Rect(600,
  600,
  1000,
  1000));
Gruß Kostas
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:41 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz