PDA

Ver la Versión Completa : Como paso un la intancia Tstrings de un TComboBox (ComboBox.items) por parametro?


orfeo
05-05-2003, 05:09:36
hola, tengo Delphi 6 y nesecito ayuda con POO de delphi, tengo un procedimeinto que devuelve una lista de string (Tstrings) de una consulta de SQL,
el problema es que no logro hacer que ande con dicho parametro....

la declaracion es:

procedure insert(a,b,string; VAR items:Tstrings)


si lo llamo como `metodo('','',ComboBox.items)` (ComboBox:TComboBox) me dice que no es posible enviar el objeto como parametro, por lo tanto si o si tengo que mandar el comboBox completo (el problema es que no queda muy reutilizable)

Como la solucion de mandar el combo, no me gusta.. Estoy usando una istancia temporal de un Tstrings (items) y la uso como variable de intercambio y luego le hago un conboBox.Items.AddStrings(items);

esta solocion, me gusta mas que la primera, pero lleva codigo de mas...

como hago para pasar solo el Tstrings como parametro?

roman
05-05-2003, 07:58:52
Posteado originalmente por orfeo
procedure insert(a,b,string; VAR items:Tstrings)

...

como hago para pasar solo el Tstrings como parametro? [/B]

Lo único que debes hacer es quitar VAR de la declaración. En Delphi las variables de tipo objeto son en realidad punteros al objeto real. Si declaras:

procedure insert(a,b,string; items:Tstrings);

items es un puntero a un objeto de tipo TStrings por lo cual no hace falta pasarlo por referencia (var). Cualquier cosa que le cambies dentro del procedimiento permanecerá al salir de él.

// Saludos