Перевод кода с Си на Дельфи
От: LA_  
Дата: 24.04.09 15:50
Оценка:
Товарищи, есть код на Си, который мне нужно перевести на Delphi.
Помогите, плз.
Код на Си:
static void SetListGroupIcons(HWND hwndList,HANDLE hFirstItem,HANDLE hParentItem,int *groupChildCount)
{
    ...
    int childCount[IGNOREEVENT_MAX]={0,0,0,0,0,0,0},i;
        int iconOn[IGNOREEVENT_MAX]={1,1,1,1,1,1,1};
    ...
    hChildItem=(HANDLE)SendMessage(hwndList,CLM_GETNEXTITEM,CLGN_CHILD,(LPARAM)hItem);
        if(hChildItem) SetListGroupIcons(hwndList,hChildItem,hItem,childCount);
    ...
    for( i=0; i < SIZEOF(iconOn); i++ ) {
        if(groupChildCount) groupChildCount[i]+=childCount[i];
    }
    ...
}
...
SetListGroupIcons(somehandle1,somehandle2,somehandle3,NULL);

пишу это на Delphi:
procedure SetListGroupIcons(hwndList: THandle; hFirstItem: THandle; hParentItem: THandle; var groupChildCount: Array of Integer);
var childCount: array[0..IGNOREEVENT_MAX-1] of Integer; // = (0,0,0,0,0,0,0);
    iconOn: array[0..IGNOREEVENT_MAX-1] of Integer; // = (1,1,1,1,1,1,1);
    i: Integer;
    
...
    for i:=0 to IGNOREEVENT_MAX-1 do
    begin
      iconOn[i] := 1;
      childCount[i] := 0;
    end;
    ...
    hChildItem := THandle(SendMessage(hwndList, CLM_GETNEXTITEM, CLGN_CHILD, Windows.lParam(hItem)));
    if hChildItem <> 0 then SetListGroupIcons(hwndList, hChildItem, hItem, childCount);
    ...
    for i:=Low(iconOn) to High(iconOn) do
      if (Length(groupChildCount)>0) then groupChildCount[i] := groupChildCount[i] + childCount[i];
    ...
    var TempNilArray: Array of Integer; // локальная переменная
    SetListGroupIcons(somehandle1, somehandle2, somehandle2, TempNilArray); // вызывается из другой процедуры

Где моя ошибка?

(полный код на си есть здесь)
си дельфи перевод кода
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.