Grupowanie co 3 liczby w TEdit

0

Witam, prosiłbym o jakąś podpowiedź jak mogę w okienku TEdit liczbę np. milion zgrupować jak w kalkulatorze windowsa? (1 000 000)
Niby mogę sprawdzać w onkeypress i dodawać/odejmować spację zależnie od tego co użytkownik wpisze, jednak przy kopiowaniu przez użytkownika grzebanie w schowku i usuwanie spacji wg mnie mija się z celem.

0

Użyj TMaskEdit i sam zdefiniuj sposób formatowania.

0

Nawet fajna opcja te ustalanie własnego formatu. Jednak dalej jak ustawię go własny przy kopiowaniu zawartości i przeklejeniu mam spacje między wartościami. Zmieniając w inspektorze obiektów maxlenght(lazarus) na większą to automatycznie mi wraca wartosc maxlength do sposobu formatowania. Czyli mam tutaj dalej problem ze spacjami i doszedł problem ograniczonej ilości znaków w zamian za eliminację problemu formatowania. Czyli faktycznie pozostaje mi tylko modyfikacja schowka?

0

Hmm… no na to wygląda, choć zbyt wielkiego doświadczenia z tą kontrolką nie mam.

Wywalenie białych znaków z ciągu nie jest trudne – wystarczy jedno wywołanie StringReplace. Ja wiem, nie jest to zbyt wygodne, ale cóż… jeśli kontrolka nie chce współpracować, to nic innego nie pozostaje.


Edit: Choć z drugiej strony, TMaskEdit posiada przydatne chronione metody, które przetwarzają ciąg znaków aplikując lub usuwając z niego maskę. Mowa tutaj o:

protected
  procedure SetTextApplyMask(Value: TCaption);
  procedure GetTextWithoutMask(Value: TCaption): TCaption;

Chociaż te sprawiają wrażenie, jakby nie działały. :D

Samo wklejanie danych ze schowka nie jest problematyczne – kontrolka poprawnie formatuje zawartość. Problemem jest kopiowanie tekstu, bo kontrolka nie uwzględnia maski. Tutaj trzeba by się podpiąć i zmodyfikować ciąg, tuż przed wrzuceniem go do schowka.

1 użytkowników online, w tym zalogowanych: 0, gości: 1