Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 13-10-2007
Avatar de José Luis Garcí
[José Luis Garcí] José Luis Garcí is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Las Palmas de G.C.
Posts: 1.372
Poder: 22
José Luis Garcí Va camino a la fama
Nuevas propiedades en un TMAinMenu

Alguno sabe como crear nuevas propiedades en el Item de un TmaninMenu, para poder terminar un componente, ya que añado las nuevas propiedades y si se me crea en en la parte principal, pero dos de las propiedades nuevas dben ir en dentro de los Item del mainMenu, pero no sucede, he mirado la ayuda y me remite al metodo add de la propiedad TMenuitem, pero no logro que funcione, funcionaria en la creacion de un componente?

No es que dejara los otros componentes parados, pero como me he bloqueado con ellos, e preferido dejarlos parados de momento.

Gracias y un saludo por vuestra ayuda.

P.D. Si podeis poner un ejemplo.
__________________
Un saludo desde Canarias, "El abuelo Cebolleta"
Responder Con Cita
  #2  
Antiguo 13-10-2007
Avatar de neuronic
neuronic neuronic is offline
Miembro
 
Registrado: jul 2007
Ubicación: Catalunya
Posts: 32
Poder: 0
neuronic Va por buen camino
prueba con esto

buenas mi primera aportacion, espero que no sea la ultima,xd, no ser si soluciona tu poblema

Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Menus;

type
  TForm1 = class(TForm)
    MainMenu1: TMainMenu;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    procedure ExitClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var item: TMenuItem;
        item2: TMenuItem;
    begin
      item := TMenuItem.Create(MainMenu1);
      item.Caption := '&File';
      MainMenu1.Items.Add(item);

      item2 := TMenuItem.Create(MainMenu1);
      item2.Caption := 'E&xit';
      item2.OnClick := ExitClick;
      item.Add(item2);

    end;
        procedure TForm1.ExitClick(Sender: TObject);
    begin
      Application.Terminate;
    end;
end.
Responder Con Cita
  #3  
Antiguo 13-10-2007
Avatar de José Luis Garcí
[José Luis Garcí] José Luis Garcí is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Las Palmas de G.C.
Posts: 1.372
Poder: 22
José Luis Garcí Va camino a la fama
Gracias por tu respuesta neuronic, pero se trata de añadir nuevas propiedades al menu y no nuevas partes de esta, por si no ha quedado claro expongo lo que quiero hacer:

Partiendo de un MainMenu hacer un menu con niveles de seguridad y clave, en la parte principal esta los niveles de seguridad, clave de acceso y mensaje de solicitud de clave y el nivel dw usuario actual (Valores generales), en el segunda parte cda vez que exponemos un Item se nos pediria un campo boolean que nos remite si para acceder hace falta clave y el nivel de usuario que hace falta para acceder al evento del item.

Espero haberme explicado bien.
__________________
Un saludo desde Canarias, "El abuelo Cebolleta"
Responder Con Cita
  #4  
Antiguo 13-10-2007
Avatar de xEsk
[xEsk] xEsk is offline
Miembro Premium
 
Registrado: feb 2006
Posts: 454
Poder: 19
xEsk Va por buen camino
No quiero sonar borde, pero por mas que leo tus dos mensajes no logro entender lo que quieres, con el primer mensaje he entendido lo mismo que neuronic.

Creo que te lías un poco al intentar explicar lo que quieres, hehe.

Saludos.
Responder Con Cita
  #5  
Antiguo 13-10-2007
Avatar de José Luis Garcí
[José Luis Garcí] José Luis Garcí is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Las Palmas de G.C.
Posts: 1.372
Poder: 22
José Luis Garcí Va camino a la fama
XesK intentare explicarme mejor
Cuando soltamos el componente TmainMenu, trae una seri de opciones, cuando pulsamos sobre su icono o sobre la opcion Items, nos sale nuevas opciones que se cran paera cada una de los elementos del menu.

Bien logro crear la opciones sobreel componente en su parte principal pero no sobre cada elemento, como los caption, pero crear mi propia opcion.


