Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Image malt nach Resizen nicht über die alten Grenzen hinaus (https://www.delphipraxis.net/144164-image-malt-nach-resizen-nicht-ueber-die-alten-grenzen-hinaus.html)

Schilly 1. Dez 2009 17:22


Image malt nach Resizen nicht über die alten Grenzen hinaus
 
Hallo,

Ich habe eine von TImage abgeleitete Klasse. Da drin sind ein paar Boxen gemalt, das soll mal Käsekästchen werden ^^. Wenn ich jetzt zur Laufzeit Width und Height vergrößere (sind von Beginn auf einem Standardwert), passen sich die Boxen daran an, aber er zeigt nur innerhalb der alten Grenzen etwas an, d.h. er schneidet es bei den alten Grenzen ab. Width und Height haben trotzdem, wenn ich sie abrufe, die neuen Werte. Mit den Constraints habe ich auch nicht rumgespielt, wenn ich die aber z.B. auf 1000 oder 0 setze, ändert sich allerdings auch nichts. Meine alte OnResize - Prozedur hab ich jetzt schon zur OnCanResize geändert, trotzdem der gleiche Fehler. Was habe ich also falsch gemacht?

Wenn es euch etwas hilft, kann ich euch auch noch die OnCanResize-Prozedur geben:

Delphi-Quellcode:
procedure TDotsGame.CanResizeIt(Sender: TObject; var NewWidth, NewHeight: Integer; var Resize: Boolean);
begin
  case FResizeKind of
    rszBoxSize:     // Box-Seitenlänge passt sich an, Anzahl der Boxes bleibt gleich
        FBoxSize := Min( NewWidth div FGameSize.X , NewHeight div FGameSize.Y );
    rszBoxCount:   // Box-Seitenlänge bleibt gleich, Anzahl der Boxes wird angepasst
        SetGSsimple( Point( NewWidth div FBoxSize, NewHeight div FBoxSize ) );
  end;
  NewWidth := FBoxSize * FGameSize.X;
  NewHeight := FBoxSize * FGameSize.Y;
end;
(Mit beiden Werten für FResizeKind geht es nicht.)

Vielen Dank im Vorraus!

himitsu 1. Dez 2009 18:08

Re: Image malt nach Resizen nicht über die alten Grenzen hin
 
du mußt auch das Bild in .Picture.{type} anpassen

also wenn z.B. ein Bitmap im Image liegt, dann {Image}.Picture.Bitmap.Width ...

Alter Mann 1. Dez 2009 18:09

Re: Image malt nach Resizen nicht über die alten Grenzen hin
 
Nichts.

Außer das auch das Bitmap an die neue Größe angepasst werden sollte, oder in dein Image.Strech := true setzen.

Viele Grüße

Schilly 1. Dez 2009 18:43

Re: Image malt nach Resizen nicht über die alten Grenzen hin
 
Ahja, Stretch war das was ich gesucht habe, danke.


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