Desde el código de una aplicación se puede hacer poniendo en el FormCreate del formulario donde está el combo:
Código:
procedure TForm1.FormCreate(Sender: TObject);
begin
// Angosto los comboboxes
SetWindowRgn(ComboBox1.Handle, CreateRectRgn(0,2,Width,Height-2), True);
y poniendo encima algún botón que oficie de DropDown Button y que además tape el botón cortado.
El tema es que el DropDown sale dos pixels separado abajo. Se podría definir la región así
Código:
SetWindowRgn(ComboBox1.Handle, CreateRectRgn(0,4,Width,Height), True);
Pero en este caso el texto no sale centrado
Yo lo subsané con la desprolijidad de definir una región de 0 pixels y desaparecerlo totalmente. Arriba con un TEdit y un botón está todo. El resto es código.
Mi idea era hacer un componente al que inicialmente le pueda definir una región:
Código:
constructor TMiComboBox.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
FRegion := CreateRectRgn(2,2,Width-2,Height-2);
SetWindowRgn(Handle, FRegion, True);
end;
El tema que en ejecución sale el error
"Control '' has no parent window"
Alguien sabe que tengo que ponerle al componente (de tipo TComboBox) para que no me de este error?