Hola Lenny.
En realidad la ecuación de Club Delphi es:
nueva + pregunta = nuevo + hilo, pero dado que está total y estrechamente relacionada con la consulta anterior...
Una forma puede ser:
Código Delphi
[-]
uses
StrUtils;
function GetMenuItemsNames(MenuItem: TMenuItem): string;
var
TS: TStrings;
i : Integer;
begin
Result:= '';
if not MenuItem.IsLine then
begin
TS:= TStringList.Create;
try
while MenuItem.Parent is TMenuItem do
begin
TS.Add(MenuItem.Caption + '/');
MenuItem:= MenuItem.Parent;
end;
for i:= TS.Count - 2 downto 0 do
Result:= Result + TS[i];
Result:= AnsiReplaceStr(Result, '&', '');
SetLength(Result, Length(Result) - 1);
finally
TS.Free;
end;
end;
end;
Ejemplo de llamada:
Código Delphi
[-]
procedure TForm1.MenuItemClick(Sender: TObject);
begin
ShowMessage(GetMenuItemsNames(Sender as TMenuItem));
end;
Saludos.