Registriert seit: 31. Mär 2019
28 Beiträge
|
AW: QR-Code scannen
28. Dez 2024, 19:05
constructor TfQRScanThread.create;
begin
inherited create(false);
starten := TEvent.create(nil, false, false, '');
fertig := TEvent.create(nil, true, true, '');
qrcode := TEvent.create(nil, true, false, '');
iBMP := TBitmap.Create;
iScanmanager := TScanManager.Create(TBarcodeFormat.QR_CODE, nil);
FreeOnTerminate := true;
end;
procedure TfQRScanThread.Execute ;
var
ReadResult : TReadResult;
str : string;
begin
while not Terminated do begin
if (starten.WaitFor(INFINITE) = wrSignaled) and assigned(iBMP) then begin
try
ReadResult := iScanManager.Scan(iBmp);
if assigned(readResult)then begin
qrcode.SetEvent;
str := readResult.Text;
freeAndNil(ReadResult);
queue(
procedure
begin
fQRCode.CameraComponent1.OnSampleBufferReady := nil;
fQRCode.CameraComponent1.Active := false;
fQRCode.imgCamera.Visible := false;
fQRCode.aScan.Checked := false;
pruefeQRCode(str);
//fQRCode.bild(iBMP, TAlphaColors.Green);
end);
end; // if
except
end; // try
end; // if
fertig.SetEvent;
end; // while
end;
|