asi como este de la imagen:

si existe en que suite se encuentra o como hago ese efecto, me gustaria que fuera como el de la imgen
Escrito 07 agosto 2010 - 04:04
Escrito 07 agosto 2010 - 10:00
Escrito 07 agosto 2010 - 11:28
No existe en el entorno de delphi o Builer, a no ser que terceros lo tengan hecho...
Visita webs de controles...
Nada te impide hacerlo tu mismo. En caso de que te animes comienza estudiando el mensaje NM_CUSTOMDRAW, que es enviado por los controles tipo "common controls" para notificar a su parent cuando van a realizar procesos de dibujado de si mismos.
Saludos.
Escrito 07 agosto 2010 - 12:24
procedure Redondear(Control: TWinControl) ; var R: TRect; Rgn: HRGN; begin with Control do begin R := ClientRect; rgn := CreateRoundRectRgn(R.Left, R.Top, R.Right, R.Bottom, 20, 20) ; Perform(EM_GETRECT, 0, lParam(@r)) ; InflateRect(r, - 4, - 4) ; Perform(EM_SETRECTNP, 0, lParam(@r)) ; SetWindowRgn(Handle, rgn, True) ; Invalidate; end; end;
Escrito 07 agosto 2010 - 01:12
Claro que puedes hacerlo por código por ejemplo:
delphi
procedure Redondear(Control: TWinControl) ; var R: TRect; Rgn: HRGN; begin with Control do begin R := ClientRect; rgn := CreateRoundRectRgn(R.Left, R.Top, R.Right, R.Bottom, 20, 20) ; Perform(EM_GETRECT, 0, lParam(@r)) ; InflateRect(r, - 4, - 4) ; Perform(EM_SETRECTNP, 0, lParam(@r)) ; SetWindowRgn(Handle, rgn, True) ; Invalidate; end; end;
Lo pones en el código aparte luego para usarlo solo tienes que ir a el evento create del form
y escribir Redondear(edit1); eso es un ejemplo osea Redondear y entre parentesis el componente que quieras .
si no lo quieres muy redondeado bájale el inflate a menos -2 o el que prefieras y consideres más adecuado.
Escrito 07 agosto 2010 - 02:03
procedure Redondear(Control: TWinControl) ; var R: TRect; Rgn: HRGN; begin with Control do begin R := ClientRect; rgn := CreateRoundRectRgn(R.Left, R.Top, R.Right, R.Bottom, 4, 4) ; Perform(EM_GETRECT, 0, lParam(@r)) ; InflateRect(r, -4, -4) ; Perform(EM_SETRECTNP, 0, lParam(@r)) ; SetWindowRgn(Handle, rgn, True) ; Invalidate;
Escrito 07 agosto 2010 - 02:44
Me parece muy interesante el codigo que facilito Master23 ya que trabaja con los wincontrols.Como este de la imagen, incluso que se pueda colorear el bordo al foco
asi como este de la imagen:
si existe en que suite se encuentra o como hago ese efecto, me gustaria que fuera como el de la imgen
Escrito 07 agosto 2010 - 08:37
Escrito 07 agosto 2010 - 08:59
Como que no, si lo que hago es solo copiar y pegar....Anda tu, eso de novato ya no me lo creo para nada
![]()
Salud OS
Escrito 07 agosto 2010 - 09:00
Hola
Como que no, si lo que hago es solo copiar y pegar....
Anda tu, eso de novato ya no me lo creo para nada![]()
Salud OS![]()
Saludos
Escrito 08 agosto 2010 - 12:04
Escrito 08 agosto 2010 - 12:37
Escrito 09 agosto 2010 - 08:38
Escrito 09 agosto 2010 - 08:51
Escrito 09 agosto 2010 - 10:07
Escrito 09 agosto 2010 - 05:44
Me falto ponerles que si lo e intentado hacer de esa forma, incluso se pueden hacer "minicomponentes" usando frames segun el tipo de entrada para el edit, o la version db usando dbedit en lugar de edits, como sea seguira buscando.Hola
El codigo es el que puso el amigo Master23.
Lo único que hay que hacer es:
Modificar el largo de la curva.
No modificar el edit.
Colocar un Panel
Colocar un Shape.
Orden:
Panel, Shape, Edit.
El Shape ya tiene la opcion de redondear las esquinas.
El panel viene de wincontrol.
El edit se le quita el marco y se pone encima del shape.
Osea: Una chapuza pero se ve bien jejejeje.
Saludos
PD: Aqui os dejo los dos códigos para que os riáis un rato de este novato.
Escrito 09 agosto 2010 - 06:12
Escrito 09 agosto 2010 - 06:29
Es que lo que hicimos con el codigo de Master23 no es un componente, es una chapuza.Mmmmm.... y porqué no es como lo esperebas amigo romfrost13 ?... Qué le hace falta al componente ? o mejor dicho, cómo deseas que se comporte ?... a lo mejor nos surgen más ideas ("nos" ?
![]()
)
Saludox !
Escrito 10 agosto 2010 - 12:42
Exacto, lo que hace el codigo del amigo Master23 es dibujar un circulo en los lados del edit, por mas que le busque siempre parecia que las lineas se cortaban, porque las cubre el circulo que se dibuja sobre ellas, al parecer no existe un componente que se vea como yo quiero por lo que te tendre que ponerme manos a la obra sobre uno que se vea asi, pero sera un poco mas adelante porque tengo unos cuantos pendientes que terminar...Hola
Es que lo que hicimos con el codigo de Master23 no es un componente, es una chapuza.
Mmmmm.... y porqué no es como lo esperebas amigo romfrost13 ?... Qué le hace falta al componente ? o mejor dicho, cómo deseas que se comporte ?... a lo mejor nos surgen más ideas ("nos" ?![]()
)
Saludox !
Lo que esta buscando romfrost13 es un componente.
Saludos
Escrito 10 agosto 2010 - 01:42
procedure TForm1.Redondear(Control: TWinControl;Round:integer;ColorLine,ColorFondo:Tcolor;WidthLine,Style,Border,space,STyleF:integer) ; //----------------------------------------------------------------------------- // Bueno basandome en el código de master23 y en el código de about // página [url]http://delphi.about.com/od/adptips2006/qt/focusrectangle.htm[/url] // más unas modificaciones mias queda bastante cuioso // No llega al nivel del Novato JEFE "Caral" Espero te guste el cargo :) // // Ejemplo Redondear(Edit1,2,clGreen,clyellow,2,1,3,3,1); // //----------------------------------------------------------------------------- var R: TRect; Rgn: HRGN; focusRectangle:tshape; //unit ExtCtrls begin focusRectangle := TShape.Create(self) ; case border of 1: focusRectangle.Shape := stRectangle; 2: focusRectangle.Shape := stSquare; //queda mal 3: focusRectangle.Shape := stRoundRect; 4: focusRectangle.Shape := stRoundSquare; //queda mal 5: focusRectangle.Shape := stEllipse; //queda mal 6: focusRectangle.Shape := stCircle; //queda mal end; focusRectangle.Visible := false; case Style of 1: focusRectangle.Pen.Style := psSolid; 2: focusRectangle.Pen.Style := psDash; 3: focusRectangle.Pen.Style := psDot; 4: focusRectangle.Pen.Style := psDashDot; 5: focusRectangle.Pen.Style := psDashDotDot; 6: focusRectangle.Pen.Style := psClear; 7: focusRectangle.Pen.Style := psInsideFrame; 8: focusRectangle.Pen.Style := psUserStyle; 9: focusRectangle.Pen.Style := psAlternate; end; focusRectangle.Brush.Color:=ColorFondo; case STyleF of 1:focusRectangle.Brush.Style := bsSolid; 2:focusRectangle.Brush.Style := bsClear; 3:focusRectangle.Brush.Style := bsHorizontal; 4:focusRectangle.Brush.Style := bsVertical; 5:focusRectangle.Brush.Style := bsFDiagonal; 6:focusRectangle.Brush.Style := bsCross; 7:focusRectangle.Brush.Style := bsDiagCross; end; FocusRectangle.Pen.Color := ColorLine; focusRectangle.Pen.Width := WidthLine; with Control do begin R := ClientRect; rgn := CreateRoundRectRgn(R.Left, R.Top, R.Right, R.Bottom, Round, Round) ; Perform(EM_GETRECT, 0, lParam(@r)) ; InflateRect(r, - 4, - 4) ; Perform(EM_SETRECTNP, 0, lParam(@r)) ; SetWindowRgn(Handle, rgn, True) ; with focusRectangle do begin Parent := Control.Parent; Top := Control.Top - (space+WidthLine); Height := Control.Height + ((space*2)+WidthLine); Left := Control.Left - (space+WidthLine); Width := Control.Width + ((Space*2)+WidthLine); Visible := true; end; Invalidate; end; end;