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/)
-   -   Trotz AutoScrollbar keine Scrollbar (https://www.delphipraxis.net/162563-trotz-autoscrollbar-keine-scrollbar.html)

Leanahtan 29. Aug 2011 15:56

Trotz AutoScrollbar keine Scrollbar
 
Ist mir zwar peinlich eine solche Frage zu stellen, obwohl es schon soviele Themen zu ähnlichen Fragen gibt, aber ich komme trotzdem einfach nicht weiter.

Eigentlich ist alles ganz einfach. Ich habe ein neues Fenster angelegt (TShowMapForm = class(TForm)), und auf dieses eine TImage (MapPreviewImage) gelegt. Das Bitmap des TImage wird erst während der Laufzeit erstellt (Aufruf von ShowMap), und kann beliebig groß sein. Im ersten Schritt, hatte ich einfach die Größe von ShowMapForm an die Größe des Bitmaps angepasst, und dann das ertsellte Bitmap an TImage übergeben.

Delphi-Quellcode:
procedure TShowMapForm.ShowMap(const Map: TMapGenerator);
var
  i,j,Xoff,Yoff: Integer;
  Width, Height : Integer;

begin
  Width:=Map.MapWidth;
  Height:=Map.MapHeight;

  MapBitmap.SetSize(Width*64,Height*32+AdditionalHeight);
  Self.ClientWidth:=Width*64;
  Self.ClientHeight:=Height*32;  
  //...
  // hier steht der Code, in dem MapBitmap erzeugt wird
  // ...

  MapPreviewImage.Picture.Bitmap:=MapBitmap;
end;
Soweit klappte noch alles, allerdings kann ja keiner mit einem Fenster arbeiten, dass vielfach größer ist, als die aktuelle Auflösung. Daher habe ich im nächsten Schritt die Zeilen
Delphi-Quellcode:
  Self.ClientWidth:=Width*64;
  Self.ClientHeight:=Height*32;
wieder entfernt, und in TShowMapForm den Wert AutoScroll auf true gesetzt. Aber obwohl das Bild eindeutig nicht ins Fenster passt, tauchen keine Scrollbars auf. Ich hab inzwischen alle Möglichen Eigenschaften Probiert, und auch mal mein TImage in eine TScrollbar gesetzt, aber alles ohne Ergebnis. Es ist immer nur ein kleiner Ausschnitt des Bildes sichtbar, und keine Scrollleisten. Ich wäre für Vorschläge wirklich dankbar.

Leanahtan 29. Aug 2011 17:11

AW: Trotz AutoScrollbar keine Scrollbar
 
Hab jetzt selbst eine Lösung gefunden. Ich muss im TImage den Wert AlignWithMargins auf true setzen. Leider enthält die Hilfe zu TImage diese Eigenschaft nicht, daher weiß ich nicht, was das eigentlich bedeutet. Aber zumindest funktioniert es jetzt ^^

DeddyH 29. Aug 2011 17:20

AW: Trotz AutoScrollbar keine Scrollbar
 
Delphi-Referenz durchsuchenAlignWithMargins ;)

Leanahtan 29. Aug 2011 18:03

AW: Trotz AutoScrollbar keine Scrollbar
 
Danke. Also macht AlignWithMargins genau das, was ich vom Namen her erwartet hätte. Aber ich verstehe trotzdem nicht so ganz, wieso das Einfluss auf das Auftauchen der Scrollbars hat. Zumal ich derzeit bei TImage Align auf alNone gesetzt habe. Und andersherum ist eigentlich kein TControl mit dem TImage verbunden. Hmm, ich seh schon - ich arbeite viel lieber im eigenen Quellcode, als mich mit der GUI rumzuschlagen. :?


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