Aujourd'hui, je me promenais dans le forum CSDN et j'ai trouvé un tel post "Je viens de voir quelques lignes de code exquis d'un maître des arts martiaux, et je n'ai pas pu le comprendre, j'espère que vous pourrez me donner des conseils" avec le. Attitude d'apprendre de tous les maîtres des arts martiaux, je vois après avoir terminé l'intégralité du post, j'ai trouvé que le contenu est très classique.
taper
TStringGridex = class (tStringGrid);
Procédure tform1.button1Click (expéditeur: tobject);
Commencer
Si tStringGridex (StringGrid1) .RowCount> 5 alors
TStringGridex (StringGrid1) .DeleterOw (5);
fin;
-------------------------------------------------- --------
Il s'agit du code pour supprimer une ligne de code dans StringGrid. J'ai travaillé sur ce problème pendant 2 heures mais je n'ai pas pu le résoudre. Mais pourquoi tStringGridex = classe (tStringGrid); C'est évidemment aussi un TStringGrid hérité, qui est le même que TStringGrid? Ma tête est trop grande! J'espère que vous me donnez quelques conseils!
Ce qui précède est le contenu de la question de l'affiche. Delphi.
1. Les membres protégés de TStringGridex sont accessibles dans TFORM car ils sont définis dans la même unité.
2. Les membres protégés de TStringGrid ne peuvent pas être accessibles dans TFORM car ils ne sont pas définis dans la même unité.
3. Depuis TStringGridex = Class (TStringGrid), l'accès au membre protégé de TStringGridex est équivalent à l'accès au membre protégé de TStringGrid
4. TStringGridex n'est qu'un intermédiaire, et sa fonction ne s'étend pas, mais il introduit la portée de TStringGrid dans cette unité, donc TFORM peut accéder aux membres protégés de TStringGrid.
La vue de Zhangmenyi est que les membres protégés et privés de Delphi sont visibles pour diverses classes et objets dans la même unité, et les membres protégés peuvent être visibles dans l'unité de la sous-classe membre, donc TStringGridex hérite uniquement de TStringGrid et ne le fait pas . Toute modification peut également rendre les membres protégés dans TStringGrid visibles dans l'unité de tStringGridex (une autre raison est que TStringGrid n'est pas défini dans cette unité, vous ne pouvez donc faire de cette unité un ami être ouvert. Nous pouvons également obtenir un aperçu des caractéristiques orientées objet de Delphi.
Bien qu'il soit pratique pour le développement, il peut confondre les débutants
Pas même assez rigoureux
Mais de toute façon, Delphi n'est plus dans la gloire, utilisons simplement
Commentaire de Zhang Men San: Il n'y a pas de chose parfaite! Il n'y a que des choses qui conviennent!
Commentaire de Zhangmen 4: La méthode protégée est généralement masquée, il est donc impossible de générer directement une instance de la classe, mais à Delphi, la classe située dans la même unité est automatiquement considérée comme une classe d'amis, et il peut accéder à sa méthode protégé , afin que vous puissiez voir la méthode protégée en écrivant une implémentation de sous-classe dans l'unité correspondante.