Ver Mensaje Individual
  #7  
Antiguo 07-11-2003
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Reputación: 27
delphi.com.ar Va por buen camino
¿Te parece algo tan barato como esto?

Código:
unit WctlformX;

interface

procedure Register;

implementation

uses
  Controls, SysUtils, DsgnIntf;

function PropertyMapperFunc(Obj: TPersistent; PropInfo: PPropInfo): TPropertyEditorClass;
var
  NameValue: string;
begin
  if (PropInfo^.Name = 'Name') and
     not ((Obj is TWinControl) and (TWinControl(Obj).Parent = Nil)) Then
  begin
    NameValue := GetStrProp(Obj, PropInfo);
    if (NameValue[1] <> '_') Then
      SetStrProp(Obj, PropInfo, '_' + NameValue);
  end;

  Result := Nil;
end;

procedure Register;
begin
  RegisterPropertyMapper(PropertyMapperFunc);
end;

end.
como funcionar funciona, pero sinceramente no me gusta nada.

Te comento que estube probando:

1 > Crear clases heredadas de TWinControlCustomModule y TWinControlForm, pertenecientes a la unit Wctlform que está compilada en el dsnide*.bpl, por lo que pude ver muy por debajo, estas son las clases de los forms que utiliza el IDE cuando creas en tiempo de diseño un TCustomForm o un TCustomDataModule. Estas clases implementan la interface IDesignerHook, el problema es que no encontré como registrarlas para probarlas. Si te interesa te paso el código.

2 > Probé crear una clase:
Código:
TIdeFormNotifier = class(TNotifierObject, IOTAFormNotifier, IOTAIDENotifier)
, donde recibo sin problemas las notificaciones AfterCompile, BeforeCompile y FileNotification, pero no recibo ComponentRenamed, que es la que me interesa.

Bueno te dejo esas inquietudes, ya que solo las probé muy por encima, si verdaderamente te interesa y crees que esta pueda ser otra solución (yo no creo que venga por ahí, hay que buscar qué método de que clase es el que da los nombres), esta en tus manos seguir investigando.

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita