Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-12-2013
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.198
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Varias cosas:

1.- En las opciones configura TForm1 como no autocreado.
2.- En tu thread implementa un constructor en el que tengas que pasar una referencia a TForm1 y la guardas en una variable privada. El resto de las llamadas en las que intervenga TForm1, las haces con esa variable que apuntará al Form que te interesa en cada momento.
3.- Como dice Neftali, usa Synchronize, para las funciones que hagan uso de TForm1.

Saludos.
Responder Con Cita
  #2  
Antiguo 27-12-2013
n03l n03l is offline
Miembro
 
Registrado: feb 2007
Posts: 73
Poder: 18
n03l Va por buen camino
Ok Voy a investigar como es eso de los constructores ya que nunca lo e usado saludos...

Muchas Gracias de Verdad......
Responder Con Cita
  #3  
Antiguo 27-12-2013
n03l n03l is offline
Miembro
 
Registrado: feb 2007
Posts: 73
Poder: 18
n03l Va por buen camino
Ok, despues de tirar puñaladas al aire y haciendo uso del copy paste e hecho lo siguiente:

En el form
Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, StdCtrls, Buttons;

type
  TForm1 = class(TForm)
    BitBtn2: TBitBtn;
    ProgressBar1: TProgressBar;
    Label1: TLabel;
    procedure BitBtn2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;



implementation
Uses Hilos;
var
Hilo:THilo;

{$R *.dfm}

procedure TForm1.BitBtn2Click(Sender: TObject);
begin

 //Aqui no se como capturar el nombre del form sin utilizar Form1. ya
 // que el nombre es dinamico
Hilo:=THilo.Create(Form1);
Hilo.FreeOnTerminate:=true;
Hilo.Resume;
end;

end.


y en el hilo me da el siguiente error al tratar de compilarlo
[DCC Error] Hilos.pas(39): E2003 Undeclared identifier: 'ProgressBar1'

el Hilo
Código Delphi [-]
unit Hilos;

interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, StdCtrls, Buttons;

type
  THilo = class(TThread)
  private
  FName: TForm;

    { Private declarations }
  protected
    procedure Execute; override;
     public
    constructor Create(Name: TForm);

  end;


implementation

uses Unit1;


constructor THilo.Create(Name: TForm);
begin
  inherited Create(True);
  FName := Name;
  FreeOnTerminate := True;
end;


procedure THilo.Execute;
begin


FName.ProgressBar1.Position:=0;
FName.BitBtn2.Enabled:=false;
repeat

FName.ProgressBar1.Position:=FName.ProgressBar1.Position+1;
 Sleep(500);
until FName.ProgressBar1.Position=FName.ProgressBar1.Max;

FName.BitBtn2.Enabled:=true;
end;


end.
Responder Con Cita
  #4  
Antiguo 27-12-2013
Avatar de Caminante
Caminante Caminante is offline
Miembro
 
Registrado: oct 2010
Ubicación: Lima - Peru
Posts: 338
Poder: 14
Caminante Va camino a la fama
FName es de tipo Tform y debe ser de tipo TForm1

Saludos
Responder Con Cita
  #5  
Antiguo 27-12-2013
n03l n03l is offline
Miembro
 
Registrado: feb 2007
Posts: 73
Poder: 18
n03l Va por buen camino
Hola Caminante, ya lo intente y me marca error
[DCC Error] Hilos.pas(11): E2003 Undeclared identifier: 'TForm1'

saludos
Responder Con Cita
  #6  
Antiguo 27-12-2013
n03l n03l is offline
Miembro
 
Registrado: feb 2007
Posts: 73
Poder: 18
n03l Va por buen camino
Tenias razon ya lo solucione poniendo TForm1. el problema era que yo tenenia la referencia a Form1

aqui:
Código Delphi [-]
implementation

//uses Unit1;

lo puse aqui y me funciono
Código Delphi [-]
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, StdCtrls, Buttons,Unit1;

saludos y gracias a todos los que me colaboraron
Responder Con Cita
  #7  
Antiguo 28-12-2013
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.339
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Sigues accediendo al formulario y al progressbar sin usar Synchronize.
Creo que antes o después acabará dándote problemas.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Como evito abrir 2 veces el mismo form? daragor Lazarus, FreePascal, Kylix, etc. 13 14-08-2016 09:37:07
mismo reporte varias veces qreport yossi Impresión 0 20-07-2011 12:13:16
Error Al Crear Varias Veces El Mismo Form ManuelPerez Varios 7 18-09-2007 21:31:02
Quiero liberar my query para usar el mismo varias veces zcatzz Conexión con bases de datos 7 27-01-2007 23:39:45
Abrir varias veces el mismo form Phacko Varios 7 25-09-2004 05:22:01


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


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