Pregunta

¿Cómo puedo tener una imagen para el fondo de cuadro de edición?

¿Fue útil?

Solución

Esto es muy posible, por cierto. En su formulario, definir

private
  { Private declarations }
  FBitmap: TBitmap;
  FBrush: HBRUSH;
protected
  procedure WndProc(var Message: TMessage); override;      

y hacer

procedure TForm1.FormCreate(Sender: TObject);
begin
  FBitmap := TBitmap.Create;
  FBitmap.LoadFromFile('C:\Users\Andreas Rejbrand\Pictures\AS20Utv.bmp');
  FBrush := 0;
  FBrush := CreatePatternBrush(FBitmap.Handle);
end;

y

procedure TForm1.WndProc(var Message: TMessage);
begin
  inherited;
  case Message.Msg of
    WM_CTLCOLOREDIT, WM_CTLCOLORSTATIC:
      if (Message.LParam = Edit1.Handle) and (FBrush <> 0) then
      begin
        SetBkMode(Message.WParam, TRANSPARENT);
        Message.Result := FBrush;
      end;
  end;
end;

Por supuesto que puede terminar con esto en un componente de su cuenta, por ejemplo TEditEx. Si me da tiempo a lo largo, que podría hacer esto. (Y, aviso que no hay necesidad de comprar un costoso (y tal vez no tan alta calidad) paquete de componentes de una empresa de terceros.)

de editar fondo

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top