Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1753 connectés 

  FORUM HardWare.fr
  Programmation

  [Delphi] [dernière ligne droite] Détruire une form proprement...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Delphi] [dernière ligne droite] Détruire une form proprement...

n°93131
Tetedeienc​h
Head Of God
Posté le 24-01-2002 à 21:23:30  profilanswer
 

Vous auriez une méthode pour détruire, mais vraiment détruire une form ?
 
Parce que la, quand je fais ca :
 

Code :
  1. procedure TModifierBateau.BitBtn1Click(Sender: TObject);
  2. begin
  3. if WarningConfirm.ShowModal = mrok then begin
  4. //ShowWindow(RechercheModifBateau.Handle, SW_SHOW);
  5. requetemodifbateau.Active := FALSE;
  6. requetemodifbateau.SQL.Clear;
  7. requetemodifbateau.SQL.Add('UPDATE bateaux SET nom = :nom, immatriculation = :imm , nbpers = :nbperss WHERE N°Bateau = :Numbateau');
  8. requetemodifbateau.Params[0].AsString := nom.Text;
  9. requetemodifbateau.Params[1].AsString := Immatriculation.Text;
  10. requetemodifbateau.Params[2].AsInteger := StrToInt(nbpers.Text);
  11. requetemodifbateau.Params[3].AsInteger := RechercheModifBateau.DBrechercheBateau.Fields[0].A
  12. sInteger;;
  13. requetemodifbateau.ExecSQL;
  14. ModifierBateau.Close;
  15. end;
  16. end;
  17. procedure TModifierBateau.FormClose(Sender: TObject;
  18.   var Action: TCloseAction);
  19. begin
  20. Release;
  21. Freeandnil(ModifierBateau);
  22. end;


 
Ca me renvoie un access violation, qui disparait des que j'enleve la dernière ligne...
 
j'ai essayé de détruire cette form avec freeandnil depuis une autre Tform, mais ca a pas marché :(
 
Il y a un moyen d'éviter cette erreur ?


---------------
L'ingénieur chipset nortiaux : Une iFricandelle svp ! "Spa du pâté, hin!" ©®Janfynette | "La plus grosse collec vivante de bans abusifs sur pattes" | OCCT v12 OUT !
mood
Publicité
Posté le 24-01-2002 à 21:23:30  profilanswer
 

n°93137
[SDF]Poire
Vive Grumly
Posté le 24-01-2002 à 21:38:50  profilanswer
 

T'as essayé  
ModifierBateau.Free;
ModifierBateau := nil;
 
sinon tu fais
if ModifierBateau <> nil then
begin
  ModifierBateau.Free;
  ModifierBateau := nil;
end;


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
n°93141
rufo
Pas me confondre avec Lycos!
Posté le 24-01-2002 à 21:45:45  profilanswer
 

et avec la méthode destroy de l'objet TForm? ça marche, non?

n°93142
Tetedeienc​h
Head Of God
Posté le 24-01-2002 à 21:45:46  profilanswer
 

Pareil poire, cher poire ;)
 
