Delphi. Funkcja kodująca do ISO 8859-2

0

Cześć, mam funkcje:

 function WinToIso(S: String): String;
var i: Integer;
begin
  for i := 1 to Length(S) do // WIN -> ISO
    case S[i] of
      Chr(165): S[i] := Chr(161);
      Chr(140): S[i] := Chr(166);
      Chr(143): S[i] := Chr(172);
      Chr(185): S[i] := Chr(177);
      Chr(156): S[i] := Chr(182);
      Chr(159): S[i] := Chr(188);
    end;

  Result := S;
end; 

Jak połączyć ją z SynMemo na aktywnej zakłądce ?

0

W sensie?
Możesz podpiąć się pod zdarzenie OnKeyPress.

0

chodzi mi, żeby automatycznie podpiąć to pod SynMemo

0

Podepnij się pod zdarzenie OnKeyPress i modyfikuj każdy naciskany klawisz.

0

ale będziesz miał krzaki na ekranie
lepiej wywołuj tę funkcję tylko przy zapisywaniu i odwrotną do niej przy odczytywaniu
a najlepiej jakbyś po prostu znalazł komponent gdzie możesz ustalić kodowanie

0

tak i robić cały program od nowa z nowym komponentem ?


Spróbuje z tym OnKeyPres

0

Dokładnie ja bym zrobił tak jak napisał Użytkownik @unikalna_nazwa, a temat przenoszę do Newbie, ponieważ dotyczy podstaw.

0

Dalej nie działa prawidłowo, gdy wpisuje np "ś" jest ok, ale gdy przesyłam je z Edit do SynMemo jest coś takiego : Treœæ a gdy wpisze jest normalne: TREŚĆ.

0

No bo zmieniłeś znaki w locie pewnie i dlatego tak jest. Zrób jak Ci pisaliśmy, zmieniaj kodowanie przy zapisie oraz odczycie pliku.

0

aha, tylko, że mi w SynMemo przy wysłaniu tekstu z Edita pokazuje Treœæ zamiast Treść a nie dopiero po zapisie i otworzeniu w przeglądarce

0

Ech, no bo robisz pewnie tę konwersję. Rób ją wtedy kiedy napisaliśmy. Czy taki kod również tak pokaże?

  TwojEdit.Text := 'Treść';

Bo jeżeli tak to coś masz skopane z Delphi. Bez "ruszania" i "mieszania" funkcjami operującymi na kodach ASCII nie ma prawa coś takiego się zdarzyć. Sprawdziłem.

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