TMemo::Lines vs. TMemo::Lines::Strings
-
Lable1->Caption=Memo1->Lines->Strings[0]; // So hat man es normaler Weise gelernt... Label1->Caption=Memo1->Lines[0]; // Geht auch... wo ist der Unterschied?
-
Laut BCB Hilfe:
Der Operator [] ermöglicht den Zugriff auf die Strings in der Liste über den Index.
AnsiString operator[](int Index) { return Strings[Index]; }
Beschreibung
Verwenden Sie den Operator [], um über den Index auf die Strings in der Liste zuzugreifen. Dieser Operator ist mit der Eigenschaft Strings äquivalent. So sind die beiden folgenden Anweisungen zulässig und führen zum gleichen Ergebnis:
MyStrings->Strings[0] = "This is the first string";
(*MyStrings)[0] = "This is the first string";
Anders: es gibt keinen Unterschied...
-
Also ist es im Prinzip unsinnig, dieses TMemo::Lines::Strings... Danke, hat mir schon weitergeholfen.
MfG Windoof
-
Unsinnig ist es nicht, da du ja sao keine neuen Einträge hinzufügen kannst. Ist halt nur eine Art Abkürzung, um auf vorhandene Zeilen zuzugreifen.
-
Hä? Werden Einträge nicht mit TMemo::Lines::Add(AnsiString s) hinzugefügt?
-
Ähmmm... hoppala... stimmt. Mein Fehler.
-
Egal, trotzdem danke.
-
@Windoof: Würdest du dich mit OOP etwas auskennen (setz dich endlich mal mit den Konzepten auseinander) und dich mal e twas belesen, was TMemo::Lines eigentlich ist, würde dir plötzlich ein Licht aufgehen, dass TMemo::Lines::Strings nicht extra implementiert wurde, sondern durch die Vorgeschichte sozuagen einfach gegeben ist. Die Programmierer haben dann hald einfach noch für Lines den Operator [] implementiert.
-junix
-
Ja, TMemo::Lines ist von der Klasse TStrings abgeleitet, und an dieser Klasse ist die Eigenschaft Strings eigentlich sinnlos, da das ein String-Array ist, aber bei TStrings[idx] auch bloß ein String ausgegeben wird. Ich kann mir vorstellen, dass dann nur zu TStrings::Strings gelinkt wird, dann wäre dieser Index-Operator auch sinnlos, oder es ist sinnlos, die Eigenschaft Strings als Public anzugeben. Aber 2 Elemente in einer Klasse, die das selbe bedeuten, sind im Prinzip sinnlos.