PDA

Ver la Versión Completa : SetErrorMode


Khronos
28-08-2008, 10:40:55
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:


//*************************************************************
//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:


//*************************************************************
//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