Heute bin ich im CSDN -Forum herumgewandert und fand einen solchen Beitrag "Ich habe gerade ein paar Zeilen von exquisiten Code von einem Kampfkunstmeister gesehen, und ich konnte es nicht herausfinden, ich hoffe, Sie können mir einige Ratschläge geben" Die Haltung des Lernens von allen Kampfkunstmeistern, ich sehe nach Abschluss des gesamten Beitrags, dass der Inhalt sehr klassisch ist.
Typ
Tstringgridex = class (tstringgrid);
Procedure tform1.button1click (Absender: tobject);
Beginnen
Wenn tstringgridex (StringGrid1) .RowCount> 5 dann dann
Tstringgridex (Stringgrid1) .Deleterow (5);
Ende;
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------
Dies ist der Code, um eine Codezeile in StringGrid zu entfernen. Ich habe 2 Stunden lang an diesem Problem gearbeitet, konnte es aber nicht lösen. Aber warum hat TStringGridex = Klasse (TstringGrid) die Methode der Deleterow ()? Es ist offensichtlich auch ein ererbter Tstringgrid, der das gleiche ist wie Tstringgrid? Mein Kopf ist zu groß! Ich hoffe, Sie geben mir einen Rat!
Das oben genannte Inhalt der Frage des Plakats ist in der Tat seltsam. Delphi.
1. Die geschützten Mitglieder von Tstringgridex können in TForm zugegriffen werden, da sie in derselben Einheit definiert sind.
2. Die geschützten Mitglieder von TStringGrid können nicht in Tform zugegriffen werden, da sie nicht in derselben Einheit definiert sind.
3.. Da tStringGridex = Klasse (TstringGrid) auf das geschützte Mitglied von TStringGridex zugreifen
4. TStringgridex ist nur ein Vermittler, und seine Funktion erstreckt sich nicht, sondern führt jedoch den Umfang von TstringGrid in diese Einheit ein, sodass TFFORM auf die geschützten Mitglieder von TstringGrid zugreifen kann.
Die Ansicht von ZhangMenyi ist, dass die geschützten und privaten Mitglieder von Delphi für verschiedene Klassen und Objekte in derselben Einheit sichtbar sind und die geschützten Mitglieder in der Einheit der Mitglieder -Unterklasse sicht . geöffnet werden.) Das Problem wurde gelöst. Daraus können wir auch einen Blick auf die objektorientierten Eigenschaften von Delphi werfen.
Obwohl es für die Entwicklung bequem ist, kann es Anfänger verwirren
Nicht einmal streng genug
Aber trotzdem ist Delphi nicht mehr in der Herrlichkeit, lass es uns einfach benutzen
Der Kommentar von Zhang Men San: Es gibt keine perfekte Sache! Es gibt nur Dinge, die geeignet sind!
Kommentar von Zhangmen 4: Die geschützte Methode ist im Allgemeinen versteckt. Daher ist es unmöglich, eine Instanz der Klasse direkt zu generieren Sie können also die geschützte Methode sehen, indem Sie eine Unterklasse -Implementierung in der entsprechenden Einheit schreiben.