Foros Club Delphi

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

Khronos 28-08-2008 10:40:55

SetErrorMode
 
Hola, tengo una duda con este procedimiento. Según tengo entendido evita que aparezcan mensajes de error... la verdad es que la uso bastante y no se si es del todo correcto.. es decir, ¿puede provocar algún error inesperado?

Ejemplo:

Código Delphi [-]
//*************************************************************
//Procedure: onFormDestroy
//*************************************************************
procedure TFMain.FormDestroy(Sender: TObject);
begin
    try
      SkinnedForm.Free;
      PHOENIX_Free;
      FFolder.Free;
      Rip.Free;
      Lame.Free;
    except on exception do begin
      SetErrorMode(SEM_FAILCRITICALERRORS);
    end;
  end;
end;

Sin el SetErrorMode me da errores al cerrar el formulario que no consigo depurar, pero de esta forma funciona bien...
Otro procedimiento:

Código Delphi [-]
//*************************************************************
//Procedure: OnPauseClick
//*************************************************************
procedure TFMain.PageControlChange(Sender: TObject);
begin
    case PageControl.TabIndex of
      1: begin
          try
            AlignColummns;
            if PlayList.Items.count > 0 then begin
            PlayList.Items[TrackIndex].Selected:= true;
            CenterTrackSelection;
            end;
            PlayList.SetFocus;
          except
          end;
         end;
      3: begin
            try
              Rip.Update;
                if Rip.Tracks.Count > 0 then begin
                  PageCopy.ActivePage:= tabCopy;
                  CopyList.Items.AddStrings(Rip.Tracks);
                end else
                  PageCopy.ActivePage:= tabNoCopy;
            except on exception do begin
              SetErrorMode(SEM_FAILCRITICALERRORS);
           end;
        end;
      end;
  end;
end;

Aqui funciona perfectamente el código pero sin el SetErrorMode me da un error.
No se si es muy correcto lo que estoy haciendo en mi código...

Salu2

cHackAll 28-08-2008 20:35:03

Las excepciones notifican que algo va mal, lo que tu haces es "callar" al Güindos y por ende estas perdiendo el control de tu aplicacion.

Khronos 28-08-2008 22:17:42

Ok, gracias cHackAll lo tendré en cuenta.

Salu2


La franja horaria es GMT +2. Ahora son las 00:00:51.

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