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 30-06-2005
gryphus gryphus is offline
Miembro
 
Registrado: abr 2005
Posts: 40
Poder: 0
gryphus Va por buen camino
ListBox en columnas

Buenas a todos!
Estoy haciendo un programa en el que, una parte de el, coge una información de una base de datos y la introduce en un list box. Hasta aquí perfecto...
Bien, lo que hago es coger dos datos distintos, pongamos el código y el nombre, y los introduzco en el listbox de esta manera...

Código Delphi [-]
 CodiInciden:=trim(f4str(d4field(DBPOper,'codigo'))); //Cojo el código de la BD
 NomInciden:=trim(f4str(d4field(DBPOper,'descripcio'))); //Cojo el nombre de la BD
 FrmCodiIncidencia.ListOpcions.TabWidth :=30; //Tamaño de las columnas
 FrmCodiIncidencia.ListOpcions.Items.Add(CodiInciden+ ^I + NomInciden); //Agrego los 2 datos al listbox.
 FrmCodiIncidencia.ListOpcions.Columns:=1; //Número de columnas (contando que la primera columna es 0)
 rc:=d4skip(DBPOper,1); //La base de datos es CODEBASE 

De acuerdo, mi duda es, como cojo yo el primer valor de este listbox?? Sólo me sale coger el contenido de toda la linia y eso no me sirve...
Pensava que sería de manera que tuviera que poner alguna palabra y luego [0], como si de un array se tratara... voy mal encaminado?
He buscado en la ayuda pero no se encontrarlo... al estar todo en inglés me es bastante más complicado...
En fin... gracias de antemano!!
__________________
En la vida hay tres cosas que nunca vuelve atrás, la flecha soltada, la palabra dicha y la oportunidad perdida.
Responder Con Cita
  #2  
Antiguo 30-06-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
este hilo te viene al pelo

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #3  
Antiguo 30-06-2005
gryphus gryphus is offline
Miembro
 
Registrado: abr 2005
Posts: 40
Poder: 0
gryphus Va por buen camino
Unhappy

Gracias por tu respuesta! Pero tengo un problema, entiendo parte del post. Hasta aquí bien, en cuanto nos vamos para destruir y todo el rollo me pierdo...
A ver... es totalmente necesario que cree un objecto para hacer esto? O sea, yo antes creaba 2 variables distintas y las ponia en el listbox. Es posible hacerlo sin los objetos?
Cabe decir que de la otra manera lo he medio entendido, o sea que lo mas seguro que acabe usandolo un momento o otro... pero ahora me seria más sencillo (o eso creo ) hacerlo sin crear una clase de este tipo. Me equivoco de mucho??
__________________
En la vida hay tres cosas que nunca vuelve atrás, la flecha soltada, la palabra dicha y la oportunidad perdida.
Responder Con Cita
  #4  
Antiguo 30-06-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Quedate solo con este mensaje

La coletilla de roman de destruir los objetos es esto:
Código Delphi [-]
procedure Tform1.FormClose(...);
var i:integer;
begin
  for i:=0 to combo.items.count-1 do
     combo.items.Objects[i].Free;
end;

No tienes que andar con constructores y destructores de ningun tipo jeje. En realidad estas utilizando una clase como si fuera un registro, pero administrando la memoria, es decir, creandolos cuando los necesitas y destruyendolos cuando dejas de usarlos.

Cuando quieras acceder a un elemento, el código exacto para trabajar es:
Código Delphi [-]
procedure mio;
var E:TEmpleado;
     mivalor:integer;
begin
  E:= TEmpleado(combo.items.Objects[i]);
  mivalor := E.Numero;
end;
Aqui no tienes que crear ni destruir nada. Se crea cuando vas a meter los elementos en el combo, y lo destruyes.... pues al cerrar la ventana o justo antes de hacer combo.items.Clear;

Por muchas prisas que tengas, te aconsejo que pierdas 10 minutos en ver esto. Es una solución muy potente para todo tipo de situaciones, incluso con la propiedad Tag que tienen todos los controles y que nadie utilizamos al principio. ¡¡ Ya tienes el código y las explicaciones !! y la verdad, es muy simple.
w

Un saludo
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #5  
Antiguo 01-07-2005
gryphus gryphus is offline
Miembro
 
Registrado: abr 2005
Posts: 40
Poder: 0
gryphus Va por buen camino
Thumbs up Yuju!

Uau! Es verda! Ahora si que lo entiendo! Ok! Grácias. Ahora ya lo he echo y me a funcionado.
La verdad es que al final lo prové con un ListView y ya hacía lo que yo quería, pero estéticament no me gustaba mucho... para lo que tiene que hacer, el listbox me va mejor y me a servido mucho el código.
Thanks!
__________________
En la vida hay tres cosas que nunca vuelve atrás, la flecha soltada, la palabra dicha y la oportunidad perdida.
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 19:26:02.


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