Espero quede mas claro, gracias por vuestra ayuda.
__________________
Un saludo desde Canarias, "El abuelo Cebolleta"
Responder Con Cita
  #6  
Antiguo 13-10-2007
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
si mal no entiendo tu lo que quieres es que el componente TMainMenu en lugar de heredar los Items desde TMenuItem herede desde TMIMenuitem??

has logrado modificar el TMainMenu y ver donde se crean los nuevos TMenuItem y cambiar la clase alli??
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #7  
Antiguo 13-10-2007
Avatar de José Luis Garcí
[José Luis Garcí] José Luis Garcí is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Las Palmas de G.C.
Posts: 1.372
Poder: 22
José Luis Garcí Va camino a la fama
Creo que la cosa se esta liando y no me explico bien, lo que quiero es crear un nuevo componente para el club, basabndose en un MainMenu, con nuevas propiedades, las describo, pero tener en cuenta que es un boceto.

Propiedades comunes al componente(cuando lo añadimos al formulario)

LevelUser Integer (en el estableceremos el nivel del usuario actual del 1 al 5)
Level1 al 5 String (seran los niveles establecidos, en ellos pondremos los nombres de tipos de usuario, siendo en principio 1 Todos
y 5 Administrador)
Keyseg String (Ira la clave que podamos necesitar)
Messagekey String (Aqui ira el mensaje que nos mostrara en caso de solicitarse clave)



Propiedades comunes a las diferentes opciones del menu (cuando escribimos las opciones [Items] del menu en fase de diseño)

Level Integer (estara comprendido entre el uno y el cinco mirara más abajo comportamiento)
KeyItem Boolean (Si lo morcamo nos solicitara clave para acceder a el independiente del nivel de usuario)


Comportamiento

Al introducir en Leveluser un valor, entre 1 al 5 en el menu nos abilitara todos aquellos items que tengan en level el mismo, que en leveluser o inferio pero no los superiores, exeptundo aquellos que tengan el keyItem en true, en este caso no importa el nivel de usuario ya que nos solicitara la clave para acceder.

Espero la explicacion sea más coherente esta vez.
__________________
Un saludo desde Canarias, "El abuelo Cebolleta"
Responder Con Cita
  #8  
Antiguo 15-10-2007
Avatar de José Luis Garcí
[José Luis Garcí] José Luis Garcí is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Las Palmas de G.C.
Posts: 1.372
Poder: 22
José Luis Garcí Va camino a la fama
He seguido buscando, he mirado el menu.pas y me pierdo, si a alguno se le ocurre una idea se agradeceria.
__________________
Un saludo desde Canarias, "El abuelo Cebolleta"
Responder Con Cita
  #9  
Antiguo 15-10-2007
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 19
Chris Va por buen camino
Lo que tedrás que hacer es derivar (hacer un decendiente) del TMenuItem, solo de esta forma podrás agregar las propiedades que necesites. Si no me equivoco, también tendras que hacer un decendiente de TMenu y TMainMenu y si lo necesitas de TPopupMenu, lo único que tendrías que cambiar es que en vez de utilizar TMenuItem utilize tu propia clase, p. ej. TmiMenuItem, TmiMenu, ....
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita
  #10  
Antiguo 17-10-2007
Avatar de José Luis Garcí
[José Luis Garcí] José Luis Garcí is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Las Palmas de G.C.
Posts: 1.372
Poder: 22
José Luis Garcí Va camino a la fama
D&W He probado y nada, de echo desde el principio parte de un componente TMAinmenun, a la que quiero añadir las nuevas propiedades y no hay manera, si a alguien se le ocurre otra cosa, seguire, de todas maneras sigo investigando, y he visto por ahí, que los componantes que hayh no tienen propiedades nuevas, en la parte de los item, no creo que el problema sea el no poder, mas bien pienso que debe ser bastante complicado.
__________________
Un saludo desde Canarias, "El abuelo Cebolleta"
Responder Con Cita
  #11  
