Hi,
ich zeichne ein Auswahlrechteck in einem Canvas. Das ganze funktioniert wunderbar, wenn ich in der Routine die entsprechenden Eigenschaften von Pen und Brush setze, und dann ein Rechteck zeichne (einmal zum löschen und einmal an der neuen Position).
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| with malen.canvas do begin pen.mode:= pmnotxor; brush.color:= GUIAktuell.getColor(cBK); brush.Style:= bsClear; pen.color:= GUIAktuell.getColor(cCursor); pen.style:= psdot; end; |
Als guter Programmierer möchte ich da optimieren, also erzeuge ich mir beim Programmstart einen Pen und eine Brush, setze die Parameter und aktiviere sie in der Zeichenroutine
Delphi-Quelltext
1: 2: 3: 4: 5:
| with malen.canvas do begin oldPen:= selectObject( Handle, pMark.Handle ); oldBrush:=selectObject( Handle, bClear.Handle ); end; |
Bei der Brush funktioniert das auch, beim Pen funktioniert dann das Löschen nicht mehr, der Rest (Farbe, Style) wird aber so verwendet, daher bin ich sicher, dass es der richtige Pen ist. Das ganze ist nun nicht so tragisch, allerdings würde es mich schon interessieren, ob es da noch einen Trick gibt.
Tomy