¿Cómo puedo saber el tamaño que debo asignar al buffer?
Para saber el tamaño que debo asignar al "buffer" para obtener los valores de un TLISTBOX (mediante GetText) empleo:
Código:
int x; ¿Dónde tengo el error? |
Hola, es que para preguntar la longitud de un ítem en un TListBox, debes usar la constante LB_GETTEXTLEN.
WM_GETTEXTLEGHT es para obtener los captions de los controles o el texto de los Edits, etc... Así pues: Código:
int x = SendMessage(ListBox1->Handle, LB_GETTEXTLEN, 0, 0); Saludos. |
Gracias, esk. Tienes razón, pero lo que pretendo no es obtener el tamaño de un item, sino de todos los que componen en objeto TListBox.
|
Hola,
Cita:
Cita:
|
Tienes razón, DEC... un bucle e ir recorriendo (y sumando) cada uno de los elementos del control. Ahora bien: me extraña que si mediante "p = ListBox1->GetText" o "p := ListBox.GetText" obtenemos todos los valores ("Enero/nFebrero/Marzo/n...") debe existir una función que nos devuelva el tamaño que debemos previamente asignar al "buffer".
Un saludo |
Si te refieres a que el TListBox tiene la propiedad text y te devuelve todos los ítems como un String, esto es porque internamente usa un TStringList, que sí tiene esta propiedad text.
Y el Delphi/C++ Builder no usa este tipo de llamadas (SendMessage) para trabajar, sino que usa sus métodos, etc... evidentemente que su forma mas baja si usa cosas por el estilo, pero no las clases de alto nivel, hehe, no se si se me ha entendido. Saludos. |
La franja horaria es GMT +2. Ahora son las 02:32:55. |
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