Article View: borland.public.csharpbuilder.language.csharp
Article #287Convert from Delphi 6 to C# Builder
From: Asaf
Date: Mon, 16 Jan 2006 14:48
Date: Mon, 16 Jan 2006 14:48
61 lines
2407 bytes
2407 bytes
Hi,
How can I convert these two functions to C# Builder?
Thanks in advanced,
Asaf
function TForm1.SetCharPlacement(sText: String): String;
var
dc: HDC;
GCP: TGCPResults;
lpClass: String;
nLen: integer;
begin
DC := GetDc(0);
SetTextAlign(dc, TA_RTLREADING);
nLen := Length(sText);
setLength(lpClass, nLen);
GCP.lStructSize := sizeof(TGCPResults);
GCP.lpOutString := nil;
GCP.lpOrder := nil;
GCP.lpDx := nil;
GCP.lpCaretPos := nil;
GCP.lpClass := pointer(lpClass);
GCP.lpGlyphs := nil;
GCP.nGlyphs := nLen;
GCP.nMaxFit := 0;
GetCharacterPlacement(dc,
PChar(sText),
LongBool(nLen),
LongBool(0),
GCP,
GetFontLanguageInfo(dc));
result := reorder(sText, lpClass);
end;
function TForm1.reorder(text, lpClass: String): String;
var
buffer: string;
mode, prevMode, i: integer;
begin
result := '';
prevMode := -1;
buffer := '';
for i := 1 to length(text) do begin
mode := 2;
if (lpClass[i] <> #2) then mode := 1;
if (mode <> prevMode) then begin
prevMode := mode;
if length(buffer) > 0 then result := result + buffer;
buffer := '';
end;
if mode = 2 then
buffer := buffer + text[i]
else
buffer := text[i] + buffer;
end;
result := result + buffer;
end;
Technical Details
Message-ID:
<43cbb0d5@newsgroups.borland.com>Path:
arc1-ca.pugleaf.net!g2news1.google.com!news2.google.com!proxad.net!212.101.4.254.MISMATCH!solnet.ch!solnet.ch!newsfeed.freenet.de!border2.nntp.ams.giganews.com!nntp.giganews.com!pe2.news.blueyonder.co.uk!blueyonder!news-peer-test!btnet!newsfeed.bt.es!caladan.landsraad.net!newsgroups.borland.com!not-for-mailShow Full Headers
Complete Article Headers
X-Google-Thread: 1efe35,5d858e965e7de8c8,start X-Google-Attributes: gid1efe35,public X-Google-Language: ENGLISH,ASCII-7-bit From: "Asaf" <asafgo@hotmail.com> Newsgroups: borland.public.csharpbuilder.language.csharp Subject: Convert from Delphi 6 to C# Builder Date: Mon, 16 Jan 2006 16:48:02 +0200 Lines: 63 X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2900.2670 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2670 X-RFC2646: Format=Flowed; Original NNTP-Posting-Host: 213.8.95.84 Message-ID: <43cbb0d5@newsgroups.borland.com> X-Trace: newsgroups.borland.com 1137422549 213.8.95.84 (16 Jan 2006 06:42:29 -0700) Path: arc1-ca.pugleaf.net!g2news1.google.com!news2.google.com!proxad.net!212.101.4.254.MISMATCH!solnet.ch!solnet.ch!newsfeed.freenet.de!border2.nntp.ams.giganews.com!nntp.giganews.com!pe2.news.blueyonder.co.uk!blueyonder!news-peer-test!btnet!newsfeed.bt.es!caladan.landsraad.net!newsgroups.borland.com!not-for-mail