Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Text-Property von abgeleiteter Komponente überschreiben (https://www.delphipraxis.net/202642-text-property-von-abgeleiteter-komponente-ueberschreiben.html)

Helmi 24. Nov 2019 19:01

Delphi-Version: XE2

Text-Property von abgeleiteter Komponente überschreiben
 
Hallo,

ich hab eine von TCustomMaskEdit abgeleitete Komponente.

Nun möchte ich in der Komponente die Property Text überschreiben.

Wenn EditMask z. B. #,99 ist und ich nur eine 1 eingebe, dann lautet die Property Text "1," und die Property EditText "1,__".

Ich würde gerne die Text-Property modifizieren, so dass das Komma verschwindet.
Die Logik dazu hab ich schon.
Aber egal wie ich Text beschreibe, nach "aussen" hin wird immer das "Standardtext" verwendet.

Wie kann ich die Text-Property nach meinen Wünschen überschreiben

Uwe Raabe 24. Nov 2019 20:34

AW: Text-Property von abgeleiteter Komponente überschreiben
 
Was willst du mit der EditMask "#,99" denn eigentlich erreichen?

Helmi 25. Nov 2019 03:38

AW: Text-Property von abgeleiteter Komponente überschreiben
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1451982)
Was willst du mit der EditMask "#,99" denn eigentlich erreichen?

Die Eingabe Zahl, optional mit Nachkomma
(kann auch sein, dass die Angabe hier im Editor von EditMask jetzt falsch ist, habs aus dem Gedächtnis geschrieben)

Geronimo 25. Nov 2019 21:29

AW: Text-Property von abgeleiteter Komponente überschreiben
 
...
ich verstehe Helmi so, dass eine ganzzahlige Eingabe hinterher auch ohne Komma dastehen soll.
Das sollte m.E. mit getEditText und setEditText gehen.
Die Maske an sich ist ja eigentlich dafür da, ein bestimmtes Format der Eingabe zu erzwingen,
auch wenn es während der Eingabe mitunter unschön aussieht.

Gruß
Geronimo.

Helmi 26. Nov 2019 12:41

AW: Text-Property von abgeleiteter Komponente überschreiben
 
Hallo,

das Problem ist nicht wie Logik selbst - die steht.

Nur möchte ich die Text-Property überschreiben.

Wenn ich eine z. B. 2 Vorkommastellen hab, aber keine Nachkommestellen, so gibt
Delphi-Quellcode:
Text
die Vorkommastellen + Komma aus.
Delphi-Quellcode:
EditText
Vorkommmastellen + Komma + Unterstrich.

Ich möchte nun die Text-Property überschreiben.

Rolf Frei 26. Nov 2019 13:25

AW: Text-Property von abgeleiteter Komponente überschreiben
 
Soweit ich das sehe kannst du das nicht überschreiben, da weder SetText noch GetText virtual sind.

Du könntest aber versuchen deine eigenen SetText und GetText in deiner Ableitung zu erstellen. Damit "versteckst" du die in der Basisklasse, aber Code wie TCustomMaksEdit(MeinEdit).Text würde nicht deine Version aufrufen sondern die der Basisklasse. MeinEdit.Text hingegen würde deine Version aufrufen.

Delphi-Quellcode:
TMeinEdit = class(TCustomMaskEdit)
private
  function GetText: TMaskedText;
  procedure SetText(const Value: TMaskedText);
public
  property Text: TMaskedText read GetText write SetText;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:31 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz