lazarus处理汉字
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了lazarus处理汉字相关的知识,希望对你有一定的参考价值。
我想用lazarus从文本文件(text)中读取汉字,然后放到memo里面。
我想用string读,然后memo.append,乱码。
我该怎么做?是不是有专门读汉字的数据类型?
我用utf8string读utf-8编码的文件,然后append,发现显示正常,但是其他编码不行。
有会delphi的也说说吧
感谢 free_sh 的回答 再问一下 只能转成utf-8做吗
内码是utf8这个事实无法改变,不过utf8内码挺好的啊,支持各国语言。文本文件可以存为ANSI编码或其他编码,只不过读取时多费一步编码转换。本回答被提问者采纳 参考技术B 必须做内码转换了。
utf8toansi
ansitoutf8
:)
Lazarus - SelectFirst 给出错误
【中文标题】Lazarus - SelectFirst 给出错误【英文标题】:Lazarus - SelectFirst Gives Error 【发布时间】:2013-06-05 11:58:25 【问题描述】:我正在尝试制作一个组合框,在更改后选择第一个项目。我的操作系统是 Ubuntu 12.04。我的代码:
unit Unit1;
$mode objfpc$H+
interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
Buttons, Menus;
type
TForm1
TForm1 = class(TForm)
ComboBox1: TComboBox;
Edit1: TEdit;
Label1: TLabel;
Memo1: TMemo;
procedure ComboBox1Change(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
private declarations
public
public declarations
end;
var
Form1: TForm1;
implementation
$R *.lfm
TForm1
procedure TForm1.ComboBox1Change(Sender: TObject);
var Text2:String;
begin
if (Combobox1.ItemIndex = 1) Then
begin
Text2 := Memo1.SelText;
Edit1.Text := Memo1.SelText;
Memo1.SelText := '[artist]' + Text2 + '[/artist]';
end;
if (Combobox1.ItemIndex = 2) Then
begin
if (Edit1.Text = '') Then
ShowMessage('Artist name is not defined') Else
begin
Text2 := Memo1.SelText;
Memo1.SelText := '[album artist=' + Edit1.Text + ']' + Text2 + '[/album]';
end;
end;
if (ComboBox1.ItemIndex = 3) Then
begin
if (Edit1.Text = '') Then
ShowMessage('Artist name is not defined') Else
begin
Text2 := Memo1.SelText;
Memo1.SelText := '[track artist=' + Edit1.Text + ']' + Text2 + '[/track]'
end;
end;
if (ComboBox1.ItemIndex = 4) Then
begin
Text2 := Memo1.SelText;
Memo1.SelText := '[label]' + Text2 + '[/label]';
end;
if (ComboBox1.ItemIndex = 5) Then
begin
Text2 := Memo1.SelText;
Memo1.SelText := '[tag]' + Text2 + '[/tag]';
end;
Combobox1.SelectFirst;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Memo1.Text := 'Select an item';
end;
end.
这给出了一个错误:unit1.pas(74,13) 错误:标识符 idents no member "SelectFirst"
我该如何解决这个问题?
【问题讨论】:
【参考方案1】:组合框没有这个程序 如果你想要第一个项目以这种方式选择它
ComboBox1.ItemIndex := 0
【讨论】:
以上是关于lazarus处理汉字的主要内容,如果未能解决你的问题,请参考以下文章
用 Lazarus 开发 OPC Client 2 (关于Lazarus 编译器)