Ma page d'accueil: http://www.tommstudio.com/
Dans la programmation Delphi, nous devons éviter les fuites de mémoire en désinstallant tous les objets. Cependant, si vous ne faites pas attention dans le programme, il est facile de défaire le même objet plusieurs fois, ce qui entraînera de graves erreurs, ce qui entraînera un plan de l'application ou même de s'écraser.
Veuillez consulter le programme suivant:
|
Dans l'exemple ci-dessus, une erreur sera générée lors de l'exécution sur Button3.free, le bouton2 est annulé lors de l'appel de Button2. Free, mais parce que Button2 est l'hôte de Button3 et Button3 est également annulé en même temps, l'erreur se produit inévitablement. .
Pour éviter l'erreur ci-dessus, il y a deux façons: d'abord, supprimez tous les composants auxquels l'hôte est avant sa suppression. Cette méthode est très simple, il suffit de transférer Button2.Free et Button3. Free dans l'exemple ci-dessus. Deuxièmement, définissez la variable Button3 sur NIL AVANT Button3.Free est exécuté. La procédure est la suivante:
|
Dans le programme ci-dessus, la définition de Button3 à NIL est d'empêcher l'application de réutiliser la mémoire de l'objet indéfini. Lorsque vous appelez la méthode d'objet libre, il détermine si l'objet est nul. Méthodes virtuelles liées Informations sur la table de données. Destroy ne modifie aucune modification de l'adresse mémoire où les objets existent, donc si vous testez l'adresse mémoire après l'appel de détruire, il peut toujours être valide. Ainsi, lorsqu'un objet est appelé deux fois dans le programme sans définir la référence de l'objet à NIL, la référence de l'objet se réfère toujours à l'adresse de mémoire occupée par l'objet avant qu'il ne soit désinstallé, ce qui est la raison de l'erreur.
Bien sûr, dans le processus de développement réel, la plupart des erreurs ne seront pas aussi évidentes et la solution doit être déterminée en fonction des détails, et le problème ne sera pas résolu en ajoutant une phrase si simplement. Ici, je n'explique qu'une idée de programmation, qui joue un rôle dans l'attraction de Jade.