Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 01-07-2008
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Eso está muy bien. Yo había intentado hacerlo llegando más o menos a lo mismo pero no podía cambiar el color (por eso no había dicho nada). Veo que lo han resuelto con un Refresh. Estupendo.

// Saludos
Responder Con Cita
  #2  
Antiguo 01-07-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 24
enecumene Va por buen camino
¡Vale!, Me ha funcionado de maravillas, he quitado el canvas.Brush.style, porque al estar en bsClear no me muestra la selección del item. Muchas gracias Eduarcol, eres un master .

Saludod.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #3  
Antiguo 01-07-2008
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 28
eduarcol Va por buen camino
Cita:
Empezado por roman Ver Mensaje
Eso está muy bien. Yo había intentado hacerlo llegando más o menos a lo mismo pero no podía cambiar el color (por eso no había dicho nada). Veo que lo han resuelto con un Refresh. Estupendo.

// Saludos
Pues eso es de mi epoca cuando trabajaba en Pascal o C con la BGI, para que cambiara el color del texto habia que darle un clrscr, y buscando eso encontre el refresh funciono y sorpresa


Por cierto primera vez que trabajo con la canvas.
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #4  
Antiguo 01-07-2008
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Yo había hecho un ejemplo a dos colores pero en un DBGrid y sin necesidad del Refresh, por ello no me pasó por la mente, aunque en realidad ya no me pasaba nada por la mente
Qué bueno que encontraste la forma. Ahora ya sabemos algo más

// Saludos
Responder Con Cita
  #5  
Antiguo 02-07-2008
Avatar de xEsk
[xEsk] xEsk is offline
Miembro Premium
 
Registrado: feb 2006
Posts: 454
Poder: 21
xEsk Va por buen camino
He probado el ejemplo "final", y siento decir, que pierde la gracia del TTreeView xD Los SubItems aparecen en el nivel 0

Aquí un pequeño parche xD

Código Delphi [-]
procedure TForm2.trvDptosCustomDrawItem(Sender: TCustomTreeView;
  Node: TTreeNode; State: TCustomDrawState; var DefaultDraw: Boolean);
var
   rc: TRect;
   // Details: TThemedElementDetails; // ESTO ES basura de una prueba, lo comento en lugar de borrarlo, para que se entienda el mensaje de enecumene xD

begin
   DefaultDraw := False;
   with trvDptos do
   begin
      Canvas.Brush.Style := bsClear;
      Canvas.Font.Color := clBlue;
      Canvas.Font.Name := 'Tahoma';
      Canvas.Font.Size := 10;
      rc :=  Node.DisplayRect(False);
      // sub-niveles
      rc.Left:=(Node.Level + 1) * TTreeView(Sender).indent;
      // miramos si esta seleccionado
      if Node.Selected then
          Canvas.Brush.Color:=clSilver
      else
          Canvas.Brush.Color:=clWindow;
      // pintamos texto
      Canvas.TextOut(rc.Left, rc.Top, Copy(Node.Text, 1, Pos('(', Node.Text)));
      Canvas.Refresh;
      Canvas.Font.Color := clRed;
      Canvas.Font.Name := 'Tahoma';
      Canvas.Font.Size := 10;
      Canvas.TextOut(rc.Left + Canvas.TextWidth(Copy(Node.Text, 1, Pos('(', Node.Text))), rc.Top, EntreValores(Node.Text, '(', ')'));
      Canvas.Refresh;
      Canvas.Font.Color := clBlue;
      Canvas.Font.Name := 'Tahoma';
      Canvas.Font.Size := 10;
      Canvas.TextOut(rc.Left + Canvas.TextWidth(Node.Text) - 3, rc.Top, Copy(Node.Text, Pos(EntreValores(Node.Text, '(', ')'), Node.Text) + Length(EntreValores(Node.Text, '(', ')')), Pos(')', Node.Text)));
 end;
end;

Saludos.

Última edición por xEsk fecha: 04-07-2008 a las 17:00:57. Razón: Comentada la variable: Details
Responder Con Cita
  #6  
Antiguo 02-07-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 24
enecumene Va por buen camino
¡Vaya!, excelente, una cosa, ¿donde utilizas la variable Details?, no lo encuentro en el código.

Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #7  
Antiguo 04-07-2008
Avatar de xEsk
[xEsk] xEsk is offline
Miembro Premium
 
Registrado: feb 2006
Posts: 454
Poder: 21
xEsk Va por buen camino
Cita:
Empezado por enecumene Ver Mensaje
¡Vaya!, excelente, una cosa, ¿donde utilizas la variable Details?, no lo encuentro en el código.

Saludos.
Ops, es un error, es basura de una prueba que realicé! xDD

Ahora lo borraré! :P
Responder Con Cita
  #8  
Antiguo 02-07-2008
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Una pregunta xEsk:

El rc ¿no se puede obtener directamente si en lugar de usar Node.DisplayRect(False) usamos Node.DisplayRect(True)?

// Saludos
Responder Con Cita
  #9  
Antiguo 04-07-2008
Avatar de xEsk
[xEsk] xEsk is offline
Miembro Premium
 
Registrado: feb 2006
Posts: 454
Poder: 21
xEsk Va por buen camino
Cita:
Empezado por roman Ver Mensaje
Una pregunta xEsk:

El rc ¿no se puede obtener directamente si en lugar de usar Node.DisplayRect(False) usamos Node.DisplayRect(True)?

// Saludos
Cierto, cambiándolo a true se soluciona

Saludos
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Capturar parte de un texto Roilo SQL 3 12-01-2006 20:36:43
Buscar parte de un texto en campo de tabla jadelphi Varios 3 22-04-2005 17:15:03
treeview ocultar parte del texto de nodo adfa OOP 5 25-11-2003 00:13:47
como buscar dentro de una consulta un texto que sea parte de la descripcion viajero2015 Conexión con bases de datos 1 15-11-2003 05:18:09
Eliminar parte de un archivo de texto miguelb Varios 1 20-05-2003 16:34:49


La franja horaria es GMT +2. Ahora son las 19:54:23.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi