Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Como utilizar un THeaderControl

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Como utilizar un THeaderControl Responder citando

Hola a todos,

Estoy intentado utilizar un THeaderControl y no me aclaro, ¿podeis echarme una mano?

Tengo un TPanel y en el he colocado un THeaderControl, he definido las secciones pero no se como utilizalo.

Gracias por adelantado.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Alguna aportacion ????

Un saludo.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Hola kalux, unicamente lo que puedo hacer es pasarte esto sacado de un libro, pero espero que te sirva:
Cita:

las secciones de un controlTHeaderControl pueden ser definidas tanto por la fase de diseño como durante la ejecucion del programa.En el primer caso tendremos que usar la propiedad "Sections" haciendo doble click sobre ella en el inspector de objetos, para acceder a la ventana de edicion de secciones. esta ventana es similar a la usada para definir paneles de una barra de estado.
tras pulsar el boton Add New podremos seleccionar el estilo de la seccion, introducir el texto que deseamos mostrar en ella, establecer la anchura y sus limites o fijar la alineacion del texto.Tambien podremos indicar si es posible pulsar las secciones como si fueran botones, generando el evento OnSectionClick correspòndiente.
Durante la ejecucion del programa tambien es posible definir las secciones de una cabecera, de forma similar a como definiamos los paneles de un TStatusBar, ya que el funcionamiento de ambos controles es muy parecido



Código:

Cosnt AnsiString Ficha[5] [3] = {
{"ftp","x2ftp.olu.fi"."programacion"},
{"www","borland.com","Inprise - Division Borland"},
{"gopher","g.ugr.es","Recursos"},
{"www","www.intel.com","Intel"},
{"www","www.ole.es","Sistema de busqueda en castellano"}};

Cita:

Cada vez que sea necesario dibujar el contenido de la ficha esta generara un evento OnPaint, que nosotros vamos a aprovechar para tomar los datos contenidos en la ficha y dibujarlos en el Canvas de la ventana teniendo en cuenta el ancho de cada una de las secciones de la cabecera.En caso de que sea necesario,la longitud de cada cadena se recorta hasta que su extension, en anchura no sea superior a la de la seccion. El codigo seria el siguiente:

Código:

Void __Fastcall TForm1::FormPaint(TObject*Sender)
{
  int X,Y;
  AnsiString Texto;

  //Partimos de una coordenada vertical
  Y = Cabecera->Heigth +2;
 
  for(int N = 0;N <5; N++){ //Recorremos cinco fichas
  X = 2; //Establecemos coordenada horizontal
  for (int M = 0; M <3; M++) {//Tres datos por ficha
  //Obtenemos el texto a mostrar
  Texto = Ficha[N] [M];
//vamos eliminando caracteres del final
//hasta ajustar el texto al espacio disponible
  while (Canvas->TextWidth(Texto) >=
     Cabecera->Sections->Items[M]->Width)
     Texto.SetLength(Texto.Length()-1);

//Pintamos el texto
  Canvas->TextOut(X,Y,Texto);
//Y pasamos a la siguiente columna
  X += Cabecera->Sections->Items[M]->Width;
}
//Pasamos a la siguiente fila
  Y += Canvas->TextHeigth(Ficha[1] [1]);
  }
}



void __fastcall TForm1::CabeceraSectionResize(THeaderControl *HeaderContrlol, THeaderSection *Section)

//Invalidamos el contenido de la ficha
//obligando a que sea redibujada
  Invalidate();


vuelvo a insistir esto esta sacado de un libro, no hay ninguna intencion de copiar ni difundir material protegido por las leyes de autor unicamente se trata de echar una mano a alguien que tiene una duda
_________________
El hombre es el unico ser que tropieza dos veces en la misma piedra ( en mi caso infinitas veces)
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Muchas gracias, voy a estudiarlo.

Un saludo.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.