Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

shinoob

Bordas coloridas em Edits

Recommended Posts

Ae galera iMasters, to precisandu de um help..

 

A ideia é criar um componente Edit com a borda +- = ao BorderStyle := bsSilgle;

 

so q ao invez de preto, eu kero a borda clSilver, ou qq outra cor

 

bem, pensei q seria so mexer na procedure paint; override e td beleza..

 

kem disse q tem?!?!

 

ok, achei a tal da

procedure WMNCPaint(var Message: TMessage); message WM_NCPAINT;

q é da class TWinColtrol ( criadora da TEdit )

 

mas num da certo, eu tentei usar o TBitMap, fazendu um quadrado com as borda cinza

consegui!!! (ae...)

 

mas da uns bug

e um fica legal...

talvez seja na hora de criar a bmp

 

procedure TBmpEdit.CreateBorder;var  x: Integer;  y: Integer;begin  FBorda.Free;  FBorda := TBitmap.Create;    //FBorda.Transparent := true;  //FBorda.TransparentColor := clWhite;  FBorda.Height := Height;  FBorda.Width := Width;  FBorda.Canvas.Brush.Color := clWhite;  FBorda.Canvas.Rectangle(0,0,Width, Height);    //FBorda.Canvas.Brush.Style := bsSolid;  FBorda.Canvas.Pen.Style := psSolid;  FBorda.Canvas.Pen.Color := clSilver;  //FBorda.Canvas.Pixels[0,0] := clSilver;  FBorda.Canvas.MoveTo(0,0);  FBorda.Canvas.LineTo(0, Height - 1);  FBorda.Canvas.MoveTo(0,0);  FBorda.Canvas.LineTo(Width - 1, 0);  FBorda.Canvas.MoveTo(Width - 1, Height - 1);  FBorda.Canvas.LineTo(Width -1, 0);  FBorda.Canvas.MoveTo(Width - 1, Height - 1);  FBorda.Canvas.LineTo(0, Height - 1);end;bla bla bla...procedure TBmpEdit.WMPaint(var Message: TWMPaint);begin  inherited;  CreateBorder;end;

alguem tem alguma sujestao?!?!

Compartilhar este post


Link para o post
Compartilhar em outros sites

problema resolvido, se alguem tiver interesse

 

var  DC: HDC;  R: TRect;  BtnFaceBrush, WindowBrush, FocusBrush: HBRUSH;begin  DC := GetWindowDC(Handle);  try	GetWindowRect(Handle, R);	OffsetRect(R, -R.Left, -R.Top);	//BtnFaceBrush := CreateSolidBrush(ColorToRGB(FColorBorder));	BtnFaceBrush := CreateSolidBrush(ColorToRGB(clSilver));	WindowBrush := CreateSolidBrush(ColorToRGB(FColorFace));	FocusBrush := CreateSolidBrush(ColorToRGB(FColorFace));	Color := FColorFace;	FrameRect(DC, R, BtnFaceBrush);	InflateRect(R, -1, -1);	FrameRect(DC, R, FocusBrush);	//InflateRect(R, -1, -1);	//FrameRect(DC, R, FocusBrush);  finally	ReleaseDC(Handle, DC);  end;  DeleteObject(WindowBrush);  DeleteObject(BtnFaceBrush);  DeleteObject(FocusBrush);

se tiverem alguma duvida ou kiserem me ajudar a terminar ele, posta ae

ou me manda um email shinoob@hotmail.com

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.