Z C++ na DELPHI!!!!!!!!!

0

Jak zapisać taki kod C++ w Delphi?

void
puttext (int left, int top, int right, int bottom, char *str)
{ 
    int i, j, n;
    SMALL_RECT r;
    CHAR_INFO buffer[25][80];

    memset (buffer, 0, sizeof (buffer));
    r = (SMALL_RECT) {left - 1, top - 1, right - 1, bottom - 1};

    for (i = n = 0; i <= bottom - top; i++)
    for (j = 0; j <= right - left && str[n] != 0; j++)
    {
        buffer[i][j].Char.AsciiChar = str[n];
        buffer[i][j].Attributes = FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_RED;
        n++;
    }

    WriteConsoleOutput (GetStdHandle (STD_OUTPUT_HANDLE),
      (CHAR_INFO *) buffer, (COORD) {80, 25},
      (COORD) {0, 0}, &r);
}

Z góry wielkie zdięki!!! :) </cpp>

// daj więcej wykrzykników, to pomoże ci więcej osób - ŁF

0

sorry za off-topic ale lepiej zmien tytul topica bo jak wpadne jakis moderator tu to Od razu go zablokuje :/

0

Nadmiernie na C++ się nie znam, ale chyba działa tak jak powinno:

procedure puttext(left,top,right,bottom:integer;str:string);
var i,j,n:integer;
    r:SMALL_RECT;
    c,c2:_COORD;
    buffer:array[0..24]of array[0..79]of CHAR_INFO;
begin
 ZeroMemory(@buffer,25*80*SizeOf(CHAR_INFO));
 r.Left:=left-1;
 r.Top:=top-1;
 r.Right:=right-1;
 r.Bottom:=bottom-1;
 n:=1;
 for i:=0 to bottom-top do
  if str[n]<>#0 then
   for j:=0 to right-left do
    begin
     buffer[i][j].AsciiChar:=str[n];
     buffer[i][j].Attributes:=FOREGROUND_BLUE or FOREGROUND_RED or FOREGROUND_GREEN;
     inc(n);
    end
  else break;
 c.X:=80;
 c.Y:=25;
 ZeroMemory(@c2,SizeOf(_COORD));
 WriteConsoleOutput(GetStdHandle(STD_OUTPUT_HANDLE),@buffer,c,c2,r);
end;

No i oczywiście trzeba dodać Windows do Uses... Pozdro. ;]

//Marooned: przypisanie do pola char.AsciiChar [i,j]-tego elementu tablicy rekordów buffer, n-tego znaku ciągu str... :-)
Ja to tak rozumiem ;]

0

Pozwolilem sobie odblokować wątek gdyż jedna z linijek mocno mnie zafrapowała :>

Mianowicie... może mi ktoś wytłumaczyć znaczenie tej linii?

buffer[i][j].char.AsciiChar = str[n];

czy może mam się stąd wynieść do działu C++ i nowego wątku? ;)

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/char_info_str.asp [mf]

1 użytkowników online, w tym zalogowanych: 0, gości: 1