znaczek "/" w maskedit

0

W jaki sposób uzyskać w editmask'u taki znaczek jak "/"? Oczywiście nie jest mi potrzebny do żadnych ustawień regionalnych ani tym bardziej nie myślę ich zmieniać użytkownikowi tylko jak uzyskać w polu maskedit ten znaczek "/" niezaleznie od ustawień regionalnych?

0

Jeżeli ustawisz w masce dwa backslashe jeden po drugim \
To uzyskasz pojedynczy backslash.

0

To uzyskałem metodą prób i błędów ale mi chodzi o to żeby uzyskac "kreskę" w drugą stronę tzn "/". Jest to możliwe czy musze samemu oprogramowac maskę?

0

Ten slash to znany błąd oprogramowania Borlanda. W USA separatorem w datach jest właśnie slash / i Delphi po wpisaniu / wstawia "-" bo w Polsce separatorem daty jest znak minus (myślnik).

W Delphi w pliku maskutils.pas na początku są linijki:

 { intl literals }
  mMskTimeSeparator = ':';
  mMskDateSeparator = '/';

Prawdopodobnie wystarczy zmienić mMskDateSeparator. Gdyby to jednak nie zadziałało to trzeba będzie przerobić funkcję MaskDoFormatText która zaminia slash na myślnik.

Dokładnie trzeba przerobić ten fragment:

CType := MaskGetCharType(EditMask, MaskOffset);

      if CType in [mcLiteral, mcIntlLiteral] then
      begin
        Result := Copy(Result, 1, Offset - 1) +
          MaskIntlLiteralToChar(EditMask[MaskOffset]) +
          Copy(Result, Offset, Length(Result) - Offset + 1);
        Inc(Offset);
      end

w ten sposób:

CType := MaskGetCharType(EditMask, MaskOffset);

      if CType = mcIntlLiteral then
      begin
        Result := Copy(Result, 1, Offset - 1) +
          MaskIntlLiteralToChar(EditMask[MaskOffset]) +
          Copy(Result, Offset, Length(Result) - Offset + 1);
        Inc(Offset);
      end
      else if CType = mcLiteral then
      begin
        Result := Copy(Result, 1, Offset - 1) +
          EditMask[MaskOffset] +
          Copy(Result, Offset, Length(Result) - Offset + 1);
        Inc(Offset);
      end
0

A jak później w Turbo Delphi skompilować poprawiony plik?

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