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?
Jeżeli ustawisz w masce dwa backslashe jeden po drugim \
To uzyskasz pojedynczy backslash.
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ę?
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
A jak później w Turbo Delphi skompilować poprawiony plik?