Getestet unter Lazarus 1.0.10 und 1.1, jeweils Win32: Test1 funktioniert, Test2 nicht!!! Unterschied sind 3 nicht gesetzte Integer-Variablen:
Code: Alles auswählen
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Forms, StdCtrls, HTMLDefs, StrUtils;
type
{ TForm1 }
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.lfm}
{ TForm1 }
procedure Test1; //funktioniert
var
x,y,z,a:integer;
s,sd:widestring;
wc:widechar;
begin
s:='Uuml';
if ResolveHTMLEntityReference(s,wc) then
Form1.Caption:=UTF8Encode(WideCharToString(@wc));
end;
procedure Test2; //funktioniert nicht
var
// x,y,z,a:integer; //Das ist der Unterschied, Kommentar entfernen und Procedure funktioniert!
s,sd:widestring;
wc:widechar;
begin
s:='Uuml';
if ResolveHTMLEntityReference(s,wc) then
Form1.Caption:=UTF8Encode(WideCharToString(@wc));
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Test1;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Test2;
end;
end.