Ouip, on a testé, sans succes... Idem avec Sender as Tobject :(
 
Ce qui est étrange, C que si j'apelle  ModifierBateau.close apres la fonction ci dessus, ca merde.
 
Si je ne l'apelle pas, et que je clique sur la croix de la fenetre apres la modif, ca marche...
 
Donc franchement, je sais pas :(


---------------
L'ingénieur chipset nortiaux : Une iFricandelle svp ! "Spa du pâté, hin!" ©®Janfynette | "La plus grosse collec vivante de bans abusifs sur pattes" | OCCT v12 OUT !
n°93143
Tetedeienc​h
Head Of God
Posté le 24-01-2002 à 21:46:48  profilanswer
 

rufo a écrit a écrit :

et avec la méthode destroy de l'objet TForm? ça marche, non?  




 
Exactement pareil :(


---------------
L'ingénieur chipset nortiaux : Une iFricandelle svp ! "Spa du pâté, hin!" ©®Janfynette | "La plus grosse collec vivante de bans abusifs sur pattes" | OCCT v12 OUT !
n°93145
[SDF]Poire
Vive Grumly
Posté le 24-01-2002 à 21:47:57  profilanswer
 

Tetedeiench a écrit a écrit :

 
Ce qui est étrange, C que si j'apelle  ModifierBateau.close apres la fonction ci dessus, ca merde.
 
Si je ne l'apelle pas, et que je clique sur la croix de la fenetre apres la modif, ca marche...
 
Donc franchement, je sais pas :(  




Et t'as pas le droit d'appeler ModifierBateau.close si tu a détruit ModifierBateau C pour ça que t'as une erreur mémoire


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
n°93149
Tetedeienc​h
Head Of God
Posté le 24-01-2002 à 21:51:06  profilanswer
 

nop, parce que la fonction au dessus s'execute avant le close ...
 
Les lignes freeandnil sont dans le "Onclose" de la Tform ...


---------------
L'ingénieur chipset nortiaux : Une iFricandelle svp ! "Spa du pâté, hin!" ©®Janfynette | "La plus grosse collec vivante de bans abusifs sur pattes" | OCCT v12 OUT !
n°93150
[SDF]Poire
Vive Grumly
Posté le 24-01-2002 à 21:51:37  profilanswer
 

il faut faire d'abord le close puis le free en vérifiant que C pas à nil....


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
n°93151
Tetedeienc​h
Head Of God
Posté le 24-01-2002 à 21:52:13  profilanswer
 

Ce qui est bizarre, C que sur pas mal de forms de mon projet, ca passe ...
 
Sur d'autres, ca passe pas .
 
Capte pas :(


---------------
L'ingénieur chipset nortiaux : Une iFricandelle svp ! "Spa du pâté, hin!" ©®Janfynette | "La plus grosse collec vivante de bans abusifs sur pattes" | OCCT v12 OUT !
n°93153
Tetedeienc​h
Head Of God
Posté le 24-01-2002 à 21:52:49  profilanswer
 

[SDF]Poire a écrit a écrit :

il faut faire d'abord le close puis le free en vérifiant que C pas à nil....  




 
Je peux pas faire de close, ca équivaut a diminuer la form (elle est en TformStyle = MDIchild )
 
Donc des que l'utilisateur veut la fermer ben je la détruit, tout simplement.

 

[edtdd]--Message édité par Tetedeiench--[/edtdd]


---------------
L'ingénieur chipset nortiaux : Une iFricandelle svp ! "Spa du pâté, hin!" ©®Janfynette | "La plus grosse collec vivante de bans abusifs sur pattes" | OCCT v12 OUT !
mood
Publicité
Posté le 24-01-2002 à 21:52:49  profilanswer
 

n°93154
[SDF]Poire
Vive Grumly
Posté le 24-01-2002 à 21:52:53  profilanswer
 

procedure TForm4.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Action := caFree;
end;
 
+ de free ou autre et roulez :)


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
n°93156
[SDF]Poire
Vive Grumly
Posté le 24-01-2002 à 21:53:33  profilanswer
 

On a à chaque fois qq secondes de décalage et C relou ;)


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
n°93158
Tetedeienc​h
Head Of God
Posté le 24-01-2002 à 21:55:45  profilanswer
 

MAGNIFIQUE SDF POIRE !
 
Décidément, tu es mon dieu :)
 
Tu peux m'expliquer cependant ?


---------------
L'ingénieur chipset nortiaux : Une iFricandelle svp ! "Spa du pâté, hin!" ©®Janfynette | "La plus grosse collec vivante de bans abusifs sur pattes" | OCCT v12 OUT !
n°93161
[SDF]Poire
Vive Grumly
Posté le 24-01-2002 à 21:58:06  profilanswer
 

c simple : caFree demande a libéré la form à la fermeture au lieu de la cacher.  
G eu le même pb y a pas longtemps ;)
Merci Buitoni  :jap:


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
n°93162
Tetedeienc​h
Head Of God
Posté le 24-01-2002 à 22:05:09  profilanswer
 

[SDF]Poire a écrit a écrit :

c simple : caFree demande a libéré la form à la fermeture au lieu de la cacher.  
G eu le même pb y a pas longtemps ;)
Merci Buitoni  :jap:  




Ouh que oui bourdail :love:
 
Plus que 3 jours, et pas mal de choses a faire ( un flux au démarrage pour lire un fichier texte contenant des données "basiques" qu'on doit mémoriser, pas mal de Tform d'ajout, modification et suppression d'enregistrement (chiant) et quelques autres trucs...
 
MAIS HEUREUX BOURDAIL on a plus d'obstacle a priori...
 
Meme OLE s'est plié a notre volonté ;)


---------------
L'ingénieur chipset nortiaux : Une iFricandelle svp ! "Spa du pâté, hin!" ©®Janfynette | "La plus grosse collec vivante de bans abusifs sur pattes" | OCCT v12 OUT !
n°93164
[SDF]Poire
Vive Grumly
Posté le 24-01-2002 à 22:07:48  profilanswer
 

Tetedeiench a écrit a écrit :

 
Plus que 3 jours, et pas mal de choses a faire ( un flux au démarrage pour lire un fichier texte contenant des données "basiques" qu'on doit mémoriser



Pour ça utilise un TIniFile C trés pratique  ;)


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
n°93170
Tetedeienc​h
Head Of God
Posté le 24-01-2002 à 22:14:21  profilanswer
 

Oui mais bon, ca reste un projet ...
 
Donc on veut montrer qu'on sait en faire des choses ;)
 
Si on y arrive pas pour le flux, on fera via le Tinifile, sois en persuadé !
 
On aura pas créé de composant par contre, mais on aura programmé un menu de la maurkitue a gauche ;)


