Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Rahmen auf weissem Hintergund (https://www.delphipraxis.net/41273-rahmen-auf-weissem-hintergund.html)

lkz633 28. Feb 2005 22:35


Rahmen auf weissem Hintergund
 
Hallo,

ich möchte auf einem Canvas mit Hintergund einen Rahmen mit der Maus ziehen, habe folgenden Code:

Delphi-Quellcode:
procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
 if Bounding then
  begin
    Canvas.Rectangle(AnchorX, AnchorY, curx, cury);
    Bounding := False;
    Canvas.Pen.Mode := pmNot;
    Canvas.Brush.Style := bsClear;
    Canvas.Rectangle(AnchorX, AnchorY, x, y);
  end;
end;

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
 if Bounding then
  begin
    Canvas.Pen.Mode := pmNot   ;
    Canvas.Pen.Width := 2;
    Canvas.Brush.Style := bsClear;
    Canvas.Rectangle(AnchorX, AnchorY, CurX, CurY);
    CurX := X;
    CurY := Y;
    Canvas.Rectangle(AnchorX, AnchorY, CurX, CurY);
  end;
end;
Leider kommt auf weissem Hintergrund ein weisser Rahmen, ansonsten klappt es aber immer. Habe bereits alle Pen-Modes versucht, ohne erfolgt.

Hoffe jemand kann helfen, danke und Gruß
lkz633

Binärbaum 28. Feb 2005 22:44

Re: Rahmen auf weissem Hintergund
 
Zitat:

Zitat von lkz633
Leider kommt auf weissem Hintergrund ein weisser Rahmen, ansonsten klappt es aber immer. Habe bereits alle Pen-Modes versucht, ohne erfolgt.

Hoffe jemand kann helfen, danke und Gruß
lkz633

Das liegt nicht am Pen-Mode, sondern an der Farbe. Wenn man einen weißen Hintergrund hat, sollte man eine andere Farbe als weiß zum Zeichen nehmen. :zwinker:
Delphi-Quellcode:
Canvas.Pen.Color:= clBlack;
MfG
Binärbaum

lkz633 28. Feb 2005 22:56

Re: Rahmen auf weissem Hintergund
 
Zitat:

Der Typ TPenMode bestimmt, wie sich die Farbe des Stiftes und die Farbe der Zeichenfläche beeinflussen.
Ausserdem wird bei bsclear Pen.Color ignoriert.

Khabarakh 1. Mär 2005 13:13

Re: Rahmen auf weissem Hintergund
 
Delphi-Quellcode:
Canvas.Pen.Mode := pmNot;
Canvas.Brush.Style := bsClear;
Canvas.Rectangle(1,1,100,100);
erzeugt bei mir einen schwarzen Rahmen (auf weißem Hintergrund) :gruebel: .


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:07 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