AGB  ·  Datenschutz  ·  Impressum  







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

Eigene Form-Nachfolge-Klasse in der IDE

Ein Thema von Sereby · begonnen am 2. Aug 2008 · letzter Beitrag vom 3. Aug 2008
 
Sereby

Registriert seit: 31. Mär 2008
91 Beiträge
 
#5

Re: Eigene Form-Nachfolge-Klasse in der IDE

  Alt 3. Aug 2008, 07:23
aaaalso nochmal etwas ausführlicher:

Bisher habe ich bei meinem Hauptformular, bei der FormCreate Routine, die ecken abgerundet.
Nun.. da ich das allerdings schon während der Entwicklung gerne sehen würde, wollte ich halt ne neue Form klasse haben wo extra eigenschaften dafür vorhanden sind womit man das einstellen kann.

Das funktioniert auch wenn ich die Komponente auf die Form ziehe aber wegen Application.Createform kann ich das leider nicht beim Hauptformular benutzen weil der da TForm benutzt!

hier die Unit
Delphi-Quellcode:
unit FormX;

interface
  uses Windows, Classes, Forms;

type
  TFormX = class(TForm)
  private
    FRoundEdges: Boolean;
    FRoundWidth,FRoundHeight: Integer;
    procedure SetRoundEdges(const Value: Boolean);
    procedure SetRoundHeight(const Value: Integer);
    procedure SetRoundWith(const Value: Integer);
  public
    constructor Create(AOwner: TComponent); override;
  protected
    procedure Paint; override;
  published
    property RoundEdges: Boolean read FRoundEdges write SetRoundEdges default False;
    property RoundWidth: Integer read FRoundWidth write SetRoundWith default 40;
    property RoundHeight: Integer read FRoundHeight write SetRoundHeight default 40;
  end;

  procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('Sere', [TFormX]);
end;

{ TFormX }

constructor TFormX.Create(AOwner: TComponent);
begin
  inherited;
  FRoundEdges := False;
  FRoundWidth := 40;
  FRoundHeight := 40;
end;

procedure TFormX.Paint;
var REGN: HRGN;
begin
  inherited;
  if FRoundEdges then
  begin
    //ecken abrunden
    REGN := CreateRoundRectRgn(0,0,Width,Height,FRoundWidth,FRoundHeight);
    SetWindowRgn(Handle, REGN, True);
  end;
end;

procedure TFormX.SetRoundEdges(const Value: Boolean);
begin
  if (FRoundEdges <> Value) then
  begin
    FRoundEdges := Value;
    Invalidate;
  end;
end;

procedure TFormX.SetRoundHeight(const Value: Integer);
begin
  if (FRoundHeight <> Value) then
  begin
    FRoundHeight := Value;
    Invalidate;
  end;
end;

procedure TFormX.SetRoundWith(const Value: Integer);
begin
  if (FRoundWidth <> Value) then
  begin
    FRoundWidth := Value;
    Invalidate;
  end;
end;

end.
  Mit Zitat antworten Zitat
 


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 22:43 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