حمیدرضاصادقیان
چهارشنبه 08 آذر 1385, 07:50 صبح
سلام .من این کد رو از unit sysutils برداشتم.ببینید وقتی تابع به اتمام رسیده یک begin ,end گذاشته و کدی درون اون نوشته . میخواستم ببینم چه موقع این کد اجرا میشه و آیا به جای دیگه ایی ارتباط داره؟
function AnsiStrLower(Str: PChar): PChar;
{$IFDEF MSWINDOWS}
begin
CharLower(Str);
Result := Str;
end;
{$ENDIF}
{$IFDEF LINUX}
var
Temp: WideString;
Squish: AnsiString;
I: Integer;
begin
Temp := Str; // expand and copy multibyte to widechar
for I := 1 to Length(Temp) do
Temp[I] := WideChar(towlower(UCS4Char(Temp[I])));
Squish := Temp; // reduce and copy widechar to multibyte
if Cardinal(Length(Squish)) > StrLen(Str) then
raise ERangeError.CreateRes(@SRangeError);
Move(Squish[1], Str^, Length(Squish));
Result := Str;
end;
{$ENDIF}
function AnsiStrLower(Str: PChar): PChar;
{$IFDEF MSWINDOWS}
begin
CharLower(Str);
Result := Str;
end;
{$ENDIF}
{$IFDEF LINUX}
var
Temp: WideString;
Squish: AnsiString;
I: Integer;
begin
Temp := Str; // expand and copy multibyte to widechar
for I := 1 to Length(Temp) do
Temp[I] := WideChar(towlower(UCS4Char(Temp[I])));
Squish := Temp; // reduce and copy widechar to multibyte
if Cardinal(Length(Squish)) > StrLen(Str) then
raise ERangeError.CreateRes(@SRangeError);
Move(Squish[1], Str^, Length(Squish));
Result := Str;
end;
{$ENDIF}