Création d'une instance de fiche en utilisant une variable locale

De RAD Studio
Aller à : navigation, rechercher

Remonter à Contrôle du stockage en mémoire des fiches


Un moyen fiable de créer une seule instance d'une fiche modale consiste à utiliser une variable locale du gestionnaire d'événement comme référence à la nouvelle instance. Si une variable locale est employée, il importe peu que ResultsForm soit ou non auto-créée. Le code du gestionnaire d'événement ne fait pas référence à la variable fiche globale. Par exemple :

procedure TMainForm.Button1Click(Sender: TObject);
var
  RF:TResultForm;
begin
  RF:=TResultForm.Create(self)
  RF.ShowModal;
  RF.Free;
end;
void __fastcall TMainMForm::FirstButtonClick(TObject *Sender)
{
    TResultsForm *rf = new TResultsForm(this); // rf is local form instance
    rf->ShowModal();
    delete rf; // form safely destroyed
}

Remarquez que l’instance globale de la fiche n’est jamais utilisée dans cette version du gestionnaire d’événement.

Habituellement, les applications utilisent les instances globales des fiches. Cependant, si vous avez besoin d'une nouvelle instance d'une fiche modale alors que vous utilisez cette fiche dans une portion réduite de votre application (par exemple dans une seule fonction), une instance locale est normalement le moyen le plus rapide et le plus fiable de manipuler la fiche.

Bien entendu, vous ne pouvez pas utiliser de variables locales pour les fiches non modales dans les gestionnaires d'événements car elles doivent avoir une portée globale pour garantir que la fiche existe aussi longtemps qu'elle est utilisée. Show rend la main dès que la fiche est ouverte, donc si vous utilisez une variable locale, la variable locale sort de portée immédiatement.

Voir aussi