Insertar varios objetos en tiempo de ejecución

De nuevo soy yo molestando. Verás, tengo un problema y no se como solucionarlo. Creo que para explicarme mejor tengo que decirte como está en panorama. Estoy programando un pequeño sistema para el control de clientes y créditos. La idea es que se puedan guardar, entre otras cosas, los nombres y firmas autorizadas de los clientes (puede haber al menos 2 firmas para el mismo cliente). No se si sea posible, pero me gustaría que al momento de consultar todas las firmas de un mismo cliente, se llame a un formulario donde me despliegue estas. Mi idea original era crear una clase para insertar objetos en el form, pero en primera no tengo mucha experiencia con clases y en segunda, según mis intentos, al momento de agregar una clase a un formulario, no la puedo volver a utilizar.
No se si me he explicado lo suficiente. En pocas palabras, por ejemplo si el cliente 856 tiene 6 firmas registradas, en el formulario que se llama pueda ver los 6 nombres (en un textbox cada uno) y sus respectivas firmas (en un image o un OleBoundControl). Si consulto el cliente 45 quien tiene 8 firmas, me muestre los 7 textbox con sus 7 imágenes... Es posible hacer esto en un form, ¿o sólo con un reporte?, en dado caso que sea posible, ¿serías tan amable de explicarme como?.

2 Respuestas

Respuesta

Y en el caso de crear estos objetos en tiempo de ejecución, ¿cómo les puedo agregar propiedades también en tiempo de ejecución? (Left, top, height, etc).

Respuesta
1
Es bastante complejo pero no complicado.
Agrega al formulario (con el método CreateObject) los TextBox e Image que vas a requerir
Hola, ¿serías tan amable de explicarme cómo usar el método CreateObject?. Tengo pensado usar algo como:
SELECT Tabla
SCAN
IF Tabla.Campo=Text1.value
CreateObject (pero no se como se utiliza esta sentencia)
END IF
Endscan
Gracias.
Atentamente: Karla
¿Para qué utilizas la instrucción Scan... EndScan? ¿Qué el agregar los controles era por cliente?
Ok, deja te explico. Supongams que tengo 2 tablas en una de ellas los datos del cliente(número de cliente. Nombre comercial, etc.) en la otra las firmas autorizadas (número de cliente. Nombre de quien firma y su firma (en formato de imagen)).
Quiero que al momento de consultar por el nombre del cliente, o mejor dicho por su número de cliente, me muestre TODAS las firmas autorizadas de ese cliente, ya que un cliente tiene más de 2 firmas autorizadas, osea, ás de dos personas registradas que pueden firmar. ¿Me explico?.
Por eso uso el SCAN... ENDSCAN para que busque en toda la tabla y me muestre todas las firmas que sean del mismo cliente. Puedo hacer eso o un for, pero como quiera para eso necesito saber cuantas firmas del cliente tengo, por eso pensé que sería más fácil el SCAN. El problema es que, por ejemplo, intenté con:
SET CLASSLIB TO libreria
THISFORM. ADDOBJECT("text","TEXTBOX")
THISFORM. ADDOBJECT("imagen","IMAGE")
THISFORM.text.VISIBLE=.T.
THISFORM.imagen.VISIBLE=.T.
Y funciona bien, pero sólo para un juego de controles. No se como poder agregar n controles. Si intento con un for, me dice que el control ya existe, si intento usar el contador del ciclo for me dice que no se puede. ¿Existe alguna manera de que a una variable tipo carácter eliminarle las comillas que la encierran?, creo que con eso se solucionaría mi problema. Es decir, si variable="text1" alguna forma para que obtenga sólo el text1, sin las comillas.
Como quiera seguiré intentando, espero me puedas ayudar. Saludos y muchas gracias.
Atentamente:
Karla
Intenta:
For nContador = 1 To n
     cTexto = "Text" + AllTrim( Str( nContador ) )
     cImage = "Imagen" + AllTrim( Str( nContador ) )
     With ThisForm
          .AddObject(cTexto,"TEXTBOX")
          .AddObject(cImage,"IMAGE")
     EndWith
End For

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas