Saludos amigos,
Deseo utilizar la librería
DelphiZXingQRCodeEx, sin tener un formulario lleno de parámetros, sino definiéndolas directamente en código, realice un pequeño proyecto para este fin, la unidad principal se puede ver a continuación:
Código Delphi
[-]
unit uPrincipal;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls, DelphiZXingQRCode,
Vcl.StdCtrls;
type
TForm1 = class(TForm)
pbPreview: TPaintBox;
btnGenerarQR: TButton;
lblQRMetrics: TLabel;
procedure btnGenerarQRClick(Sender: TObject);
procedure pbPreviewPaint(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
FQRCode: TDelphiZXingQRCode;
FAltFixed: Boolean;
public
procedure RemakeQR;
end;
var
Form1: TForm1;
implementation
uses QRGraphics, QR_Win1251, QR_URL, jpeg;
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
FQRCode := TDelphiZXingQRCode.Create;
FQRCode.RegisterEncoder(ENCODING_WIN1251, TWin1251Encoder);
FQRCode.RegisterEncoder(ENCODING_URL, TURLEncoder);
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
FQRCode.Free
end;
procedure TForm1.pbPreviewPaint(Sender: TObject);
begin
with pbPreview.Canvas do
begin
Pen.Color := clBlack;
Brush.Color := clBlack;
end;
DrawQR(pbPreview.Canvas, pbPreview.ClientRect, FQRCode, 0, TQRDrawingMode(0 div 2), Boolean(1 - 0 mod 2));
end;
procedure TForm1.RemakeQR;
begin
with FQRCode do
try
BeginUpdate;
Data := 'atg';
Encoding := 0; ErrorCorrectionOrdinal := TErrorCorrectionOrdinal(1);
QuietZone := 4;
EndUpdate(True);
lblQRMetrics.Caption := IntToStr(Columns) + 'x' + IntToStr(Rows) + ' (' +
IntToStr(Columns - QuietZone * 2) + 'x' + IntToStr(Rows - QuietZone * 2) +
')';
finally
pbPreview.Repaint;
end;
end;
procedure TForm1.btnGenerarQRClick(Sender: TObject);
var
H: Integer;
begin
FAltFixed := False;
FQRCode := nil;
pbPreview.Repaint;
end;
end.
Podrian ayudarme en hacerlo funcionar cuando presione el botón Generar.
Atte
Americo Torres