AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Nicht sichtbaren TPaintBox Inhalt speichern

Ein Thema von cramer · begonnen am 10. Feb 2015 · letzter Beitrag vom 11. Feb 2015
Antwort Antwort
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.385 Beiträge
 
Delphi 12 Athens
 
#1

AW: Nicht sichtbaren TPaintBox Inhalt speichern

  Alt 11. Feb 2015, 13:16
Die Fehlerbehandlung ist aber wieder nicht "benutzbar". (siehe vorherrige Kommentare dazu)

Delphi-Quellcode:
   except
      on e:exception do begin
         FehlerOk( 'QRCodeShow Fehler : ' + e.Message );
      end;
   end;
Ruf diese Funktion mal auf und versuch beim Aufrufer den Fehler abzufangen (z.B. Try-Except) ... das geht natürlich nicht und du müsstest deiner Funktion wieder ein sinnloses "zeige Fehler nicht an"-Property mit geben.

Grade durch solche unnötigen Abhängigkeiten und Fehler-Dialoge verbaut man sich, daß ein Code einfach wiederverwendbar ist.
Durch Weglassen wird der Code wiederverwendbar, leichter wartbar, ist leichter zu debuggen, man kann leichter eine Fehlerlogging (z.B. Eurekalog) anbinden und der Code wird kürzer, übersicher und leichter verständlich.

Und wie man sieht, hast du auch noch doppelten Code.
Delphi-Quellcode:
procedure QRCodeShowImage( aBitmap : Graphics.TBitmap; aSize : integer );
var scale : double;
begin
   if ( ( QRCodeBitmap.Width > 0 ) and ( QRCodeBitmap.Height > 0 ) ) then begin
      aBitmap.Width := aSize;
      aBitmap.Height := aSize;
      Scale := aBitmap.Height / QRCodeBitmap.Height;
      aBitmap.Canvas.StretchDraw( Rect( 0, 0, Trunc( Scale * QRCodeBitmap.Width ),
                                              Trunc( Scale * QRCodeBitmap.Height ) ),
                                              QRCodeBitmap );
   end;
end;

procedure QRCodeSave( aFileName : string; aSize : integer );
var xBitmap : Graphics.TBitmap;
Begin
   CheckFileDir( aFileName );
   xBitmap := Graphics.TBitmap.Create;
   try
      QRCodeShowImage( xBitmap, aSize );
      xBitmap.SaveToFile( aFileName );
   finally
      xBitmap.Free;
   end;
end;
Alles was hier schief laufen kann, kann nur ein schwerer Fehler sein und sowas gehört als Exception.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (11. Feb 2015 um 13:27 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort

 

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 12:14 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz