Ver Mensaje Individual
  #3  
Antiguo 07-08-2017
engranaje engranaje is offline
Miembro
 
Registrado: may 2011
Posts: 163
Reputación: 13
engranaje Va por buen camino
Por si pudiera servir de pista he encontrado un comportamiento curiosos en un formulario sencillo con 2 botones de prueba utilizando la dll como expliqué en el punto anterior:

Código Delphi [-]

unit Principal;

interface

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

type
  TForm1 = class(TForm)
    btnPrueba: TButton;
    btnPrueba2: TButton;
    procedure btnPruebaClick(Sender: TObject);
    procedure btnPrueba2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.btnPruebaClick(Sender: TObject);
begin

   if integer(oWhite) = 1 then
      PintarColor(oWhite);

   if integer(oRed) = 2 then
       PintarColor(oRed);

end;

procedure TForm1.btnPrueba2Click(Sender: TObject);
begin
    if integer(oRed) = 2 then
       PintarColor(oRed);
end;

Si en el onclick del boton solo se hace una llamada a pintarcolor la dll muestra un valor distinto tanto si se le pasa oWhite como oRed, sin embargo si se llama dos veces seguidas a PintarColor, la dll solo muestra un valor distinto en la primera llamada, la segunda llamada devuelve el valor esperado. Sigo peleandome con esto pero confieso que de momento me veo perdido.
Responder Con Cita