FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Quiero crear objetos en tiempo de ejecución con IntraWeb en Delphi 7
Hola a todos! Un saludo desde México
Mi problema es el siguiente: Estoy trabajando con IntraWeb para Delphi 7 y queremos que al correrse la aplicación para Web, nos muestre un grid que sea seleccionable y borrable. Estuve checando los Demos de IntraWeb y el Features me mostró algunos, sin embargo, ninguno se adecúa a lo que necesito. Esto es, que se creen en tiempo de ejecución controles de tipo CheckBox, pero que permanezcan y se puedan borrar con un botón aquellas filas que lo tengan checado. Creo el control de la siguiente manera: Código:
procedure TformCeldaClickeable.IWAppFormCreate(Sender: TObject); Var //con esto controlo la posición dentro de la tabla ColActual, FilaActual: Integer; //declaro el objeto para poderlo crear chkBorrar: TIWCheckBox; begin //inicializo un arreglo para controlar la fila actual //se inicializa en '2' porque si es '1', indica que el CheckBox está checado //si es '0', no está checado. for ColActual := 0 to 100 do intIndexBorrado[ColActual] := 2; with grdGrid1 do begin For FilaActual := 0 to RowCount-1 do For ColActual := 0 to ColumnCount-1 do begin //sólo pone las coordenadas en texto Cell[FilaActual,ColActual].Text := '('+IntToStr(FilaActual)+','+IntToStr(ColActual)+')'; Cell[FilaActual,ColActual].Alignment := taCenter; //la columna 3 es donde se insertará el CheckBox if(ColActual = 3) then begin //se crea el checkbox en tiempo de ejecución ChkBorrar := TIWCheckBox.Create(Self); Cell[FilaActual,ColActual].Control := ChkBorrar; chkBorrar.Caption := ''; //e intento que si está checado, le asigne un '1', si no un '0' if chkBorrar.Checked then intIndexBorrado[ColActual] := 1 else intIndexBorrado[ColActual] := 0; end; end; end; end; Sin embargo, a pesar de que el arreglo intIndexBorrado es global, cuando presiono el botón y trato de borrar la fila actual, no lo hace: Código:
procedure TformCeldaClickeable.IWButton1Click(Sender: TObject); Var ColActual, FilaActual: Integer; begin with grdGrid1 do begin //empiezo celda por celda for FilaActual := 0 to RowCount-1 do for ColActual := 0 to ColumnCount-1 do begin //si estoy en la columna donde está el CheckBox //pregunto si en el índice del arreglo está marcado como //para borrado y borro esa fila If(ColActual = 3) then begin if(IntIndexBorrado[ColActual] = 1) then DeleteRow(FilaActual); end; end; end; end; ¿Por qué involucro el índice? simplemente porque la instancia del checkbox se crea dentro del método FormCrate, pero se destruye ahí mismo, no puedo referenciarla porque no tiene un nombre ni nada. Lo que pretendo es que dicha instancia del objeto pueda asignársele un nombre y que permanezca "viva" de manera de referenciarla globalmente con el clic del botón. Espero me puedan ayudar. Muchas gracias de antemano y reciban un saludo enorme Alejandro Última edición por atirado fecha: 12-03-2004 a las 01:17:45. |
#2
|
||||
|
||||
Hola. En primer lugar, bienvenido a los foros. He intentado leer el código, pero se hace muy dificil sin formato. Te recomiendo que edites tu mensaje, agregando la etiqueta \[code\] para que sea mas legible, y quizas asi alguien mas (o yo mismo) podamos ayudarte.
También te recomiendo la lectura de la guia de estilo de los foros. (ambos vínculos están al pie de este mensaje.). Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#3
|
|||
|
|||
Hola, muchas gracias por el tip! lo tendré en cuenta
|
#4
|
||||
|
||||
Cita:
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
|
|
|