MainMenu - po prawej stronie - Help !!

0

Mam problem ;-)

ptrzebuję przerobić sources z Delphi na BCB - ale nie za bardzo wychodzi mi - może ktoś zna się na Delphi i BCB na tyle aby to przerobić ? :

Komponent MainMenu1 - ma się zbaleźć jego menu OProgramie1 po prawej stronie
! pod Delphi dziala natomiast pod BCB nie za bardzo

procedure TForm1.FormCreate(Sender: TObject);
var
   MenuItemInfo: TMenuItemInfo;
   Buff: array[0..255] of Char; { <-- ? }
begin
     leftList := TList.Create;
     rightList := TList.Create;
     leftSortType := nazwa;
     rightSortType := nazwa;

     MenuItemInfo.cbSize := SizeOf(TMenuItemInfo);
     MenuItemInfo.fMask := MIIM_TYPE;
     MenuItemInfo.dwTypeData := Buff;
     MenuItemInfo.cch := SizeOf(Buff);
     GetMenuItemInfo(MainMenu1.Handle,OProgramie1.Command,False,MenuItemInfo); { <-- ? }
     MenuItemInfo.fType := MenuItemInfo.fType or MFT_RIGHTJUSTIFY;
     SetMenuItemInfo(MainMenu1.Handle,OProgramie1.Command,False,MenuItemInfo); { <-- ? }
end;

to co udalo mi sie zrobic to jedynie to :

void __fastcall TForm1::FormCreate(TObject *Sender)
{
 TMenuItemInfo MenuItemInfo;
 char Buff[255]; // <-- ?
 MenuItemInfo.cbSize = sizeof(TMenuItemInfo);
 MenuItemInfo.fMask = MIIM_TYPE;
 MenuItemInfo.dwTypeData = Buff;
 MenuItemInfo.cch = sizeof(Buff);
 GetMenuItemInfo(MainMenu1->Handle,OProgramie1->Command,False, MenuItemInfo); //bug ?
 MenuItemInfo.fType = MenuItemInfo.fType | MFT_RIGHTJUSTIFY;
 SetMenuItemInfo(MainMenu1->Handle,OProgramie1->Command,False,MenuItemInfo);  //bug ?
}

Jak daję kompilacje to wywala mi :

[code]
[C++ Error] Unit1.cpp(26): E2034 Cannot convert 'tagMENUITEMINFOA' to 'tagMENUITEMINFOA *'
[C++ Error] Unit1.cpp(26): E2340 Type mismatch in parameter 4 (wanted 'tagMENUITEMINFOA *', got 'tagMENUITEMINFOA')
[C++ Error] Unit1.cpp(28): E2034 Cannot convert 'tagMENUITEMINFOA' to 'const tagMENUITEMINFOA *'
[C++ Error] Unit1.cpp(28): E2340 Type mismatch in parameter 4 (wanted 'const tagMENUITEMINFOA *', got 'tagMENUITEMINFOA')
[/code]

Więc jak ktoś wie jak to przerobić niech tutaj napisze - PLEASE !!!

PS : PLEASE NIE KASOWAĆ TEGO !!!!!!!!

0

char Buff[256];

GetMenuItemInfo(MainMenu1->Handle,OProgramie1->Command,false, &MenuItemInfo);

0

No więc doszedłem do tego że przez wskaźniki ale mam 1 pytanko :

Dlaczego char Buff[256]
a nie
char Buff[255]

?

0

bo od 0 do 255 jest 256;

Tablica zaczyna się od elementu zerowego.
char Buff[256]; daje ci tablice o komórkach od 0 do 255

//Nom - nic dodać nic ująć - Marooned

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