* Use UTF8 as the unicode encoding

* Update the unicode demo

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@645 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
blikblum
2008-12-23 17:54:03 +00:00
parent 6b4a9600fe
commit 136f56b7e5
4 changed files with 156 additions and 269 deletions

File diff suppressed because it is too large Load Diff

View File

@ -26,20 +26,21 @@ object MainForm: TMainForm
Align = alClient Align = alClient
BorderSpacing.Around = 3 BorderSpacing.Around = 3
BorderStyle = bsSingle BorderStyle = bsSingle
DefaultText = 'Node'
Header.Columns = <
item
Text = 'Language'
Width = 200
end
item
Position = 1
Text = 'Translation'
Width = 200
end>
Header.Options = [hoColumnResize, hoDrag, hoVisible] Header.Options = [hoColumnResize, hoDrag, hoVisible]
TabOrder = 0 TabOrder = 0
OnFreeNode = WelcomeTreeFreeNode OnFreeNode = WelcomeTreeFreeNode
OnGetText = WelcomeTreeGetText OnGetText = WelcomeTreeGetText
Columns = <
item
Width = 200
WideText = 'Language'
end
item
Position = 1
Width = 200
WideText = 'Translation'
end>
end end
object WelcomeTopPanel: TPanel object WelcomeTopPanel: TPanel
Height = 28 Height = 28
@ -73,6 +74,8 @@ object MainForm: TMainForm
Width = 272 Width = 272
BorderSpacing.Around = 3 BorderSpacing.Around = 3
BorderStyle = bsSingle BorderStyle = bsSingle
DefaultText = 'Node'
Header.Columns = <>
Header.MainColumn = -1 Header.MainColumn = -1
Header.Options = [hoColumnResize, hoDrag] Header.Options = [hoColumnResize, hoDrag]
TabOrder = 0 TabOrder = 0
@ -80,7 +83,6 @@ object MainForm: TMainForm
OnFreeNode = LCLTextTreeFreeNode OnFreeNode = LCLTextTreeFreeNode
OnGetText = LCLTextTreeGetText OnGetText = LCLTextTreeGetText
OnNewText = LCLTextTreeNewText OnNewText = LCLTextTreeNewText
Columns = <>
end end
object AddEditTextButton: TButton object AddEditTextButton: TButton
Left = 476 Left = 476

View File

@ -39,12 +39,12 @@ type
procedure FormCreate(Sender: TObject); procedure FormCreate(Sender: TObject);
procedure LCLTextTreeFreeNode(Sender: TBaseVirtualTree; Node: PVirtualNode); procedure LCLTextTreeFreeNode(Sender: TBaseVirtualTree; Node: PVirtualNode);
procedure LCLTextTreeGetText(Sender: TBaseVirtualTree; Node: PVirtualNode; procedure LCLTextTreeGetText(Sender: TBaseVirtualTree; Node: PVirtualNode;
Column: TColumnIndex; TextType: TVSTTextType; var CellText: WideString); Column: TColumnIndex; TextType: TVSTTextType; var CellText: UTF8String);
procedure LCLTextTreeNewText(Sender: TBaseVirtualTree; Node: PVirtualNode; procedure LCLTextTreeNewText(Sender: TBaseVirtualTree; Node: PVirtualNode;
Column: TColumnIndex; const NewText: WideString); Column: TColumnIndex; const NewText: UTF8String);
procedure WelcomeTreeFreeNode(Sender: TBaseVirtualTree; Node: PVirtualNode); procedure WelcomeTreeFreeNode(Sender: TBaseVirtualTree; Node: PVirtualNode);
procedure WelcomeTreeGetText(Sender: TBaseVirtualTree; Node: PVirtualNode; procedure WelcomeTreeGetText(Sender: TBaseVirtualTree; Node: PVirtualNode;
Column: TColumnIndex; TextType: TVSTTextType; var CellText: WideString); Column: TColumnIndex; TextType: TVSTTextType; var CellText: UTF8String);
private private
procedure AddLCLText(const AText: String); procedure AddLCLText(const AText: String);
{ private declarations } { private declarations }
@ -106,16 +106,16 @@ end;
procedure TMainForm.LCLTextTreeGetText(Sender: TBaseVirtualTree; procedure TMainForm.LCLTextTreeGetText(Sender: TBaseVirtualTree;
Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType; Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType;
var CellText: WideString); var CellText: UTF8String);
var var
Data: PLCLTextData; Data: PLCLTextData;
begin begin
Data := Sender.GetNodeData(Node); Data := Sender.GetNodeData(Node);
CellText := UTF8Decode(Data^.Text); CellText := Data^.Text;
end; end;
procedure TMainForm.LCLTextTreeNewText(Sender: TBaseVirtualTree; procedure TMainForm.LCLTextTreeNewText(Sender: TBaseVirtualTree;
Node: PVirtualNode; Column: TColumnIndex; const NewText: WideString); Node: PVirtualNode; Column: TColumnIndex; const NewText: UTF8String);
var var
Data: PLCLTextData; Data: PLCLTextData;
begin begin
@ -170,14 +170,14 @@ end;
procedure TMainForm.WelcomeTreeGetText(Sender: TBaseVirtualTree; procedure TMainForm.WelcomeTreeGetText(Sender: TBaseVirtualTree;
Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType; Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType;
var CellText: WideString); var CellText: UTF8String);
var var
Data: PWelcomeData; Data: PWelcomeData;
begin begin
Data := Sender.GetNodeData(Node); Data := Sender.GetNodeData(Node);
case Column of case Column of
0: CellText := UTF8Decode(Data^.Language); 0: CellText := Data^.Language;
1: CellText := UTF8Decode(Data^.Translation); 1: CellText := Data^.Translation;
end; end;
end; end;

View File

@ -2,10 +2,11 @@
<CONFIG> <CONFIG>
<ProjectOptions> <ProjectOptions>
<PathDelim Value="\"/> <PathDelim Value="\"/>
<Version Value="6"/> <Version Value="7"/>
<General> <General>
<Flags> <Flags>
<AlwaysBuild Value="False"/> <AlwaysBuild Value="False"/>
<LRSInOutputDirectory Value="False"/>
</Flags> </Flags>
<SessionStorage Value="InProjectDir"/> <SessionStorage Value="InProjectDir"/>
<MainUnit Value="0"/> <MainUnit Value="0"/>
@ -48,7 +49,6 @@
<ComponentName Value="MainForm"/> <ComponentName Value="MainForm"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<ResourceFilename Value="fmain.lrs"/>
<UnitName Value="fMain"/> <UnitName Value="fMain"/>
</Unit1> </Unit1>
</Units> </Units>