Últimos 50 comentários: (clique aqui para ver todos os comentários)
|
1 - 10/7/2012 09:22 - ClubeDelphi - Criação de Componentes
|
|
WESLEY YAMAZACK
|
Olá Levy, infelizmente não temos mais este link por se tratar de um post bem antigo, na época houve uma falha no FTP.
Tentamos contato com o autor, porém o e-mail cadastrado não está mais ativo.
Um abraço e até mais
|
Responder |
|
|
2 - 9/7/2012 15:35 - ClubeDelphi - Criação de Componentes
|
|
Levy Moreira
|
O link para download esta quebrado.
|
Responder |
|
|
3 - 25/4/2012 09:32 - ClubeDelphi - Artigo Clube Delphi 58 - Games
|
|
lucas souza de carvalho
|
Matéria sensacional! Obrigado por compartilhar conosco.
|
Responder |
|
|
4 - 28/12/2011 00:16 - ClubeDelphi - Criação de Componentes
|
|
Luis Carlos Godinho
|
Olá Jose!
Acompanhando o artigo, detectei 1 problema na criação do componente:
procedure Register;
implementation
//uses untExGuiErrorDialog; uses untGuiExErrorDialog;
procedure Register; begin RegisterComponents('ExControls', [TExErrorDialog]);
end;
Observe que o nome da unit declarada na uses esta diferente do nome sugerido no artigo. Apos esta correção consegui compilar e instalar o componente.
Já no código do teste do componente notei que o código faz referencia ao registro "ErrConvert" que não esta declarado no componente e na sequencia tem o comentário que esta como <- e o correto e estar como // veja exemplo:
Errado ErrorSource := 'cmdRunTimeClick'; ErrorMsgUser := ErrConvert; <- constante ErrorMsgSys := 'X is not a valid integer value.';
Correto ErrorSource := 'cmdRunTimeClick'; ErrorMsgUser := ErrorCode; // constante ErrorMsgSys := 'X is not a valid integer value.';
Abs.!
|
Responder |
|
|
5 - 27/12/2011 10:21 - ClubeDelphi - Criação de Componentes
|
|
JOSE BISPO SANTOS
|
Estou com problema para compilar esse projeto aparece os seguintes erros: [Error] untGuiExErrorDialog.pas(23): Undeclared identifier: 'TErrorInfo' [Error] untGuiExErrorDialog.pas(46): Undeclared identifier: 'ErrorType' [Error] untGuiExErrorDialog.pas(100): Undeclared identifier: 'ErrorMsgUser' [Error] untGuiExErrorDialog.pas(104): Undeclared identifier: 'ErrorCode' [Error] untGuiExErrorDialog.pas(106): Undeclared identifier: 'ErrorSource' [Error] untGuiExErrorDialog.pas(106): Incompatible types: 'String' and 'Integer' [Error] untGuiExErrorDialog.pas(108): Undeclared identifier: 'ErrorClass' [Error] untGuiExErrorDialog.pas(108): Incompatible types: 'String' and 'Integer' [Error] untGuiExErrorDialog.pas(110): Undeclared identifier: 'ErrorMethod' [Error] untGuiExErrorDialog.pas(110): Incompatible types: 'String' and 'Integer' [Error] untGuiExErrorDialog.pas(112): Undeclared identifier: 'ErrorMsgSys' [Error] untGuiExErrorDialog.pas(112): Incompatible types: 'String' and 'Integer' [Fatal Error] ExErrorDialog.pas(154): Could not compile used unit 'untGuiExErrorDialog.pas' [Fatal Error] untGuiExErrorDialog.pas(33): Could not compile used unit 'C:\Sistoque\DialogoErro\ExErrorDialog.pas'
Código do Projeto
unit ExErrorDialog;
interface
uses Windows, Messages, SysUtils, Classes, Forms;
type
{ Tipos de Erro }
TErrorType = (etNone = 0, etRunTime = 1, etSQL = 2,
etValidation = 3, etLogic = 4);
{ Status do Erro }
TErrorStatus = (esNone = 0, esFatal = 1,
esNormal = 2);
{Tipo de Erro}
TErrorInfo = record
ErrorStatus: TErrorStatus;
ErrorType: TErrorType;
ErrorSource: string;
ErrorMsgUser: string;
ErrorMsgSys: string;
ErrorClass: string;
ErrorMethod: string;
ErrorCode: string;
end;
{ Componente de Erro }
TExErrorDialog = class(TComponent)
private FErrorInfo: TErrorInfo;
FErrorStatus: TErrorStatus;
FErrorType: TErrorType;
FErrorSource: string;
FErrorMsgUser: string;
FErrorMsgSys: string;
FErrorClass: string;
FErrorMethod: string;
FErrorCode: string;
FShowDetail: Boolean;
FClearAfterShow: Boolean;
FOnBeforeShow: TNotifyEvent;
FOnAfterShow: TNotifyEvent;
procedure SetErrorInfoValues();
procedure SetErrorPropValues();
protected
public
procedure Clear();
procedure ShowErrorMsg(); overload;
procedure ShowErrorMsg(const pErrorInfo: TErrorInfo); overload;
published
property ErrorStatus: TErrorStatus
read FErrorStatus write FErrorStatus;
property ErrorType: TErrorType
read FErrorType write FErrorType;
property ErrorSource: string
read FErrorSource write FErrorSource;
property ErrorMsgUser: string
read FErrorMsgUser write FErrorMsgUser;
property ErrorMsgSys: string
read FErrorMsgSys write FErrorMsgSys;
property ErrorClass: string
read FErrorClass write FErrorClass;
property ErrorMethod: string
read FErrorMethod write FErrorMethod;
property ErrorCode: string
read FErrorCode write FErrorCode;
property ShowDetail: Boolean
read FShowDetail write FShowDetail;
property ClearAfterShow: Boolean
read FClearAfterShow write FClearAfterShow;
property OnBeforeShow: TNotifyEvent
read FOnBeforeShow write FOnBeforeShow;
property OnAfterShow: TNotifyEvent
read FOnAfterShow write FOnAfterShow;
end;
procedure Register;
implementation
uses untGuiExErrorDialog;
procedure Register;
begin RegisterComponents('ExControls', [TExErrorDialog]);
end;
{ Mostra a mensagem passando os parametros internos }
procedure TExErrorDialog.ShowErrorMsg();
begin
{ Sincroniza as propriedades com o record }
SetErrorInfoValues;
{ Chama a rotina }
ShowErrorMsg(FErrorInfo);
end;
{ Mostra a mensagem passando os parametros
de pErrorInfo }
procedure TExErrorDialog.ShowErrorMsg(const pErrorInfo: TErrorInfo);
begin { Cria o formulario }
frmExGuiErrorDialog :=
TfrmExGuiErrorDialog.Create(Self);
FErrorInfo := pErrorInfo;
frmExGuiErrorDialog.SetFieldValue(pErrorInfo);
{ Sincroniza o record com as propriedades }
SetErrorPropValues;
{ Verifica e dispara o evento }
if Assigned(FOnBeforeShow) then
FOnBeforeShow(Self);
{ Seta o valor da propriedade ShowDetail }
frmExGuiErrorDialog.cmdDetalhes.Visible := FShowDetail;
{ Mostra o form Modal }
frmExGuiErrorDialog.ShowModal;
if Assigned(FOnAfterShow) then
FOnAfterShow(Self);
{ Verifica e limpa os parametros }
if FClearAfterShow then
Clear();
{ Libera a memória }
frmExGuiErrorDialog.Free;
frmExGuiErrorDialog := nil;
end;
{ Seta as propriedades internas do record }
procedure TExErrorDialog.SetErrorInfoValues();
begin
{ Seta as propriedades do record }
FErrorInfo.ErrorType := FErrorType;
FErrorInfo.ErrorStatus := FErrorStatus;
FErrorInfo.ErrorSource := FErrorSource;
FErrorInfo.ErrorMsgUser := FErrorMsgUser;
FErrorInfo.ErrorMsgSys := FErrorMsgSys;
FErrorInfo.ErrorClass := FErrorClass;
FErrorInfo.ErrorMethod := FErrorMethod;
FErrorInfo.ErrorCode := FErrorCode;
end;
{ Seta as propriedades internas do componente }
procedure TExErrorDialog.SetErrorPropValues();
begin
{ Seta as propriedades do record }
FErrorType := FErrorInfo.ErrorType;
FErrorStatus := FErrorInfo.ErrorStatus;
FErrorSource := FErrorInfo.ErrorSource;
FErrorMsgUser := FErrorInfo.ErrorMsgUser;
FErrorMsgSys := FErrorInfo.ErrorMsgSys;
FErrorClass := FErrorInfo.ErrorClass;
FErrorMethod := FErrorInfo.ErrorMethod;
FErrorCode := FErrorInfo.ErrorCode;
end;
{ Limpa todas as propriedades internas }
procedure TExErrorDialog.Clear();
begin
{ Limpa as propriedades do record }
with FErrorInfo do
begin
ErrorType := etNone;
ErrorStatus := esNone;
ErrorSource := EmptyStr;
ErrorMsgUser := EmptyStr;
ErrorMsgSys := EmptyStr;
ErrorClass := EmptyStr;
ErrorMethod := EmptyStr;
ErrorCode := EmptyStr;
end;
{ Limpa as propriedades publicas }
ErrorType := etNone;
ErrorStatus := esNone;
ErrorSource := EmptyStr;
ErrorMsgUser := EmptyStr;
ErrorMsgSys := EmptyStr;
ErrorClass := EmptyStr;
ErrorMethod := EmptyStr;
ErrorCode := EmptyStr;
end; end.
unit untGuiExErrorDialog;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls;
type TfrmExGuiErrorDialog = class(TForm) txtErrorDescription: TMemo; imgValidation: TImage; imgLogic: TImage; imgInformation: TImage; imgRunTime: TImage; lblErrMsg: TStaticText; cmdDetalhes: TButton; cmdOk: TButton; private { Private declarations } public { Public declarations } procedure SetFieldValue(const pErrorInfo: TErrorInfo);
end;
var frmExGuiErrorDialog: TfrmExGuiErrorDialog;
implementation
uses ExErrorDialog;
{$R *.dfm} procedure TfrmExGuiErrorDialog.SetFieldValue(const pErrorInfo: TErrorInfo);
begin
with pErrorInfo do
begin
{ Verifica qual o tipo de erro }
case ErrorType of
etNone:
begin
Caption := 'Tipo de Erro Desconhecido.';
imgRunTime.Visible := True;
end;
etValidation:
begin
Caption := 'Erro de Validação.';
imgValidation.Visible := True;
end;
etSQL:
begin
Caption := 'Erro de Comando SQL.';
imgRunTime.Visible := True;
end;
etRunTime:
begin
Caption := 'Erro de Run-Time.';
imgRunTime.Visible := True;
end;
etLogic:
begin
Caption := 'Erro de Lógica de Programação.';
imgLogic.Visible := True;
end;
end;
lblErrMsg.Caption := ErrorMsgUser;
txtErrorDescription.Text :=
'Code: ' + ErrorCode + #13#10 +
'Source: ' + ErrorSource + #13#10 +
'Class: ' + ErrorClass + #13#10 +
'Method: ' + ErrorMethod + #13#10 +
'Description: ' + ErrorMsgSys;
end;
end;
end.
|
Responder |
|
|
Últimas atualizações deste autor:
|
|
|
| Sobre o autor |
|
| Fabio Alves Francelino (francelino@mackenzie.com.br) é Analista de Sistemas formado pela Universidade Presbiteriana Mackenzie. Trabalha com ADO e DataSnap em projetos cliente/servidor e multicamadas, desenvolve componentes e jogos para Delphi.
|
| Estatísticas do Autor: |
| Número de posts:
|
8 |
|
| Características dos posts deste autor: |
| Conteúdo:
|
     |
| Utilidade:
|
2
|
|
0
|
|
|
|