AKUJITECNOTHY
Membro
Como deixar "form" no LAZARUS transparente como no exemplo?
Perguntou 12 anos atrás
Resolvido
Essa imagens deve ser usada somente para discursão sobre esse assunto!


Respostas
AKUJITECNOTHY
Membro
12 anos atrás
Sabendo que na propriedade do "form" temos:
BorderIcons = []
biHelp = False
biMaximize = False
biMinimize = False
biSystemMenu = False
BorderStyle = bsNone
Color = clFuchsia
Constraints = (TSizeConstraints)
MaxHeight = 280
MaxWidth = 350
MinHeight =280
MinWidth = 350
Position = poDesktopCenter
ficará assim:
- Qual seria a propriedade para deixa o fundo rosa transparente?
JosueSevahc
Membro
8 anos atrás
Encontrei a resposta para a sua questão nesse mesmo site amigo.
http://lazplanet.blogspot.com.br/2014/04/shape-your-form-into-anything.html
JosueSevahc
Membro
8 anos atrás
Encontrei nesse site a solução para mover o form
http://lazplanet.blogspot.com.br/2013/06/dragging-form-by-its-body.html
Segue o Tutorial com os códigos:
1- Declare essas Váriaveis (de preferencia no private) :
private
**mouseIsDown: Boolean;
dx: integer;
dy: integer;**
{ private declarations }
2- Eu utilizei o Panel para servir de cabeçalho e apenas clicando sobre ele é possivel mover o Form. Forem você pode escolher qualquer componente (Até mesmo o próprio Formulario) mas ai em qualquer lugar que clicar no formulario será possivel move-lo.
3- Crie o primeiro evento (OnMouseDown) para o componente escolhido como ''Ancora".
e digite o código em negrito. (No meu caso frmExemplo1 é o Form, e pnPrincipal é o Panel).
procedure TfrmExemplo1.pnPrincipalMouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
if Button = mbLeft then begin
mouseIsDown := True;
dx := X;
dy := Y;
end;
end;
4- Digite o código em negrito no evento (OnMouseMove) do mesmo Componente.
procedure TfrmExemplo1.pnPrincipalMouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer);
begin
if mouseIsDown then begin
SetBounds(frmExemplo1.Left + (X - dx), frmExemplo1.Top + (Y - dy), frmExemplo1.Width, frmExemplo1.Height);
end;
end;
5- E por fim esse ultimo código no evento (OnMouseUp), do mesmo componente.
procedure TfrmExemplo1.pnPrincipalMouseUp(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
mouseIsDown := False;
end;
end.
Pronto, Só dar um F9 e executar seu aplicativo. Você pode inserir imagens e fazer esse mesmo processo com diversos componentes. Lembre de criar um componente que possa fechar a tela, se você for desativar a barra de titulo do windows.
Para remove-la, vá nas propriedades do form no Object Inspector e e na propriedade BorderStyle selecione bsNone.
JosueSevahc
Membro
8 anos atrás
É bom criar antes botões para que seja possível fechar a janela posteriormente.
Amigo, não encontrei "ainda" como deixar ela totalmente transparente.
Porêm tem como retirar totalmente a borda do form com o código que segue abaixo.
Acredito que irá servir de alguma forma. Se eu encontrar algo mais especifico postarei. Acredito que servirá para outros que procurarem sobre o tema.
// Deve ser inserido de preferencia no evento onCreate do Form
- procedure TfrmExemplo1.FormCreate(Sender: TObject);
- begin
- FFormBorderStyle := bsNone;
- end;
Eu não sei ainda como fazer para que o form possa ser movido, pois sem o border ela fica fixa no local da criação.
Se alguem souber como fazer posta ai que já vai ficar mais completa a resposta.
(Acredito que utilize algum recurso DragAndDrop) mas tentei e não tive exito.
Ela vai ficar assim como na imagem do link: