Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-05-2003
mrmanuel mrmanuel is offline
Miembro
 
Registrado: may 2003
Posts: 135
Poder: 22
mrmanuel Va por buen camino
listado con varios datos usando TListBox o TDBGrid

Hola a todos.

Tengo que hacer un listado de texto normal y corriente, pero q tiene varios valores en una misma linea.

Ejem:

Cabecera1 Cabecer2 cabecer3
-----------------------------------------

nombre1 apel1_1 apel1_2 (Lista)
nombre2 apel2_1 apel2_2
..
..
nombreN apelN_1 apelN_2



En dicho listado, hay unas cabeceras puestan con un (Label normal) y separando los datos le he metidio una linea divisoria (En plan cutre)

En un principio funciona bien, pero cuando cambio de un Pc a otro, con distinto sistema operativo (Win_Me, Win XP), el listado se me descontrola, en el sentido de que los datos no aparecen justo debajo de las cabeceras, tal y como tenian que aparecer. Y los datos se montan en la linea divisoria (anteriormente mencionada).


Mi pregunta es. ¿como puedo hacer el listado, sin que se me salga del hueco divisorio q le doy?

Los datos no estan en ninguna tabla, por lo q no he podio usar no DBGrid directamente.

El tipo de letra que uso, es la Arial normal, disponible en los dos equipos.
Responder Con Cita
  #2  
Antiguo 17-05-2003
Ruben_Cu Ruben_Cu is offline
No confirmado
 
Registrado: oct 2003
Ubicación: Mariel, Cuba
Posts: 271
Poder: 0
Ruben_Cu Va por buen camino
Hola mrmanuel, ¿porque no pruebas mostrarlos en un ListView?
Creo que con esa componente podrías lograrlo, revisa la ayuda con relación a ella recuerdo que tiene ejemplos de como usarla.
Saludos
Responder Con Cita
  #3  
Antiguo 17-05-2003
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 25
__cadetill Va por buen camino
Hola

Si coges la idea de Rube_cu, solo decirte que en mi web tienes una demo de como funciona dicho componente (la web en la firma)
Responder Con Cita
  #4  
Antiguo 22-05-2003
mrmanuel mrmanuel is offline
Miembro
 
Registrado: may 2003
Posts: 135
Poder: 22
mrmanuel Va por buen camino
Hola

no consigo echarlo a andar

consigo sacar un dato en una columna, pero no se como meter otro dato en las siguientes columnas

Para meter el dato en la 1ª columna de la lista hago lo siguiente:

"Form.Lista_TListView.Items.Add.Caption:= Dato"

y lo q obtengo es:

Columna 1 Columna 2 Coumnal 3
--------------------------------------------------------
DAto1
Dato2
Dato3


¿como puedo meter datos en las siguientes columnas?
Responder Con Cita
  #5  
Antiguo 22-05-2003
Ruben_Cu Ruben_Cu is offline
No confirmado
 
Registrado: oct 2003
Ubicación: Mariel, Cuba
Posts: 271
Poder: 0
Ruben_Cu Va por buen camino
Hola mrmanuel, te decía que en la ayuda habían ejemplos aqui te envio una copiado de ella, los objetos están creados en tiempo de ejecución y los textos cargados a partir de un arreglo de cadenas, pienso que puedes adecuarlo a tu caso. En cualquier caso si sigues con problemas regresa por acá.
Código:
 procedure TForm1.FormCreate(Sender: TObject);

const
  Names: array[0..5, 0..1] of string = (
    ('Rubble', 'Barney'),
    ('Michael', 'Johnson'),
    ('Bunny', 'Bugs'),
    ('Silver', 'HiHo'),
    ('Simpson', 'Bart'),
    ('Squirrel', 'Rocky')
    );

var
  I: Integer;
  NewColumn: TListColumn;
  ListItem: TListItem;
  ListView: TListView;
begin
  ListView := TListView.Create(Self);
  with ListView do
  begin
    Parent := Self;
    Align := alClient;

    ViewStyle := vsReport;

    NewColumn := Columns.Add;
    NewColumn.Caption := 'Last';
    NewColumn := Columns.Add;
    NewColumn.Caption := 'First';

    for I := Low(Names) to High(Names) do
    begin
      ListItem := Items.Add;
      ListItem.Caption := Names[i][0];
      ListItem.SubItems.Add(Names[i][1]);
    end;
  end;

end;
Saludos
Responder Con Cita
  #6  
Antiguo 22-05-2003
mrmanuel mrmanuel is offline
Miembro
 
Registrado: may 2003
Posts: 135
Poder: 22
mrmanuel Va por buen camino
muchas gracias, me ha funcionado lo que queria hacer.


pero ahora tengo un problema, necesito sacar el valor seleccionado (uno de los que he cargado anteriormente) al pulsar sobre ella con el ratón


con una lista norma lo hago de la siguiente manera:

I:= F_Vis_Test_Exist.Lista.ItemIndex; //Indice activo de la lista
Linea:= F_Vis_Test_Exist.Lista.Items.Strings[i];


pero en este tipo de lista no funciona el invento
Responder Con Cita
  #7  
Antiguo 22-05-2003
Ruben_Cu Ruben_Cu is offline
No confirmado
 
Registrado: oct 2003
Ubicación: Mariel, Cuba
Posts: 271
Poder: 0
Ruben_Cu Va por buen camino
Hola , en este caso la filosofía cambia un poco, si quieres extraer los valores pasado al ListView hay que considerar que esto difiere del ListBox, en este caso debes extraer cada uno de las cadenas pasadas al ListView una forma de colocarlas por ejemplo en un edit, sería;
Código:
 procedure TForm1.ListView1SelectItem(Sender: TObject; Item: TListItem;
  Selected: Boolean);
begin
        edit1.Text:=item.Caption+' '+item.SubItems[0];
end;
En caso de tener mas subitems los agregarías incrementando su índice.
Espero te complemente esta aclaración y suerte
Saludos
Responder Con Cita
Respuesta



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


La franja horaria es GMT +2. Ahora son las 06:56:30.


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