Delphi-PRAXiS
Seite 2 von 2     12   

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 radioGroup - border (https://www.delphipraxis.net/25687-radiogroup-border.html)

Nikolas 11. Jul 2004 12:00

Re: radioGroup - border
 
Wie steht's mit Bevelinner?

semo 11. Jul 2004 12:03

Re: radioGroup - border
 
ps: bei meinem screenshot habe ich das bevelouter noch ausgeklammert gehabt......

sieht dann folgendermaßen aus:

http://www.computer-glossar.de/uploads/1.jpg

passt also soweit :wink:

Ratte 11. Jul 2004 17:08

Re: radioGroup - border
 
Du könntest auch den Rahmen einer Radiogroup mit Panels überdecken. Geht je nach dem auch.

Ratte

semo 12. Jul 2004 12:39

Re: radioGroup - border
 
naja... auch ein wenig unprofessionell die lösung oder? bin mit dem panel und den radioButtons darauf ganz zuffrieden :thuimb:

Stevie 12. Jul 2004 13:19

Re: radioGroup - border
 
Zitat:

Zitat von computer-glossar.de
naja... auch ein wenig unprofessionell die lösung oder? bin mit dem panel und den radioButtons darauf ganz zuffrieden :thuimb:

Ich hatte gerade Langeweile! :wink:
Delphi-Quellcode:
unit RadioGroupEx;

interface

uses
  Windows, Messages, SysUtils, Classes, Controls, StdCtrls, ExtCtrls;

type
  TRadioGroupEx = class(TRadioGroup)
  private
    FBevelInner: TPanelBevel;
    FBevelOuter: TPanelBevel;
  protected
    procedure Paint; override;
    procedure SetBevelInner(Value: TPanelBevel);
    procedure SetBevelOuter(Value: TPanelBevel);
  published
    property BevelInner: TPanelBevel read FBevelInner write SetBevelInner default bvNone;
    property BevelOuter: TPanelBevel read FBevelOuter write SetBevelOuter default bvRaised;
  end;

procedure Register;

implementation

uses
  Graphics;

procedure TRadioGroupEx.Paint;
var
  H: Integer;
  R: TRect;
  Flags: Longint;
  TopColor, BottomColor: TColor;

  procedure AdjustColors(Bevel: TPanelBevel);
  begin
    TopColor := clBtnHighlight;
    if Bevel = bvLowered then TopColor := clBtnShadow;
    BottomColor := clBtnShadow;
    if Bevel = bvLowered then BottomColor := clBtnHighlight;
  end;

begin
  with Canvas do
  begin
    Font := Self.Font;
    H := TextHeight('0');
    R := Rect(0, H div 2 - 1, Width, Height);

    if BevelOuter <> bvNone then
    begin
      AdjustColors(BevelOuter);
      Frame3D(Canvas, R, TopColor, BottomColor, BevelWidth);
    end;
    Frame3D(Canvas, R, Color, Color, BorderWidth);
    if BevelInner <> bvNone then
    begin
      AdjustColors(BevelInner);
      Frame3D(Canvas, R, TopColor, BottomColor, BevelWidth);
    end;
(*
    if Ctl3D then
    begin
      Inc(R.Left);
      Inc(R.Top);
      Brush.Color := clBtnHighlight;
      FrameRect(R);
      OffsetRect(R, -1, -1);
      Brush.Color := clBtnShadow;
    end else
      Brush.Color := clWindowFrame;
    FrameRect(R);
*)
    if Text <> '' then
    begin
      if not UseRightToLeftAlignment then
        R := Rect(8, 0, 0, H)
      else                        
        R := Rect(R.Right - Canvas.TextWidth(Text) - 8, 0, 0, H);
      Flags := DrawTextBiDiModeFlags(DT_SINGLELINE);
      DrawText(Handle, PChar(Text), Length(Text), R, Flags or DT_CALCRECT);
      Brush.Color := Color;
      DrawText(Handle, PChar(Text), Length(Text), R, Flags);
    end;
  end;
end;

procedure Register;
begin
  RegisterComponents('Beispiele', [TRadioGroupEx]);
end;

procedure TRadioGroupEx.SetBevelInner(Value: TPanelBevel);
begin
  FBevelInner := Value;
  Realign;
  Invalidate;
end;

procedure TRadioGroupEx.SetBevelOuter(Value: TPanelBevel);
begin
  FBevelOuter := Value;
  Realign;
  Invalidate;
end;

end.


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:02 Uhr.
Seite 2 von 2     12   

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