Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Image ist zu klein (https://www.delphipraxis.net/68037-image-ist-zu-klein.html)

LiS 23. Apr 2006 20:15


Image ist zu klein
 
Hallo!

Ich habe ein Problem mit Images, ich gebe folgenden Befehl:
Delphi-Quellcode:
Ein_Image.Canvas.Rectangle(0,0,Ein_Image.Width,Ein_Image.Height);
Er soll also ein Rechteck zeichnen, das die größe des Images hat und der Rand müsste zu sehen sein.
Allerdings sieht man nur den oberen und den linken Rand. Das Image scheint rechts und unten abgeschnitten. Das, was man sieht ist auch viel kleiner, als das Images. Es wird also einfacht nur ein Teil des Images angezeigt und das kann ich mir absolut nicht erklären! Weiß hier vielleicht jemand weiter? Danke schonmal!

chaosben 23. Apr 2006 20:19

Re: Image ist zu klein
 
Hi!

Zitat:

Zitat von LiS
Das Image scheint rechts und unten abgeschnitten.

Du bist an der Warheit knapp dran.

Wenn dein Bild 100 mal 100 Pixel groß ist, dann ist deine erste Zeile die Zeile 0 (wie du schon richtig erkannt hast) und die letzte die Zeile 99. Ebenso bei den Spalten. Demnach sollte
Delphi-Quellcode:
Ein_Image.Canvas.Rectangle(0,0,Ein_Image.Width-1,Ein_Image.Height-1);
dein Problem lösen

//edit: Alles Quatsch ... nur warum? :gruebel:

LiS 23. Apr 2006 20:24

Re: Image ist zu klein
 
Nee, so habe ich das nicht gemeint, das Image ist auch viel zu klein! Es sollte nach Berechnungen vorher viel größer sein und ich lass mir die Größe vorher mit
Delphi-Quellcode:
showmessage(inttostr(Image.Width));
ausgeben. Das Eas ich sehe sind aber nur die Hälfte davon oder so..

chaosben 23. Apr 2006 20:25

Re: Image ist zu klein
 
Bitte gib uns doch eine wenig Code, damit wir dir helfen können.

LiS 23. Apr 2006 20:30

Re: Image ist zu klein
 
Hier ist der Code im Zusammenhang. Man müsste ein Quadrat der Größe (Dicke*(2*Sichtweite+1)) sehen, aber das auf dem Bildschirm ist kleiner und eben abgeschnitten.

Delphi-Quellcode:
  // Images und Labels platzieren
  for a := 0 to 5 do
  begin
    Ein_Image := TImage(form_Spiel.FindComponent('Image'+inttostr(a)));
    Ein_Label := TLabel(form_Spiel.FindComponent('Label'+inttostr(a)));
    if a <= high(Images) then
    begin
      Ein_Image.Height := Dicke*(2*Sichtweite+1);
      Ein_Image.Width := Dicke*(2*Sichtweite+1);
      Ein_Image.Top := 10+(((a) div horizontal)*(Ein_Image.Height + 30));
      Ein_Image.Left := 10+(((a) mod horizontal)*(Ein_Image.Width + 10));
      Ein_Image.Canvas.Pen.Color := clBlack;
      Ein_Image.Canvas.Brush.Color := clWhite;
      Ein_Image.Canvas.Rectangle(0,0,Ein_Image.Width,Ein_Image.Height);
      Ein_Image.Visible := True;
      Images[a] := -1;
      Ein_Label.Top := 10+(((a) div horizontal)*(Ein_Image.Height + 30))+Ein_Image.Height;
      Ein_Label.Left := 10+(((a) mod horizontal)*(Ein_Image.Width + 10));
      Ein_Label.Visible := True;
    end
    else
    begin
      Ein_Image.Visible := False;
      Ein_Label.Visible := False;
    end;
  end;

fkerber 23. Apr 2006 20:31

Re: Image ist zu klein
 
Hi!

Sicher, dass deine angenommenen Werte von Dicke und Sichtweite stimmen? Mal nen Breakpoint gesetzt und das ganze untersucht?


Ciao Frederic

LiS 23. Apr 2006 20:34

Re: Image ist zu klein
 
Sie stimmen auf jeden Fall, das habe ich überprüft. Seltsam ist auch, dass es bei verschiedenen Werten für die Sichtweite und die Dicke manchmal abgeschnitten ist und manchmal nicht. Gibt es eine Maximalgröße für Images?

fkerber 23. Apr 2006 20:35

Re: Image ist zu klein
 
Hi!

Ja, die kannst du mit High(Integer) auslesen - aber die ist weit größer als jeder Bildschirm ;)


Ciao Frederic

Flare 23. Apr 2006 20:42

Re: Image ist zu klein
 
Ist es Absicht, dass du hier
Delphi-Quellcode:
Ein_Image.Top := 10+(((a) div horizontal)*(Ein_Image.Height + 30));
etwas anderes Abfragst als hier?
Delphi-Quellcode:
Ein_Label.Top := 10+(((a) div horizontal)*(Ein_Image.Height + 30))+Ein_Image.Height;
Vielleicht liegt es ja auch daran, dass du dir einmal die untere und einmal obere Seite des Bildes ausgeben lässt...


Flare

LiS 23. Apr 2006 20:48

Re: Image ist zu klein
 
Ne, das ist schon richtig so, denn das zweite ist die Position von dem Label, das sich unter dem Image befindet. Hm, ich werd nochmal den restlichen Code durchgehen, vielleicht steckt der Fehler ja woanders...


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:52 Uhr.
Seite 1 von 2  1 2      

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