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

Respuesta
 
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
  #2  
Antiguo 11-03-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
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
Responder Con Cita
  #3  
Antiguo 11-03-2004
atirado atirado is offline
Miembro
 
Registrado: mar 2004
Posts: 41
Poder: 0
atirado Va por buen camino
Hola, muchas gracias por el tip! lo tendré en cuenta
Responder Con Cita
  #4  
Antiguo 11-03-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
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...
__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
Respuesta



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 10:28:43.


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