Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Quiero crear objetos en tiempo de ejecución con IntraWeb en Delphi 7 (https://www.clubdelphi.com/foros/showthread.php?t=8197)

atirado 11-03-2004 20:15:11

Quiero crear objetos en tiempo de ejecución con IntraWeb en Delphi 7
 
Hola a todos! Un saludo desde México :D
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 :p

Alejandro

jachguate 11-03-2004 21:19:04

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.

;)

atirado 11-03-2004 22:35:36

Hola, muchas gracias por el tip! lo tendré en cuenta :p

jachguate 11-03-2004 23:06:31

Cita:

Empezado por yo mismo
Te recomiendo que edites tu mensaje

Esto lo podes hacer con el botón "Editar" que aparece en la parte inferior derecha de tu primer mensaje...


La franja horaria es GMT +2. Ahora son las 09:00:39.

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