Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   cannot focus a disabled or invisible window en Delphi 7 y Delphi 2010 (https://www.clubdelphi.com/foros/showthread.php?t=72344)

Neeruu 11-02-2011 17:43:52

cannot focus a disabled or invisible window en Delphi 7 y Delphi 2010
 
Hola a todos...

Tengo este fragmento de código en un formulario.
Código Delphi [-]
Function TFrmLocalidades.ShowPopup(MyStatePopup:TStatePopup):Variant;
begin
  Case MyStatePopup of
    spNewRecord:begin
                  ModuloDatos.Localidad.Append;
                end;
    spEditRecord: begin
                             ....
                       end;
  end;

  if FrmLocalidades.ShowModal = mrOk then
    begin
      ....
    end
  else
    begin
      ....
    end;
end;

Esto se llama desde otra ventana de la siguiente forma:

Código Delphi [-]
    With FrmLocalidades do
      Result := ShowPopup(MyStatePopup);


En el OnNewRecord del DataSet Localidad (En un modulo de datos) tengo este codigo:
Código SQL [-]
  DataSet.FieldByName('LOCALIDAD').FocusControl;

Bueno la cuestion es que cuando ejecuto la function con MyStatePopup = spNewRecord, se ejecuta el append y el evento OnNewRecord (del Modulo de datos), en este se ejecuta la linea que hace un focuscontrol y es aca donde se produce el error de:

Código SQL [-]
cannot focus a disabled or invisible window

Todo esto es en delphi 2010, pero esto en delphi 7 anda y no tira ninguna exception...

Tendrían alguna idea de lo que puede estar pasando??? Es delphi 2010???
Alguna sugerencia???

Saluda Atte Neeruu!!!:)

Neeruu 12-02-2011 18:22:25

cannot focus a disabled or invisible window en Delphi 7 y Delphi 2010
 
Hola a todos...

Sin poder determinar porque en delphi 7 se comporta de una forma y delphi 2010 de otra, he modificado la función dejándola así:

Código Delphi [-]
Function TFrmLocalidades.ShowPopup(MyStatePopup:TStatePopup):Variant;
begin
  Case MyStatePopup of
    spNewRecord:begin
                  try
                     ModuloDatos.Localidad.DisableControl;    
                     ModuloDatos.Localidad.Append;
                  finally
                     ModuloDatos.Localidad.EnabledControl;
                  end;
                end;
    spEditRecord: begin
                             ....
                  end;
  end;

  if FrmLocalidades.ShowModal = mrOk then
    begin
      ....
    end
  else
    begin
      ....
    end;
end;

Saluda Atte Neeruu!!! :)


La franja horaria es GMT +2. Ahora son las 09:35:03.

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