Ver Mensaje Individual
  #6  
Antiguo 02-12-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
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.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 02-12-2011 a las 10:52:10. Razón: corrección ortográfica
Responder Con Cita