Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 11-03-2004
atirado atirado is offline
Miembro
 
Registrado: mar 2004
Posts: 41
Poder: 0
atirado Va por buen camino
Unhappy 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.
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 15:58:45.


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
Copyright 1996-2007 Club Delphi