J'ai une application qui possède un bouton permettant d'ouvrir une deuxième application (qui ne possède qu'une fenêtre affichant du texte contenu dans un fichier).
Le problème est que lorsque je ferme la deuxième application, j'obtiens une Runtime Error 216:
je ferme la 2ème applien utilisant un bouton, le message d'erreur apparaît mais l'appli se ferme correctement (apparemment) et je peux continuer comme si rien ne s'était passé (entre autre, je peux réouvrir l'appli).
L'erreur intervient si j'utilise l'application sous Windows 95. Par contre, sous Windows NT, tous se passe bien.
Merci de votre aide !
Voici les morceaux de code concernés (sous Delphi Professionnel 4.0):
// Code 1ère appli: Clic sur le bouton d'ouverture de la 2ème appli
procedure TfrmMain_Config.Men_TextClick(Sender: TObject);
var
PMsgAide,PLigneCommande: PChar;
begin
GetMem(PMsgAide, 256);
if EtatAide then // La deuxième application est déjà lancée
begin
SchedClientConv.PokeData(SchedClientItem.DDEItem, StrPCopy(PMsgAide, 'Activ'))
else
begin
EtatAide := True;
SchedClientConv.OpenLink;
SchedClientConv.PokeData(SchedClientItem.DDEItem, StrPCopy(PMsgAide, 'Show'))
end;
FreeMem(PMsgAide, 256);
end;
// Code 1ère appli: Après fermeture de la 2ème appli
procedure TfrmMain_Config.SchedClientConvClose(Sender: TObject);
begin
EtatAide := False;
end;
// Code 2ème appli: clic sur le bouton de fermeture
procedure TfrmHelpText.btnHelpCloseClick(Sender: TObject);
begin
Close;
end;
// Code 2ème appli: code de fermeture de la 2ème appli
procedure TfrmHelpText.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Release;
Application.Terminate;
end;
A voir également:
Pb fermeture d'une appli ouverte à partir d'une autre
En faite, ton code n'a aucun problème, c que sous win95, delphi demande des dll qui ne se trouve quesiment plus. ton prog tourne pour du win32 alors qu'il n'est pas fait pour. Ne t'inuqiète pas, change de OS, prend win98se, c bien mieu :)