Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   TForm como parametro (https://www.clubdelphi.com/foros/showthread.php?t=30006)

Delpho 07-02-2006 00:08:44

TForm como parametro
 
Holaa chavales/as!!
Aqui estoy intentando pasar un formulario (TForm) como parametro para un procedimiento.
procedimiento:
Código:

procedure Vaciar(Grid:TStringGrid;progreso:TProgressBar;texto:TEdit;form:TForm);
begin
 for i := 0 to form.Grid.RowCount - 1 do begin
    form.Grid.Rows[i].Clear;
 end;
 form.progreso.Position:=0;
 form.progreso.Refresh;
 form.texto.Text:='';
end;

llamada:
Código:

procedure TForm1.Sala72Click(Sender: TObject);
begin
 for i := 0 to Form8.StringGrid1.RowCount - 1 do begin
    Form8.StringGrid1.Rows[i].Clear;
 end;
 Form8.ProgressBar1.Position:=0;
 Form8.ProgressBar1.Refresh;
 Form8.Edit1.Text:='';
end;

procedure TForm1.Sala82Click(Sender: TObject);
begin
 //for i := 0 to Form9.StringGrid1.RowCount - 1 do begin
 //    Form9.StringGrid1.Rows[i].Clear;
 //end;
 //Form9.ProgressBar1.Position:=0;
 //Form9.ProgressBar1.Refresh;
 //Form9.Edit1.Text:='';
 Vaciar(StringGrid1,ProgressBar1,Edit1,F9);
end;

El caso es que tengo varios formularios, y cuando en el formulario principal clickeo en vaciar sala 1, vaciar sala2, etc se tienen que ejecutar esas acciones, pero para no repetir mucho codigo pues quiero hacer un procedimiento.
Aver si alguien me puede echar una mano para llamarla, y en caso de que no se pueda, como se podria hacer
Muchas Gracias!!

fliper 07-02-2006 02:57:00

soy oscar
 
tu lo q estas aciendo es un cine para iaig

xavinet 07-02-2006 09:30:42

Propuesta
 
Hola!

Podrias mirar de trabajar con una clase que descienda de la TForm.

Código Delphi [-]
TMiForm = Class(TForm)
public 
  procedure Vaciar;
end;

Así después sólo tendras que llamar al procedure.

Código Delphi [-]
Form1.Vaciar;

Ya que todos los formularios tendran el mismo procedimiento.

No se si te habre ayudado mucho, pero la descripción de lo que pretendes es un poco confusa, o yo poco iluminado hoy, todo podria ser :rolleyes:

Hasta pronto!

Neftali [Germán.Estévez] 07-02-2006 10:13:08

Si pasas el form ya no te hace falta pasar el Grid y el progreso y viceversa.

Código Delphi [-]
procedure Vaciar(AGrid:TStringGrid; AProgreso:TProgressBar; ATexto:TEdit);
begin
 for i := 0 to AGrid.RowCount - 1 do begin
     AGrid.Rows[i].Clear;
 end;
 AProgreso.Position:=0;
 AProgreso.Refresh;
 ATexto.Text:='';
end;

Ahora sólo tienes que llamarlo desde cada form y pasarle como parámetro el Grid y el Progreso.

¿Qué problema hay?


La franja horaria es GMT +2. Ahora son las 18:55:21.

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