AGB  ·  Datenschutz  ·  Impressum  







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

Bereichsprüfung, aber wie?

Ein Thema von Schwedenbitter · begonnen am 23. Sep 2008 · letzter Beitrag vom 24. Sep 2008
 
Schwedenbitter

Registriert seit: 22. Mär 2003
Ort: Finsterwalde
622 Beiträge
 
Turbo Delphi für Win32
 
#1

Bereichsprüfung, aber wie?

  Alt 23. Sep 2008, 23:03
Hallo,

ich verzweifle gerade an der Bereichsprüfung. Es kommt immer die Fehlermeldung "Fehler bei Bereichsprüfung". Bei folgendem Programmausschnitt haben ScanDPI den Wert 200 und Tolerance dern Wert 0:

Delphi-Quellcode:
Var
   Hoehe,HMin,HMax : Integer;

...

// Idealmaß ermitteln
Hoehe:=Round(ScanDPI * 11.7);
Breite:=Round(ScanDPI * 8.3);
// Toleranzfaktoren ermitteln
Case Tolerance Of
   0 : Begin // bis 70 % größer oder kleiner werden tolleriert
              HMin:=Round(0.7*Hoehe); HMax:=Round(1.3*Hoehe);
              BMin:=Round(0.7*Breite); BMax:=round(1.3*Breite);
           End;
   1 : Begin // bis 80 % ...
              HMin:=Round(0.8*Hoehe); HMax:=Round(1.2*Hoehe);
              BMin:=Round(0.8*Breite); BMax:=round(1.2*Breite);
           End;
   2 : Begin // bis 90 % ...
              HMin:=Round(0.9*Hoehe); HMax:=Round(1.1*Hoehe);
              BMin:=Round(0.9*Breite); BMax:=round(1.1*Breite);
           End;
   3 : Begin // alles was abweicht an DINA4 bei angegebener DPI
              HMin:=Hoehe; HMax:=Hoehe;
              BMin:=Breite; BMax:=Breite;
           End;
End; // Case Tolerance Of
// Werte des Bildes ermitteln
Hoehe:=Image1.Picture.Bitmap.Height;
Breite:=Image1.Picture.Bitmap.Width;
// Alles anzeigen
ShowMessage(IntToStr(Hoehe)+'x'+IntToStr(Breite)+#13+
            IntToStr(HMin)+ 'x'+IntToStr(BMin)+#13+
            IntToStr(HMax)+ 'x'+IntToStr(BMax));
If Hoehe In [HMin..HMax] Then
   ShowMessage('drin')
Else
   ShowMessage('nicht drin');
Ich habe das ganze mal im Kleinen versucht. Der folgende Code bringt keinerlei Fehlermeldung:

Delphi-Quellcode:
Procedure Bereichspruefung;
Var
   Hoehe,HMin,HMax : Integer;
Begin
   Hoehe:=Round(200 * 11.7); // Pixelhöhe von DINA4 bei 200 dpi
   HMin:=Round(0.7 * Hoehe);
   HMax:=Round(1.3 * Hoehe);
   Hoehe:=Image1.Picture.Bitmap.Height;
   If Hoehe In [HMin..HMax] Then
      ShowMessage('Ist drin.')
   Else
      ShowMessage('Ist nicht drin.');
End;
Eventuell bin ich völlig betriebsblind. Aber ich sehe den Unterschied nicht.
Was mache ich verkehrt?
Alex Winzer
  Mit Zitat antworten Zitat
 


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 09:52 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