WPP4Delphi icon indicating copy to clipboard operation
WPP4Delphi copied to clipboard

Demo project and OnGetQrCode parameters issues

Open mbnoimi opened this issue 1 year ago • 33 comments

Hi,

I'm building my first basic example but I couldn't figure out the correct parameters of OnGetQrCode. I tried to use:

procedure(Sender: TObject; const QrCode: string; AImage: TBitmap)

but didn't work. May you please help me to fix it?

unit MaintForm;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes,
  Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ExtCtrls,
  uTWPPConnect;

type
  TMainForm = class(TForm)
    btnSendMessage: TButton;
    edtPhoneNumber: TEdit;
    memoMessage: TMemo;
    lblStatus: TLabel;
    imgQrCode: TImage;
    procedure btnSendMessageClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
    WPP: uTWPPConnect.TWPPConnect;
    procedure UpdateStatus(Status: string);
  public
    { Public declarations }
  end;

var
  MainForm: TMainForm;

implementation

{$R *.dfm}

procedure TMainForm.FormCreate(Sender: TObject);
begin
  {$IFDEF CEFCurrentVersion}
  ShowMessage('CEFCurrentVersion is defined');
  {$ELSE}
  ShowMessage('CEFCurrentVersion is not defined');
  {$ENDIF}

  WPP := uTWPPConnect.TWPPConnect.Create(Self);

  //-----> [dcc32 Error] MaintForm.pas(48): E2009 Incompatible types: 'Parameter lists differ'
  WPP.OnGetQrCode := procedure(Sender: TObject; const QrCode: string; AImage: TBitmap)
  begin
    imgQrCode.Picture.Assign(AImage);
  end;

  UpdateStatus('Not Connected');
end;

procedure TMainForm.UpdateStatus(Status: string);
begin
  lblStatus.Caption := 'Status: ' + Status;
end;

procedure TMainForm.btnSendMessageClick(Sender: TObject);
var
  TargetNumber, MessageText: string;
begin
  TargetNumber := edtPhoneNumber.Text + '@c.us';
  MessageText := memoMessage.Lines.Text;

  if WPP.Auth(True) then
  begin
    UpdateStatus('Connected');
    WPP.Send(TargetNumber, MessageText);
  end
  else
  begin
    UpdateStatus('Authentication required. Please scan the QR code.');
    ShowMessage('Authentication failed. Please scan the QR code.');
  end;
end;

end.

mbnoimi avatar Aug 13 '24 11:08 mbnoimi