Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Shape - Rahmen (https://www.delphipraxis.net/164053-shape-rahmen.html)

t0mmy 27. Okt 2011 09:07

Shape - Rahmen
 
Hallo!

Welche Eigenschaft muss bei eine Shape (Rechteck) ändern damit ich z.B. nur den linken oder rechten rahmen dick machen kann?

DeddyH 27. Okt 2011 09:10

AW: Shape - Rahmen
 
AFAIK geht das nicht so einfach, dafür ist TShape zu simpel gestrickt. Da ist vermutlich ableiten oder Neuschreiben angesagt.

t0mmy 27. Okt 2011 09:21

AW: Shape - Rahmen
 
Gibt es da ein anderes Steuerlement mit dem ich nur bei der rechten oder linken seite sagen kann das der Rahmen dick sein soll...

DeddyH 27. Okt 2011 10:44

AW: Shape - Rahmen
 
Ich kenne aus dem Kopf keins, aber Du kannst ja das TShape entsprechend ableiten/erweitern oder gleich ein eigenes Control schreiben.

Bummi 27. Okt 2011 11:47

AW: Shape - Rahmen
 
wenn Du es nicht als Komponente brauchst kannst Du auch so reinfummeln
Delphi-Quellcode:
type
  TShape=Class(ExtCtrls.TShape)

  private
    procedure Paint; override;
  End;

  TForm1 = class(TForm)

..........


implementation

{$R *.dfm}
procedure TShape.Paint;
var
  X, Y, W, H, S: Integer;
  C:TCanvas;
begin
  inherited;
  if Shape in [stRectangle, stSquare] then
    begin
        C := Tcanvas.Create;
      try
      c.Handle := Canvas.Handle;
      c.Pen.Width := 5;
      c.Pen.Color := clBlue;
      X := c.Pen.Width div 2;
      Y := X;
      W := Width - c.Pen.Width + 1;
      H := Height - c.Pen.Width + 1;
      c.MoveTo(x,y);
      c.LineTo(X,y + h);
      c.MoveTo(x + w,y);
      c.LineTo(X + w,y + h);
      Pen.Width := 1;
      finally
        C.Free;
      end;

    end;
end;


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