Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 29-02-2016
rmendoza83 rmendoza83 is offline
Miembro
 
Registrado: ago 2006
Posts: 50
Poder: 18
rmendoza83 Va por buen camino
Obtener Nombre de la Unidad en Uso

Buenos Dias compa;eros, un saludo cordial a todos.

Queria saber si alguno dispondra de una funcion que obtenga el nombre de la unidad en uso (UnitName), investigando en internet vi algo relacionado a la unidad RTTI que trabaja en base a esto, pero por falta de tiempo queria ver si ya alguien por aqui tendra alguna desarrollada! Estoy terminando un modulo de tratamiento de errores y quisiera incorporar en en log esta cadena para mejor soporte de usuarios.

Gracias.
Responder Con Cita
  #2  
Antiguo 29-02-2016
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
¿No te sirve extraerla de GetCurrentDirectory?

Saludos.
Responder Con Cita
  #3  
Antiguo 29-02-2016
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por escafandra Ver Mensaje
¿No te sirve extraerla de GetCurrentDirectory?
Creo que el compañero se refiere a que, en una excepción, por ejemplo, poder mostrar el nombre de la unidad donde se produjo el error.

LineComment Saludos
Responder Con Cita
  #4  
Antiguo 29-02-2016
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
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.

Podrías usar RTTI, por ejemplo:
Código Delphi [-]
unit uException;

interface

uses SysUtils;

type
  TAppExceptHandler = class(TObject)
  public
    procedure Handle(Sender: TObject; E: Exception);
  end;

var
  AppExceptHandler: TAppExceptHandler;

implementation

uses TypInfo, Dialogs;

procedure TAppExceptHandler.Handle(Sender: TObject; E: Exception);
var
  Ptd: PTypeData;
begin
  Ptd := GetTypeData(Sender.ClassInfo);
  if Assigned(Ptd) then
    ShowMessage(Format('Se produjo un error en %s%s%s',[Ptd^.UnitName, #10, E.Message]))
  else
    //...
  ;
end;
end.

Código Delphi [-]
program Project1;

uses
  Forms,
  uException in 'uException.pas',
  Unit1 in 'Unit1.pas' {Form1},
  Unit2 in 'Unit2.pas' {Form2},
  Unit3 in 'Unit3.pas' {Form3};

{$R *.res}

begin
  Application.OnException := AppExceptHandler.Handle;
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.

Forzar errores en distintas unidades :
Código Delphi [-]
unit Unit1;
...
type
  TForm1 = class(TForm)
    Button1: TButton;   
    Button2: TButton;
    Button3: TButton; 
    Edit1: TEdit;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
...
  
implementation

uses Unit2, Unit3;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Edit1.Visible := False;
  Edit1.SetFocus;  // Asignar foco a ctrl invisible
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  Form2 := TForm2.Create(Self); // TStrings.LoadFromFile
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
  Form3 := TForm3.Create(Self); // ADOQuery sin configurar
end;

...

Resultado:


Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #5  
Antiguo 01-03-2016
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Estupendo Daniel! Una pregunta, esta información (unit name) ¿viene en cualquier RTTI o sólo en las últimas versiones de Delphi?

LineComment Saludos
Responder Con Cita
  #6  
Antiguo 01-03-2016
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.056
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
¡Qué monstruo! y lo fácil que parece.
Responder Con Cita
Respuesta



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
Nombre de la Unidad activa riqui73 C++ Builder 11 15-07-2010 14:49:33
En una instalación en CITRIX obtener nombre unidad C: de mi PC Jose Manuel Conexión con bases de datos 0 23-04-2010 18:41:09
Detectar Nombre unidad donde se inserto CD JuanErasmo API de Windows 11 27-04-2007 22:09:20
Saber nombre de la unidad de CD rex Varios 2 18-08-2005 23:16:08
Cambiar el nombre de la unidad de DD? danytorres Varios 1 05-02-2004 07:07:58


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


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