Rozwiązanie polegające na używaniu znaków zastępczych zamiast liter, w Twoim przypadku czcionka Symbol, jest rozwiązaniem doraźnym, nie zmienia to jednak faktu, że TLabel ,czy też Memo nie obsługują Unicode. Po prostu w danym typie czcionki pod literą zamiast litery znajduje się inny znak, ale trudno jest taką czcionką pisać, gdyż wyskoczą znaczki zamiast liter.
Jest więc dokładnie tak jak napisałem, nie można do obiektu TLabel wstawić znaku Ω gdyż Label nie obsługuje unicode. Jeżeli używasz czcionki Symbol, to nie wstawiasz do Label znaku Ω lecz literę W, która jest reprezentowana przez ten znak.
Tak więc to co napisałem jest prawdą. Równie dobrze mógłbyś stworzyć mała bitmapę i umieścić ją na formularzu zamiast Label, efekt byłby dokładnie taki sam.
Dlatego w związku z powyższym nie wstawisz do Edit tekstu Opór: 20 Ω, a jedynie 20 Ω, gdyż czcionka Symbol (co możesz zobaczyć w programie Tablica znaków) zawiera tylko cyfry i znaki zastępujące litery:
tablica-znakow.png
Mam nadzieję, że już rozumiesz różnicę między wstawianiem znaków Unicode a zwykłych ASCII.
Rozwiązaniem Twojego problemu mogłoby być stworzenie specjalnej czcionki, która oprócz standardowych liter zawierałaby również zamiast niektórych zbędnych dla Twoich potrzeb znaków, znaki których potrzebujesz. Taką czcionkę trzeba by było oczywiście umieścić w zasobach programu, tak by nawet Ci którzy nie maja u siebie zainstalowanej takiej czcionki, mogli prawidłowo odczytać tekst.
Inny sposób to stworzenie własnej klasy podobnej do TLabel, która będzie przechowywać wartości typu WideString.
Istnieje zmienna WideString obsługująca Unicode, lecz właściwości Caption, Text, czy też klasa TStrings są typu AnsiString, nie potrafią wyświetlić prawidłowo znaków Unicode, gdyż zmienne 16 bitowe (WideString - Unicode) "nie mieszczą się" w 8 bitowym typie AnsiString (DBCS ANSI, MBCS ANSI).
Nie masz wystarczających uprawnień, aby zobaczyć pliki załączone do tego postu.