Thema: Delphi TShape + Canvas

Einzelnen Beitrag anzeigen

oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#28
  Alt 19. Mai 2003, 11:19
Hi Schwanengel.

Ich habe gerade ein ähnliches Problem bearbeitet. Zur Umsetzung des Themas "Einrasten an bestimmten Punkten" würde ich noch mal die Aufgabe klar definieren.

Die Frage ist erst mal, ob das "Einrasten" an einer Art Gitter, oder an bestimmten Punkten erfolgen soll.

Bei einem Gitter würde ich im Image1 das Gitter definieren und das Einrasten zur Laufzeit berechnen.
Bei definierten Punkten die Punkte setzen und weitere Parameter wie Entfernung vom Punkt für Einrasten usw. festlegen. Genauso müßte hier geklärt werden, ob es eine feste Anzahl von Einrastpunkten oder eine beliebige gibt. Dementsprechend flexiebel muß die Verwaltung dann laufen.

Ist das alles getan, können wir mit einer einfachen eigenen Funktion von Image1 die Korrektur der Koordinaten vornehmen lassen. Die würde dann so aussehen:
Delphi-Quellcode:
Function GetRastPoint(Value : TPoint) : TPoint;
begin
  Result := Value;
  // befinden sich die koordinaten in der Nähe eines Einrastpunktes?
  
  // wenn nicht raus!

  // wenn ja, Koordinate des Einrastpunktes Result zuweisen!
end;
Die Funktion GetRastPoint kann vor Positionierung der Graphik aufgerufen werden, wobei die Position der Platzierung dann mit dem Rückgabewert erfolgt.

Für die Einrast-Koordinaten sag mal bescheid, welche der oben erwähnten Methoden du brauchst. Dann machen wir da was anständiges draus.

Gruß oki
  Mit Zitat antworten Zitat