Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #8  
Antiguo 13-07-2018
Avatar de gatosoft
[gatosoft] gatosoft is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Bogotá, Colombia
Posts: 833
Poder: 22
gatosoft Va camino a la fama
hola bucanero.

Sugiero que utilices la RTTI. Para ello debes cambiar tu codigo de la unidad configs asi:

Código Delphi [-]
unit configs;

interface

uses inifiles;

type
  TClassIniFile = class of TInifile;

var
  ClassIniFile: TClassIniFile = nil;
  IniFileName: string = 'c:\tmp\config.ini';
  ClassIniFileName: String = '';

  function config: TIniFile;

implementation

uses Dialogs, SysUtils, ObjectClone, RTTI;

var
  IniFile:TInifile = Nil;

function config: TIniFile;
var
  RttiContext: TRttiContext;
  RttiType: TRttiInstanceType;
Begin
   if Assigned(IniFile) then
     exit(IniFile);

   if ClassIniFileName <> '' then
      begin
      RttiContext:= TRttiContext.Create;
      RttiType := RttiContext.FindType(ClassIniFileName) as TRttiInstanceType;

      IniFile:= RttiType.GetMethod('Create')
                        .Invoke(RttiType.MetaclassType,
                               [IniFileName]).AsObject as TIniFile;

      end
   else
      IniFile := TIniFile.Create(IniFileName);

   Result:= IniFile;
end;


initialization

finalization
  if assigned(IniFile) then
    IniFile.Free;
end.

y tus unidades descendientes, algo asi:

Código Delphi [-]
unit MyIniFiles;

interface

uses IniFiles, uIMyInis;

type
  TMyIniFile = class(TIniFile)
  private
  public
    class procedure mydummy; static;
    constructor Create(const FileName: string);
  end;

implementation

uses dialogs, configs;

{ TMyIniFile }

constructor TMyIniFile.Create(const FileName: string);
begin
 inherited Create(FileName);
 MessageDlg('TMyIniFile2.Crear', mtInformation, [mbOK], 0);
end;

class procedure TMyIniFile.mydummy;
begin

end;

Initialization
  TMyIniFile.mydummy; //Me encontré con este error
  ClassIniFileName:='MyIniFiles.TMyIniFile';
end.
Responder Con Cita
 



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
Crear objetos mediante su clase coso Trucos 0 05-12-2008 23:37:15
duda al crear un descendiente de tpanel hibero OOP 1 23-05-2008 21:07:52
problema crear dll con clase rzf1983 Varios 9 08-11-2007 22:56:52
crear un evento en una clase? chelox OOP 4 06-06-2007 20:14:20
Crear clase. Basico de POO. DarkByte OOP 17 24-08-2005 17:37:21


La franja horaria es GMT +2. Ahora son las 15:23:55.


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