Antiguo 17-10-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
He dado una visual muy por encima al menu.pas y el problema que veo está en el diseño de las clases.

Mira el componente TComboBoxEx (ComCtrls.pas) verás que tiene 2 propiedades: Items e ItemsEx, quizás puedas hacer algo parecido. Si no te apetece, creo que tendrías que empezar de cero el componente.

La clase TMenu ya publica la propiedad Items, de solo lectura y además accediendo directamente a su propiedad privada FItems:
Código Delphi [-]
  published
    property Items: TMenuItem read FItems;

Quizás los de Borland no quisieran que se derivase de ese componente, de ahí su implementación.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #12  
Antiguo 17-10-2007
Avatar de José Luis Garcí
[José Luis Garcí] José Luis Garcí is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Las Palmas de G.C.
Posts: 1.372
Poder: 22
José Luis Garcí Va camino a la fama
Garcias por tu pronta respuesta Lepe, pero me pregunto, seria posible modificar el archivo pas, añadir las propiedades en menu pas. pero es que me parce muy complejo, y me da pena desechar la idea ya que me parece la forma mas adecuada de implementar niveles de usuario en un programa, tal vez se me ocurre seria más facil en un ActionList?.
__________________
Un saludo desde Canarias, "El abuelo Cebolleta"
Responder Con Cita
  #13  
Antiguo 18-10-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Lo de modificar los fuentes de Delphi no lo veo viable.

1 - No sé si será legal eso de modificar el menu.pas.
2 - No aseguras compatibilidad con programas que ya funcionen.

Lo que se me ocurre es crearte tu nueva unidad PrivMenu.pas pegando todo el contenido de la unidad de delphi (repito, no sé si legalmente puedes hacer eso), renombrando las clases a TPrivMenu, TPrivMenuItem, etc.

A partir de aquí ya eres "libre" . Después podrás instalar el componente como uno más de delphi.

Con un TActionList, no tendrías que reinventar nada. Cada TAction tiene su propiedad Tag y ahí puedes guardar el nivel de privilegios que haría falta para mostrar ese TAction, Con un simple bucle puedes recorrer todos los TActions inhabilitándolos, hacerlos invisible, etc.
Código Delphi [-]
  for i:= 0 to actionlist1.count -1 do
  actionlist1.Actions[i].Visible := actionlist1[i].tag <= PrivilegioDelUsuario

Si en cada ventana existen controles que puedan ser invisibles para ciertos usuarios, yo añadiría herencia visual, es decir crear un formulario en blanco que contenga un ActionList y una propiedad Privilegio:integer, Al asignar el Privilegio haría lo propio con los Actions que haya en la ventana.

Habrá otras muchas formas de implementar privilegios, pero dependerá de tus necesidades.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #14  
Antiguo 18-10-2007
Avatar de José Luis Garcí
[José Luis Garcí] José Luis Garcí is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Las Palmas de G.C.
Posts: 1.372
Poder: 22
José Luis Garcí Va camino a la fama
Visto lo dicho, nada, abandono la idea y me da pena, pasare a empezar con otro componente, espero no me de nuevos problemas, ya que últimamente estoy bloqueado con varias cosas a la vez y conociendome, o aparco hasta que se me haga la luz o me veo trabajando hasta las 3- 4 de la mañana y a mi mujmer e hijas enfadadas por no prestarles un poco de atención.
__________________
Un saludo desde Canarias, "El abuelo Cebolleta"
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Habiliar item de un TmainMenu egarc Conexión con bases de datos 1 28-07-2007 17:16:21
Ejemplos de TMainMenu con Iconos Marian0 C++ Builder 2 16-02-2007 17:15:06
Acceso a las propiedades de un objeto desde el editor de propiedades Hugo OOP 0 24-11-2006 12:58:22
!TmainMenu Desplegado Carlosguiland OOP 1 09-11-2004 19:28:11
Crear nuevas propiedades de un formulario Angel OOP 15 10-07-2003 15:39:42


La franja horaria es GMT +2. Ahora son las 07:59:26.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi