Форум: "Основная";
Текущий архив: 2002.06.17;
Скачать: [xml.tar.bz2];
ВнизВывод в стандарте Юникод Найти похожие ветки
← →
MAxiMum (2002-05-29 17:54) [0]Я пишу программу,которая должна вставлять символы из многих языков (не программирования, конечно ). Я думаю, для этих целей надо использовать Юникод. Но, на сколько мне известно, компоненты не потдерживают такой кодировки.Как быть?
← →
KilkennyCat (2002-05-29 18:47) [1]А я просто разрешаю пользователям выбирать шрифт.
← →
MAxiMum (2002-05-29 19:21) [2]А под Win9x?
← →
KilkennyCat (2002-05-29 19:52) [3]А я именно под Win9x работаю
← →
MAxiMum (2002-05-31 15:21) [4]Иными словами, как сделать таблицу символов с поддержкой Юникода?
← →
MAxiMum (2002-05-31 15:33) [5]Мне надо запихнуть в TDrawGrid, но каким образом я не знаю. Если использовать Canvas.TextOut и, как следствие, Chr, то вступает ограничение на тип Byte, на который она и рассчитана.
А нужно ведь Cardinal, да?
← →
Внук (2002-05-31 17:57) [6]Криво, но тороплюсь, рабочий день уже закончился :)
procedure TForm1.Button1Click(Sender: TObject);
var dc:HDC;
s:WideChar;
i:integer;
begin
dc:=GetDC(Handle);
for i:=2000 to 2050 do
begin
s:=WideChar(i);
TextOutW(dc,10+(i-2000)*20,10,@s,1);
Application.ProcessMessages;
sleep(500);
end;
ReleaseDC(Handle,dc);
end;
← →
MAxiMum (2002-05-31 18:15) [7]Понимаю, торопился, но не работает как надо.
← →
MAxiMum (2002-06-03 11:08) [8]Что никто не сможет ответить!???
← →
McSimm (2002-06-03 12:20) [9]Проверь Handle окна, для которого будет вызываться TextOutW функцией IsWindowUnicode.
Выбери шрифт, содержащий символы Unicode - посмотри утилитой Character Map.
Шрифты обычно содержат далеко не все символы.
У меня все получилось
← →
Игорь Шевченко (2002-06-03 12:29) [10]Вот маленький пример:
unit UnicodeControl;
interface
uses
Graphics, Windows, Messages, Classes, Controls;
type
TUnicodeControl = class(TCustomControl)
private
procedure CMFontChanged (var Message : TMessage); message CM_FONTCHANGED;
protected
procedure Paint; override;
public
constructor Create (AOwner : TComponent); override;
property Color;
property Font;
end;
implementation
uses
SysUtils, Dialogs;
{ TUnicodeControl }
procedure TUnicodeControl.CMFontChanged(var Message: TMessage);
begin
inherited;
if Canvas <> nil then
Canvas.Font := Font;
end;
constructor TUnicodeControl.Create(AOwner: TComponent);
begin
inherited;
Font.Name := "Tahoma";
Font.CharSet := GREEK_CHARSET;
ParentFont := false;
end;
procedure TUnicodeControl.Paint;
var
Rect : TRect;
AText : array [0..255] of WideChar;
begin
inherited;
Rect := ClientRect;
OffsetRect(Rect, 2, 0);
FillChar(AText, Sizeof(AText), 0);
AText[0] := WideChar($03A0);
AText[1] := WideChar($03A1);
AText[2] := WideChar($0399);
AText[3] := WideChar($0392);
AText[4] := WideChar($0395);
AText[5] := WideChar($03A4);
AText[6] := WideChar($03A9);
DrawTextW(Canvas.Handle, AText, -1, Rect, DT_SINGLELINE);
end;
И в главной форме:
procedure TForm1.FormCreate(Sender: TObject);
begin
FUnicodeControl := TUnicodeControl.Create(Self);
with FUnicodeControl do begin
Parent := Self;
Color := clWhite;
SetBounds(10, 10, 100, 20);
end;
end;
← →
MAxiMum (2002-06-03 16:57) [11]Спасибо всем. Разобрался я с этим.
Теперь у меня другой вопрос. Как к стандартные объекты редактирования (например, TEdit, TMemo, TRichEdit и т.д.) мне можно поместить символ в кодировке Unicode. Не найду никак ответа.
← →
Игорь Шевченко (2002-06-03 17:07) [12]Обрабатывать их WM_PAINT, заняться сабклассингом (может быть...)
← →
MAxiMum (2002-06-03 17:15) [13]Если можно пример. А без "сабклассинга" (т.е. написания нового компонента, да?) обойтись нельзя?
← →
Игорь Шевченко (2002-06-03 17:25) [14]Сабклассинг - это не написание нового компонента. Это подмена оконной процедуры окна.
SetWindowLong(hWnd, GWL_WNDPROC, Integer(MyNewEditWndProc));
А пример предлагаю сделать самостоятельно :-)
← →
MAxiMum (2002-06-03 18:11) [15]Еще умельцы есть? Подскажите, плз.
← →
MAxiMum (2002-06-04 14:26) [16]Говорят для этого надо переписать всю библиотеку VCL. По-другому, никак. А может, как-нибудь, можно попробовать переписать только, например, TMemo. А?
← →
Игорь Шевченко (2002-06-04 14:35) [17]MAxiMum © (04.06.02 14:26)
Я же надавал кучу ссылок - неужели там ничего нет ?
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.06.17;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.007 c