Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #5  
Antiguo 05-03-2008
Avatar de axesys
axesys axesys is offline
Miembro
 
Registrado: ene 2007
Ubicación: Los Mochis Sinaloa
Posts: 208
Poder: 18
axesys Va por buen camino
Hola Al,

Por lo que e leído sobre la herencia insertada que hablas según yo eso lo puedes hacer con los class helpers, puedes ver este video para que veas como

Class Helpers: Friend or Foe

Este es un ejemplo de como yo las estoy aplicando

Código Delphi [-]
unit udtsHelper;

interface

uses
  Classes, pFibDataSet;

type
  TFibDatasetHelper = class helper for TpFibDataSet
  public
    function CampoNombreCadena(sCampo: String): String;
    function CampoNombreEntero(sCampo: String): integer;
    function CampoNombreFlotante(sCampo: String): double;
    function CampoNombreFecha(sCampo: String): TDateTime;
    function CampoCadena(iIndice: integer): String;
    function CampoEntero(iIndice: integer): integer;
    function CampoFlotante(iIndice: integer): double;
    procedure CampoNombreBlob(sCampo: String; var strContenido: TMemoryStream);

    procedure CampoNombre(sCampo, sValor: string); overload;
    procedure CampoNombre(sCampo: string; iValor: Integer); overload;
    procedure CampoNombre(sCampo: string; dValor: Double); overload;
    procedure CampoNombre(sCampo: string; dtValor: TDateTime); overload;

    procedure ParametroNombre(sCampo, sValor: string); overload;
    procedure ParametroNombre(sCampo: string; iValor: Integer); overload;
    procedure ParametroNombre(sCampo: string; dValor: Double); overload;
    procedure ParametroNombre(sCampo: string; dtValor: TDateTime); overload;
  end;

implementation

uses
  DB;

{ TFibDatasetHelper }

function TFibDatasetHelper.CampoNombreCadena(sCampo: String): String;
begin
  Result:= FieldByName(sCampo).AsString;
end;

function TFibDatasetHelper.CampoNombreEntero(sCampo: String): integer;
begin
  Result:= FieldByName(sCampo).AsInteger;
end;

function TFibDatasetHelper.CampoNombreFlotante(sCampo: String): double;
begin
  Result:= FieldByName(sCampo).AsFloat;
end;

function TFibDatasetHelper.CampoNombreFecha(sCampo: String): TDateTime;
begin
  Result:= FieldByName(sCampo).AsDateTime;
end;

procedure TFibDatasetHelper.CampoNombre(sCampo: string; iValor: Integer);
begin
  FieldByName(sCampo).AsInteger:= iValor
end;

procedure TFibDatasetHelper.CampoNombre(sCampo, sValor: string);
begin
  FieldByName(sCampo).AsString:= sValor
end;

procedure TFibDatasetHelper.CampoNombre(sCampo: string; dtValor: TDateTime);
begin
  FieldByName(sCampo).AsDateTime:= dtValor
end;

procedure TFibDatasetHelper.CampoNombre(sCampo: string; dValor: Double);
begin
  FieldByName(sCampo).AsFloat:= dValor
end;

procedure TFibDatasetHelper.CampoNombreBlob(sCampo: String; var strContenido: TMemoryStream);
var
  fldCampo: TField;
  strStream: TStream;
begin

  if(not FieldByName(sCampo).IsNull) then
  begin
    fldCampo:= FieldByName(sCampo);
    strStream:= CreateBlobStream(fldCampo, bmRead);
    strContenido.CopyFrom(strStream, strStream.Size);
  end
  else
    strContenido.Clear;
end;

procedure TFibDatasetHelper.ParametroNombre(sCampo: string; iValor: Integer);
begin
  ParamByName(sCampo).AsInteger:= iValor
end;

procedure TFibDatasetHelper.ParametroNombre(sCampo, sValor: string);
begin
  ParamByName(sCampo).AsString:= sValor
end;

procedure TFibDatasetHelper.ParametroNombre(sCampo: string; dtValor: TDateTime);
begin
  ParamByName(sCampo).AsDateTime:= dtValor
end;

procedure TFibDatasetHelper.ParametroNombre(sCampo: string; dValor: Double);
begin
  ParamByName(sCampo).AsDouble:= dValor
end;

function TFibDatasetHelper.CampoCadena(iIndice: integer): String;
begin
  Result:= Fields[iIndice].AsString;
end;

function TFibDatasetHelper.CampoEntero(iIndice: integer): integer;
begin
  Result:= Fields[iIndice].AsInteger;
end;

function TFibDatasetHelper.CampoFlotante(iIndice: integer): double;
begin
  Result:= Fields[iIndice].AsFloat;
end;

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
Primer vistazo a ECO IV para Visual Studio 2005/2008 ... axesys .NET 0 24-12-2007 19:59:46
Como utilizar Installshield 2008 con proyecto con tablas paradox en delphi 7? sricardo Varios 0 06-12-2007 15:34:28
Encuesta de Borland para usuarios Delphi mamcx Noticias 1 12-05-2005 00:29:02
Encuesta de Delphi __cadetill Noticias 1 17-02-2004 17:57:54
Encuesta: Motivos por los que no deberíamos usar el BDE (para una red local) Muten Firebird e Interbase 3 01-09-2003 22:13:38


La franja horaria es GMT +2. Ahora son las 18:52:54.


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