Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

 
 
Herramientas Buscar en Tema Desplegado
  #7  
Antiguo 19-05-2015
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
ElDuc,

Cita:
Empezado por ElDuc
...necesito gestionar la información que el programa pasa a la DLL en los parámetros y hacer un seguimiento visual del funcionamiento pero...las DLL son procesos no visuales...


Revisa este código:
Código Delphi [-]
unit DLLUnit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons;

type
  TForm1 = class(TForm)
    ListBox1: TListBox;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    procedure BitBtn1Click(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
   ModalResult := mrOk;
end;

procedure TForm1.BitBtn2Click(Sender: TObject);
begin
   ModalResult := mrCancel;
end;

end.
Código Delphi [-]
library DLLForm;

uses
  Windows,
  Messages,
  SysUtils,
  Variants,
  Classes,
  Graphics,
  Controls,
  Forms,
  Dialogs,
  DLLUnit1 in 'DLLUnit1.pas' {Form1};

{$R *.res}

function DLLFormParameters(S1 : Pchar;
                           I1 : Integer;
                           L1 : LongWord;
                           D1 : Double;
                           DT1 : TDateTime) : TModalResult; Stdcall;
var
   F : TForm1;

begin

   F := TForm1.Create(nil);

   with F do
   begin

      ListBox1.Clear;
      ListBox1.Items.Add(S1);
      ListBox1.Items.Add(IntToStr(I1));
      ListBox1.Items.Add(IntToStr(L1));
      ListBox1.Items.Add(FloatToStr(D1));
      ListBox1.Items.Add(DateTimeToStr(DT1));

      if F.ShowModal = mrOk then
         Result := mrOk
      else
         Result := mrCancel;
        
   end;

   F.Free;

end;

exports
   DLLFormParameters;

begin
end.
Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

  function DLLFormParameters(S1 : PChar;
                             I1 : Integer;
                             L1 : LongWord;
                             D1 : Double;
                             DT1 : TDateTime) : TModalResult; Stdcall; External 'DLLForm.dll';

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
   S1 : PChar;
   I1 : Integer;
   L1 : LongWord;
   D1 : Double;
   DT1 : TDateTime;

begin

   S1 := 'Test de envió de parámetros a un Form en un DLL';
   I1 := MaxInt;
   L1 := High(LongWord);
   D1 := 3.1415927;
   DT1 := Now;

   if DLLFormParameters(S1,I1,L1,D1,DT1) = mrOk then
      MessageDlg('DLLFormParameters Ok',mtInformation,[mbOK],0)
   else
      MessageDlg('DLLFormParameters Cancel',mtError,[mbOK],0)

end;

end.
El código anterior en Delphi 7 sobre Windows 7 Professional x32, Implementa una DLL con un formulario que visualiza los parámetros enviados a esta, como se muestra en la siguiente imagen:



El código del ejemplo esta disponible en : DLLForm.rar

Espero sea útil

Nelson.

Última edición por nlsgarcia fecha: 20-05-2015 a las 16:11:17.
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
Mandar mensajes con delphi 2010 jofebas OOP 10 07-06-2011 20:09:12
Recibir mensajes con Indy tec Internet 2 26-02-2010 15:43:46
Recibir Mensajes ANALBA Internet 2 28-07-2008 16:55:13
Recibir Mensajes de Correo marcial Internet 2 11-06-2007 07:30:14
Problema con mandar mensajes... Lester Varios 1 20-11-2003 17:31:30


La franja horaria es GMT +2. Ahora son las 16:35:00.


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