AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

XE7 - ZintBarcode Exception

Ein Thema von canoniac · begonnen am 20. Feb 2017 · letzter Beitrag vom 7. Mär 2017
Antwort Antwort
Seite 1 von 2  1 2   
canoniac

Registriert seit: 25. Aug 2014
26 Beiträge
 
#1

XE7 - ZintBarcode Exception

  Alt 20. Feb 2017, 07:20
Hallo zusammen,

ich habe folgendes Problem:
Ich Verwende in zwei Projekten die ZintBarcode - Komponente. In einem der Projekte lässt sich ein Barcode ohne Fehler erstellen, im anderen Fall kommt es zu einer Exception ("Systemressourcen erschöpft"). Bei der Fehlersuche habe ich den Code auf ein minimum reduziert und die entsprechende dll sowie die nötigen Units direkt aus dem funktionierenden Projektverzeichnis kopiert. Die "Hauptform" enthält nichts weiter als den angefügten Code. Die Exception tritt beim Aufruf von MyBarcode.GetBarcode() auf.

Delphi-Quellcode:
procedure THauptForm.FormCreate(Sender: TObject);
var
    MyBitmap :TBitMap;
    MyBarcode :TZintBarcode;

begin
  //BarCode zeichnen ***********************************************************
  MyBarcode := TZintBarcode.Create;
  MyBarcode.Clear;
  MyBarcode.Data := '00340311640213278478';
  MyBarcode.BarcodeType := tBARCODE_CODE128;
  MyBarcode.Option3 := 100;
  MyBarcode.Scale := 1;
  MyBarcode.GetBarcode(MyBitmap);
// MyCanvas.Draw(0,0,MyBitmap);
  //****************************************************************************

end;
Die Frage ist nun: Wie kann das sein?

Für Tipps wäre ich sehr Dankbar!

Danke im Voraus
canoniac
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
3.896 Beiträge
 
Delphi 12 Athens
 
#2

AW: XE7 - ZintBarcode Exception

  Alt 20. Feb 2017, 10:23
Kann es sein das es daran liegt dass das TBitmap nicht erzeugt ist ?

Delphi-Quellcode:
procedure ZeichneBarcode;
var
  myBmp :TBitMap;
  myZintBarcode :TZintBarcode;
begin

  myZintBarcode := TZintBarcode.Create;
  myBmp := TBitmap.Create;


  myZintBarcode.Clear;
  myZintBarcode.Data := '00340311640213278478';
  myZintBarcode.BarcodeType := tBARCODE_CODE128;
  myZintBarcode.Option3 := 100;
  myZintBarcode.Scale := 1;
  myZintBarcode.GetBarcode(myBmp);
  Form1.Canvas.Draw(0,0,myBmp);



  myBmp.Free;
  myZintBarcode.Free;
end;
Rollo
  Mit Zitat antworten Zitat
canoniac

Registriert seit: 25. Aug 2014
26 Beiträge
 
#3

AW: XE7 - ZintBarcode Exception

  Alt 20. Feb 2017, 12:15
Au...in meinen Projekten ist es natürlich erzeugt.

Delphi-Quellcode:
procedure THauptForm.FormCreate(Sender: TObject);
var
    MyBitmap :TBitMap;
    MyBarcode :TZintBarcode;

begin
  //BarCode zeichnen ***********************************************************
  MyBarcode := TZintBarcode.Create;
  MyBitmap := TBitMap.Create;
  MyBarcode.Clear;
  MyBarcode.Data := '00340311640213278478';
  MyBarcode.BarcodeType := tBARCODE_CODE128;
  MyBarcode.Option3 := 100;
  MyBarcode.Scale := 1;
  MyBarcode.GetBarcode(MyBitmap);
// MyCanvas.Draw(0,0,MyBitmap);
  //****************************************************************************

end;
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.288 Beiträge
 
Delphi 12 Athens
 
#4

AW: XE7 - ZintBarcode Exception

  Alt 20. Feb 2017, 13:37
