Sources
Delphi Russian Knowledge Base
DRKB - это самая большая и удобная в использовании база знаний по Дельфи в рунете, составленная Виталием Невзоровым

Как у Комбобокса сделать BorderStyle := bsNone?

01.01.2007
procedure TForm1.FormCreate(Sender: TObject);

begin
 
SetWindowRgn(
  ComboBox1
.Handle,
 
CreateRectRgn(2, 2, ComboBox1.Width - 2, ComboBox1.Height - 2), True);
end;

 

Автор: Smike

Взято из https://forum.sources.ru

 


unit Unit1;

 
interface
 
uses
 
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 
Dialogs, StdCtrls;
 
type
  TForm1
= class(TForm)
    ComboBox1
: TComboBox;
    procedure
FormCreate(Sender: TObject);
 
private
   
{ Private declarations }
 
public
   
{ Public declarations }
 
end;
 
var
  Form1
: TForm1;
 
implementation
 
{$R *.dfm}
 
 
function NewComboProc(wnd:HWND; uMsg:UINT; wParam:WPARAM; lParam:LPARAM):integer; stdcall;
 
var
   r
,r1:TRect;
 
begin
   
case uMsg of
     WM_PAINT
: begin
                 
GetWindowRect(wnd,r);
                 
SetWindowRgn(wnd,CreateRectRgn(2, 2, r.Right-r.Left - 2, r.Bottom-r.Top - 2), True);
               
end;
     WM_CTLCOLORLISTBOX
:
                 
begin
                   
GetWindowRect(wnd,r);
                   
GetWindowRect(lParam,r1);
                   
if (r.Left=r1.Left) and (r.Right=r1.Right) then
                   
begin
                   
InflateRect(r1,-2,0);
                   
SetWindowPos(lParam,0,r.Left+2,r.Bottom-2,r1.Right-r1.Left,r1.Bottom-r1.Top,SWP_NOZORDER);
                   
end
                 
end;
   
end;
    result
:=CallWindowProc(Pointer(GetWindowLong(wnd,GWL_USERDATA)),wnd,uMsg,wParam,lParam);
 
end;
 
procedure TForm1
.FormCreate(Sender: TObject);
begin
 
SetWindowLong(ComboBox1.Handle,GWL_USERDATA,SetWindowLong(ComboBox1.Handle, GWL_WNDPROC, LPARAM(@NewComboProc)))
end;
 
end.

Взято из https://forum.sources.ru

Автор: Krid