[C++ BCB6] Trzy języki z jednym EDIT

0

Witam,

muszę zrobić możliwość wpisywania do jednego EDITA (TEdit lub TLabeledEdit) zarówno liter polskich, niemieckich jak i rosyjskich.

Jeśli chciałbym to zrobić wykorzystując czcionkę jednobajtową, to potrzebowałbym zrobić / edytować jakąś czcionkę i pewnie powywalać krzaki i w ich miejsca powstawiać odpowiednie znaki. Później podczas wpisywania do takiego edita, można np. ustawić jakiegoś radiobuttona, że teraz wpisuję niemieckie znaki i w zależności od tego co użytkownik wpisze, to trzeba wstawić do EDITa np: wpisał U, a do EDITa wstawiam U z kropkami.

Tylko nie wiem jak zrobić tę czcionkę (nigdy nie robiłem) i nie wiem jak w Builderze C++ 6 ustawić, żeby ten edit korzystał z tej właśnie czcionki.

Jeśli chciałbym skorzystać z UNICODE'a to już w ogóle chyba masakra :). Wystarczy zdefiniować UNICODE i cała aplikacja przestawia się na UNICODA, tak? A można ustawić UNI tylko na kilka editów?
No i trzeba znaleźć gdzie w UNI są znaki niemieckie, rosyjskie.. :|


Jakie Wy byście mi poradzili rozwiązanie?

0

Wystarczy zdefiniować UNICODE i cała aplikacja przestawia się na UNICODA, tak?

Nie, VCL nie może/nie będzie pracować w tym trybie.

No i trzeba znaleźć gdzie w UNI są znaki niemieckie, rosyjskie..

cyrylica
niemieckie znaki(?)

0

Skoro UNI.. nie wykorzystam, to pozostaje zrobienie czcionki, zainstalowanie jej w systemie i wykorzystywanie w moim programie. Zerknąłem na Font Creator'a i pewnie łatwo nie będzie. Dlaczego on nie ma po kolei wyświetlonych znaków jakie są w danej czcionce?

Macie jakiś inny pomysł?

0

Pomysł z czcionką jest... hmm... dziwny :P Po prostu poszukaj jakichś komponentów unikodowych lub sam napisz na bazie unikodowej wersji WinAPI.

0

Może i dziwny :], ale chyba najprostszy. Trochę tej czcionki już zrobiłem. Zostało mi "tylko" pozamienianie krzaków na te znaki co sobie chcę. Problem jest tylko ze znalezieniem odpowiednich indeksów w czcionce. Nie rozumiem tej numeracji. W podanych przez Ciebie linkach do Wiki, w sekcji Mapowanie na Unicode jest numer "U+..." - czym jest to U??

0

..nie mogę edytować poprzedniego..

Ok, już wiem U+XXXX gdzie XXXX to 16stkowo numer w czcionce. Powinno już pójść.

I mój pomysł wygląda tak:

  • robię nową czcionkę zastępując niepotrzebne mi znaki z zakresu 128-155 na potrzebne rosyjskie / niemieckie,
  • podczas instalacji programu dodaję czcionkę do systemu,
  • ustawiam ją do konkretnych kontrolek,
  • aby dodać inne niż polskie litery trzeba będzie np. wybrać z jakiejś wirtualnej klawiatury.

Wydaje mi się, że łatwiej niż dogrzebywanie się w Builderze do WinAPI i robienie własnych EDITów z ustawieniem dla nich UNI.
Czy nie?

0

Ok, już wiem U+XXXX gdzie XXXX to 16stkowo numer w czcionce. Powinno już pójść.

Nie wiem po co ci te (uni)kody, jeżeli program i tak będzie działać w ANSI?

Wydaje mi się, że łatwiej niż dogrzebywanie się w Builderze do WinAPI i robienie własnych EDITów z ustawieniem dla nich UNI.
Czy nie?

Heh między innymi po to powstał unikod, żeby nie kombinować jak koń pod górkę :) Dziś już się nie pisze (tego typu) aplikacji w ansi. Dlatego VCL pod tym względem ssie.

0

UNIkody potrzebne są mi do zrobienia czcionki. Szukam znaków, kopiuję..

VCL może i "ssie", ale jestem zmuszony w nim robić.
W czym Ty piszesz?

0

wxWidgets

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