Hallöle...
Delphi-Quellcode:
myBmp.Free;
myZintBarcode.Free;
...wie es schon Rollo62 sagte. ( erinnert mich immer an https://de.wikipedia.org/wiki/Wilde_Kreaturen)
  Mit Zitat antworten Zitat
canoniac

Registriert seit: 25. Aug 2014
26 Beiträge
 
#5

AW: XE7 - ZintBarcode Exception

  Alt 20. Feb 2017, 13:49
Die Objekte müssen freigegeben werden. Das ist schon klar.
Aber dennoch muss sich ja ein Bitmap erstellen lassen BEVOR das Objekt zerstört wird.

Ich habe das an der Stelle dann mal eingefügt - an dem beschriebenen Verhalten ändert sich jedoch nichts...
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
3.896 Beiträge
 
Delphi 12 Athens
 
#6

AW: XE7 - ZintBarcode Exception

  Alt 20. Feb 2017, 15:29
So ungefähr funktioniert es bei mir.

Vielleicht liegts am .Refresh ?


Delphi-Quellcode:
procedure TForm1.ActionQrGenerateSingleExecute;
var
  bmpQr: TBitmap;
  picQr: TJpegImage;

begin

 ZintBarcodeComponent1.Barcode.Scale := SpinEditScale.Value / 100.0;

 ZintBarcodeComponent1.Barcode.Data := strX;
 ZintBarcodeComponent1.Refresh;

 //
 // Get Barcode
 //
 bmpQr := TBitmap.Create;
 picQr := TJpegImage.Create;

 try

   ZintBarcodeComponent1.Barcode.GetBarcode(bmpQr);

   picQr.Assign(bmpQr);
   picQr.CompressionQuality := 80;
   picQr.SaveToFile( strFile + '.jpg'); // Save as JPEG

 finally

   FreeAndNil(picQr);
   FreeAndNil(bmpQr);

 end;

end;
  Mit Zitat antworten Zitat
canoniac

Registriert seit: 25. Aug 2014
26 Beiträge
 
#7

AW: XE7 - ZintBarcode Exception

  Alt 21. Feb 2017, 08:39
Danke für den Tipp, leider verursacht der Aufruf von GetBarcode() immernoch eine Exception.

Ist es möglich dass -wie auch immer- unterschiedliche Projekteinstellungen vorliegen?
Und wenn das eine Möglichkeit ist, wo finde ich die betreffenden Einstellungen?
  Mit Zitat antworten Zitat
Benutzerbild von FaTaLGuiLLoTiNe
FaTaLGuiLLoTiNe

Registriert seit: 3. Jul 2004
Ort: NRW
55 Beiträge
 
Delphi XE Enterprise
 
#8

AW: XE7 - ZintBarcode Exception

  Alt 21. Feb 2017, 10:29
Könnte das Problem an dem Aufruf im FormCreate-Event liegen?
Christian
<< FaTaLGuiLLoTiNe >>
Rhinoceroses don't play games!
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
3.896 Beiträge
 
Delphi 12 Athens
 
#9

AW: XE7 - ZintBarcode Exception

  Alt 21. Feb 2017, 12:23
Das sind die Einstellungen in der Form dazu ...
Bei mir gehts aber um QR-Code.

Delphi-Quellcode:
    object ZintBarcodeComponent1: TZintBarcodeComponent
      Left = 0
      Top = 73
      Width = 653
      Height = 519
      Align = alClient
      Barcode.BarcodeType = tBARCODE_QRCODE
      Barcode.Data = 'http://example.de'
      Barcode.Height = 25
      Barcode.BorderWidth = 1
      Barcode.OutputOptions = []
      Barcode.FGColor = clBlack
      Barcode.BGColor = clWhite
      Barcode.Option1 = -1
      Barcode.Option2 = 0
      Barcode.Option3 = 928
      Barcode.Rotation = r0
      Barcode.ShowHumanReadableText = True
      Barcode.Stacked = False
      ExplicitLeft = 232
      ExplicitTop = 176
      ExplicitWidth = 100
      ExplicitHeight = 41
    end
Rollo
  Mit Zitat antworten Zitat
canoniac

Registriert seit: 25. Aug 2014
26 Beiträge
 
#10

AW: XE7 - ZintBarcode Exception

  Alt 21. Feb 2017, 13:37
Vielen Dank, für die Rückmeldungen.

Leider wird mir trotz alle dem immernoch nicht klar wieso der gleiche Code in zwei unterschiedlichen
Projekten nicht gleich gut / schlecht funktioniert.

Das Problem ließ sich jetzt "lösen" oder eher gesagt umgehen indem ich ein komplett neues Projekt erstellt habe.

Könnte mir jemand erläutern wo ich beispielsweise Einstelllungen und Eigenschaften die beim Compilieren, Linken und Erstellen des Projekts zum tragen kommen finde?
Ich vermute das die Ursache in einer fehlerhaften oder inkompatiblen Einstellung liegen könnte.

Kann das evtl. jemand, im Zusammenhang mit anderen Komponenten, bestätigen?
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:39 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz