En travaillant avec mon projet de jeu de composants basé sur TFrames, je rencontre plusieurs instances où je souhaite remplacer un composant de TFrame (généralement non visuel) en cours d'exécution par un qui est généré dynamiquement au moment de l'exécution.Référence ou didacticiel pour clarifier la confusion de référence d'objet
Je pense que j'ai probablement trouvé la réponse à mon problème immédiat here, mais dans mon propre creuser et expérimenter avant de trouver cela, il est devenu clair que j'ai beaucoup à apprendre sur la façon dont Delphi gère les références d'objet , en particulier en ce qui concerne les formulaires/cadres, et (en général) les propriétés de classe qui sont des références d'objet plutôt que des valeurs sans pointeur.
Un exemple spécifique d'une expérience est ici:
(sur un formulaire avec trois TButtons)
procedure TForm1.Button3Click(Sender: TObject);
var
MyButton : TButton;
begin
MyButton := TButton.Create(Self);
MyButton.Caption := 'New Button';
MyButton.Parent := Form1;
Form1.Button2 := MyButton;
Form1.Repaint;
ShowMessage('Button2 caption = ' + Form1.Button2.Caption);
end;
ne remplace pas Bouton2 avec le bouton créé, mais ne montre à la fois sur la forme. Les résultats de ShowMessage indiquent la légende de Button2 still = "Button2"
Je me pose des questions comme, "Est-ce que ce 'non-remplacement' est unique aux formes, ou est-ce que cela serait aussi vrai pour d'autres classes?" En bref, j'ai découvert un autre gouffre de ma propre ignorance. ;-) Je trouve qu'en travaillant avec des références d'objet/d'objet/derefencing/class definitions/class properties etc., il arrive souvent que les choses se comportent exactement comme elles le souhaitent, mais d'autres fois, pas du tout, et même pas près.
Il est clair que j'ai besoin d'étudier dans ce domaine. Plutôt que de question stupide après question stupide après tournant autour de ce sujet, je pensais que je demande ceci:
Qu'est-ce qu'un vraiment bonne référence ou tutoriel pour obtenir une meilleure compréhension sur les distinctions subtiles Re: poignées Delphi de telles choses?
Merci d'avance pour toute votre aide!
Qu'essayez-vous d'accomplir? Comme toutes les langues et les environnements Delphi a sa propre façon de faire les choses. Créer des formulaires dynamiques est vraiment très facile en Delphi, donc si vous expliquez ce que vous essayez d'atteindre, vous pouvez aider –