Ich habe gerade ein bisschen Code (D5) gesehen, wo sie verwendet haben ...
%Vor%Es scheint gut zu funktionieren, aber ich habe es immer benutzt ...
%Vor%Ich habe beide beim Laden eines TMemo verwendet und wieder scheint es keinen Unterschied zu geben.
%Vor%Gibt es einen Grund, warum ich einen über den anderen benutzen sollte? Wenn ja, welches?
Eigentlich verwende ich für TMemo normalerweise ...
%Vor%das scheint auch zu funktionieren.
Danke
Die Text
-Eigenschaft soll verwendet werden, um die Textdarstellung eines Feldes, das in einem DataAware-Steuerelement bearbeitet wird, im Gegensatz zu DisplayText
Eigenschaft, die Ihnen eine Zeichenfolge gibt, die den Wert für den Benutzer darstellt (sie kann Satzzeichen oder eine andere Dekoration für den einfachen Wert enthalten).
Enthält die Zeichenfolge, die in einem datensensitiven Steuerelement angezeigt werden soll, wenn sich das Feld im Bearbeitungsmodus befindet
Ein typisches Beispiel ist ein TFloatField mit der Eigenschaft Currency
auf True
. Das DisplayText
gibt Ihnen einen String mit der Zahl, die Kommas enthält (falls erforderlich), das Dezimaltrennzeichen und ein Währungssymbol. Die Eigenschaft Text
gibt Ihnen eine Zeichenfolge ohne Kommas oder Währungssymbol.
Beide obigen Eigenschaften können angepasst werden, indem Sie einen OnGetText
Event-Handler schreiben Hier können Sie benutzerdefinierte Logik schreiben, um convert den Wert in eine Zeichenfolgendarstellung umzuwandeln. Der Parameter DisplayText
gibt an, ob die gewünschte Zeichenfolge den Wert für die Bearbeitung darstellen soll oder nicht.
Auf der anderen Seite verwendet die AsString
-Eigenschaft eine einfachere Konvertierung zwischen dem Basisdatentyp und der Zeichenfolge. Jeder TField-Nachfolger implementiert die virtuelle GetAsString-Methode mithilfe von Funktionen aus der RTL, um diese Repräsentation auszuführen. Im Anschluss an das TFloatField-Beispiel ruft diese Klasse zu diesem Zweck FloatToStr()
auf.
Alles in allem lautet die Antwort auf Ihre Frage : AsString
gibt die gleiche Zeichenfolge wie die Text
-Eigenschaft zurück, wenn kein OnGetText-Ereignishandler vorhanden ist, aber bei einem Ereignis möglicherweise anders ist Handler oder ein nicht standardmäßiger TField-Nachkomme.
Ich kann nicht sagen, was für Sie geeigneter ist, weil es davon abhängt, was für den zurückgegebenen Wert beabsichtigt ist, aber wenn Sie es verwenden, um die Werte für den Benutzer in der Benutzeroberfläche anzuzeigen (als Codebeispiel) ), Rate ich Ihnen, die DisplayText-Eigenschaft zu verwenden.