---------------
L'ingénieur chipset nortiaux : Une iFricandelle svp ! "Spa du pâté, hin!" ©®Janfynette | "La plus grosse collec vivante de bans abusifs sur pattes" | OCCT v12 OUT !
n°93180
[SDF]Poire
Vive Grumly
Posté le 24-01-2002 à 22:24:39  profilanswer
 

euh... T fada ? utilise TIniFile pour sauver des options... va pas te galéré avec 1 TFileStream


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
n°93204
Tetedeienc​h
Head Of God
Posté le 24-01-2002 à 22:48:11  profilanswer
 

ouaip, tu dois avoir raison ;)


---------------
L'ingénieur chipset nortiaux : Une iFricandelle svp ! "Spa du pâté, hin!" ©®Janfynette | "La plus grosse collec vivante de bans abusifs sur pattes" | OCCT v12 OUT !
n°93205
[SDF]Poire
Vive Grumly
Posté le 24-01-2002 à 22:49:58  profilanswer
 

Tetedeiench a écrit a écrit :

ouaip, tu dois avoir raison ;)  




Oui oui je te jure :D  
 :hello:


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
n°93219
antp
Super Administrateur
Champion des excuses bidons
Posté le 24-01-2002 à 23:32:57  profilanswer
 

haaa j'arrive trop tard, c pcq y a un super topic de 8 pages sur un boolay et ses 1 millions de mail sur software & reseau
 
Release;
Freeandnil(ModifierBateau);
 
normal que ca plante
 
Release -> libère la form quand elle a traité tous ses évenements
FreeAndNil -> libère la form tt de suite et la met a nil
 
tu dois faire:
 
Release;
ModifierBateau := nil;
 
la form sera bien libérée par le release (normalement).
 
 
edit: apparemment la solution de Poire avec le caFree est bonne aussi, ça doit faire la même chose.

 

[edtdd]--Message édité par antp--[/edtdd]


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°93220
Tetedeienc​h
Head Of God
Posté le 24-01-2002 à 23:33:14  profilanswer
 

Merde, il est ou ce composant ?
 
je le vois pas :(


---------------
L'ingénieur chipset nortiaux : Une iFricandelle svp ! "Spa du pâté, hin!" ©®Janfynette | "La plus grosse collec vivante de bans abusifs sur pattes" | OCCT v12 OUT !
n°93221
antp
Super Administrateur
Champion des excuses bidons
Posté le 24-01-2002 à 23:37:57  profilanswer
 

Tetedeiench a écrit a écrit :

Merde, il est ou ce composant ?
 
je le vois pas :(  




 
quel compo ?


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°93224
Tetedeienc​h
Head Of God
Posté le 24-01-2002 à 23:49:43  profilanswer
 

Tinifile :(


---------------
L'ingénieur chipset nortiaux : Une iFricandelle svp ! "Spa du pâté, hin!" ©®Janfynette | "La plus grosse collec vivante de bans abusifs sur pattes" | OCCT v12 OUT !
n°93227
antp
Super Administrateur
Champion des excuses bidons
Posté le 24-01-2002 à 23:54:35  profilanswer
 

c'est pas un compo visuel.
ex :

Code :
  1. with TIniFile.Create(ChangeFileExt(Application.ExeName, '.ini')) do
  2.   try
  3.     unentier := ReadInteger('Section', 'Clé', Valeur par defaut);
  4.     unechaine := ReadString('Section', 'Clé2', Valeur par defaut );
  5.     WriteBool('Section', 'Clé3', valeur);
  6.   finally
  7.     Free;
  8.   end;


 
etc...

 

[edtdd]--Message édité par antp--[/edtdd]


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°93232
Tetedeienc​h
Head Of God
Posté le 25-01-2002 à 00:04:17  profilanswer
 

Ouh ma foi C zouli ...
 
Je le note :jap:


---------------
L'ingénieur chipset nortiaux : Une iFricandelle svp ! "Spa du pâté, hin!" ©®Janfynette | "La plus grosse collec vivante de bans abusifs sur pattes" | OCCT v12 OUT !
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [Delphi] [dernière ligne droite] Détruire une form proprement...

 

Sujets relatifs
[DElphi 6] utilisation de direct Draw...[Delphi] Fonction CreateDirectory
[Delphi 6] un composant qui ne veut pas s'installer.... ??![DELPHI] Controle Image
Delphi et Systray[Delphi] On peut pas acceder a une BDD avec la version perso ?
[DELPHI] Menu par prog - chope le nom de l'objet[Delphi 6] création de composant... contenant une image...
[Delphi] Putain de glyph sur un Speedbutton...[Delphi/VC++] Comment utiliser une DLL VC++ avec Delphi 6 ?
Plus de sujets relatifs à : [Delphi] [dernière ligne droite] Détruire une form proprement...


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR