Как убрать рамку у компонента DBRadioGroup?

SL_Angel
Дата: 30.05.2011 16:10:36
Здравствуйте.

Помогите, пожалуйста.

Как убрать рамку у компонента DBRadioGroup?

Спасибо.
vs259
Дата: 30.05.2011 16:28:29
SL_Angel, думаю, что никак, если только на его основе не сделать собственный компонент.
Как это делается, смотрите тут: Доступные видео уроки про Дельфи
SL_Angel
Дата: 30.05.2011 16:29:01
vs259,

спасибо
Dimitry Sibiryakov
Дата: 30.05.2011 16:31:00

А что, тупо насыпать в нужное место кучу TRadioButton не позволяет религия?..

Posted via ActualForum NNTP Server 1.4

SL_Angel
Дата: 30.05.2011 16:40:16
я переделываю и мне нужно будет еще в базе менять..... мне не хочется :), поэтому пусть будет с рамкой :)
SQLap
Дата: 31.05.2011 13:22:10
SL_Angel,

обложи его панельками с бевелами = bvNone
DimaBr
Дата: 31.05.2011 13:50:34
SQLap
обложи его панельками с бевелами = bvNone

проще тогда уж одну панельку с прорезаным окошком для радиокнопок
Кроик Семён
Дата: 31.05.2011 15:44:07
Хочу продемонстрировать способ, как закрасить рамку GroupBox'a без создания нового компонента или изменения старого.

+
UNIT Unit1;

INTERFACE

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;

type
  TForm1 = class(TForm)
    RadioGroup: TRadioGroup;
    procedure FormCreate(Sender: TObject);
  private
    { Private-Deklarationen }
    OldRadioGroupWndProc: TWndMethod;
    
    procedure MyRadioGroupWndProc(var Message: TMessage);
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

IMPLEMENTATION

{$R *.dfm}

type
   TCustomGroupBoxCracker  = class(TCustomGroupBox);
//------------------------------------------------------------------------------
procedure TForm1.FormCreate(Sender: TObject);
begin
   //подменяем оконную процедуру
   OldRadioGroupWndProc:=RadioGroup.WindowProc;
   RadioGroup.WindowProc:=MyRadioGroupWndProc;
end;
//------------------------------------------------------------------------------
procedure HideGroupBounds(AGroupCtrl: TCustomGroupBox);
var
   R             : TRect;
   Ctrl          : TCustomGroupBoxCracker;
begin
   Ctrl:=TCustomGroupBoxCracker(AGroupCtrl);

   R:=Rect(0,0,Ctrl.Width, Ctrl.Height);
   
   //для демонстрации закрашиваем красной рамкой
   //а так, надо бы Ctrl.Color

   Ctrl.Canvas.Pen.Color:=clRed;
   Ctrl.Canvas.Brush.Style:=bsClear;
   Ctrl.Canvas.Rectangle(R);
end;
//------------------------------------------------------------------------------
procedure TForm1.MyRadioGroupWndProc(var Message: TMessage);
var
   bIsWMPaint  : boolean;
begin
   bIsWMPaint:=(Message.Msg=WM_PAINT);
   OldRadioGroupWndProc(Message);

   //закрашиваем после того, как отработает "родной" обработчик WM_PAINT
   if bIsWMPaint then HideGroupBounds(RadioGroup);
end;

END.
DimaBr
Дата: 31.05.2011 15:57:55
Предлагаю гораздо проще вариант
TRadioGroup = class(ExtCtrls.TRadioGroup)
  protected
    procedure Paint; override;
end;

procedure TRadioGroup.Paint;
begin
//  inherited;
end;
Кроик Семён
Дата: 31.05.2011 16:09:31
а вот это круто