Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Größe(Breite und Höhe) dynamischer Anzahl von Bildern vergl. (https://www.delphipraxis.net/36914-groesse-breite-und-hoehe-dynamischer-anzahl-von-bildern-vergl.html)

Airblader 28. Dez 2004 09:09


Größe(Breite und Höhe) dynamischer Anzahl von Bildern vergl.
 
Hi ;)
Muss leider schon wieder nerven..diesmal mehr ein logisches Problem (daher reicht auch ein Ansatz / Pseudo-code)

Ich hab eine dynamische Anzahl von Bildern (variiert zwischen 2 und 5).
Dafür hab ich ein Array [0..4] of TBitmap.

Wie kann ich nun vergleichen, ob ALLE bilder die selbe größe UND die selbe Breite haben?
An sich kein Problem, aber:

Es müssen ja nicht immer 5 Bilder sein, also es können 2,3,4 oder 5 sein.


Wäre nett für einen Ansatz oder etwas Pseudo-Code (bitte nicht "mach eine for-schleife", weil ich weiss nicht, wie ich die aussehen lassne soll...ich überleg grad im notepad immer nebenbei ;) )


air

edit: achja, die zahl der bilder die es gibt weiss ich natürlich. sagen wir, sie sei 'x'

Dani 28. Dez 2004 09:18

Re: Gröpe(Breite und Höhe) dynamischer Anzahl von Bildern ve
 
Hi!

Delphi-Quellcode:
 Result := true;
 If Length(BilderArray) > 1 then
  for i:=1 to High(BilderArray) do
   begin
    If (BilderArray[i].Width <> BilderArray[0].Width)
    OR (BilderArray[i].Height <> BilderArray[0].Height) then
     begin
      //Die Bilder sind nicht gleich groß
      Result := false;
      break;
     end;
   end;
 Case Result of
  true: //Alle Bilder gleich groß;
  false: //Nicht alle Bilder gleich groß;
 end;

Airblader 28. Dez 2004 09:25

Re: Größe(Breite und Höhe) dynamischer Anzahl von Bildern ve
 
hm...stimmt...ich hab mal wohl wieder zu kompliziert gedacht und wollte jedes mit jedem vergleichen *g*

Ich bau den Code nur etwas um:

Delphi-Quellcode:
function TForm1.CheckPictureSize(): Boolean;
var
 i: integer;
begin
 Result := true;
 for i:=1 to Form1.ComboBox1.ItemIndex do
 begin
   if(bitmaps[i].Width <> bitmaps[0].Width) OR (bitmaps[i].Height <> bitmaps[0].Height) then
   begin
     Result := false;
     break;
   end;
 end;
end;
ich hab das length weggelassen, da das array IMMER 0..4 ist, unabhängig ob alle bilder existieren.

dürfte so funktionieren, jetzt teste ich es auch ;)

Dani 28. Dez 2004 09:37

Re: Größe(Breite und Höhe) dynamischer Anzahl von Bildern ve
 
Zitat:

unabhängig ob alle bilder existieren.
Was meinst du mit existieren? :gruebel:
Kann es vorkommen, dass noch nicht alle Array-Felder mit Bitmaps[i] := TBitmap.Create initialisiert sind? In dem Fall würde die Funktion Zugriffsverletzungen produzieren.

Airblader 28. Dez 2004 09:59

Re: Größe(Breite und Höhe) dynamischer Anzahl von Bildern ve
 
doch, alle sind mit nem create belegt, aber nicht jedes bitmap[x] hat wirklich eine bitmap geladen.
existieren tut schon jedes, aber nicht jedes enthält ein bild.

(und bevor es jemand sagt: ich gebe im ondestroy alle bitmaps frei ;) )


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:42 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