![]() |
Dynamische Scrollbox
Hallo,
in meinem Formular habe ich eine Scrollbox. Das Formular hat die Höhe vom Bildschirm. Innerhalb der Scrollbox habe ich ein TImage (Scrollbox und TImage sind alClient ausgerichtet). Die Scrollbox soll nur eine Scrollbar haben, wenn der erzeugte Inhalt nicht auf das Image draufpasst. Inhalte sind Zeichnungen in Form von Rechtecken. Die Scrollbox soll auch nur so hoch sein, wie der erzeugte Inhalt, sollte aber mindestens X Pixel hoch sein. Das Schwierige wird sein, die Scrollbar ein und auszublenden. Wie kann ich das realisieren? |
AW: Dynamische Scrollbox
Zitat:
|
AW: Dynamische Scrollbox
Zitat:
|
AW: Dynamische Scrollbox
Zitat:
|
AW: Dynamische Scrollbox
Zitat:
wenn ich das TImage auf align none, top und left auf 0 setze, dann passt sich die Breite und Höhe des TImage nicht anhand des Inhalts an. Es behält die gleiche Größe. Das TImage ist innerhalb der Scrollbox. Eine Bitmap verwende ich in meinem Formular nicht. |
AW: Dynamische Scrollbox
Das wäre der zugehörige Code dazu.
Delphi-Quellcode:
an I implement this?
These questions are so important. unit Unit1; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls; type TForm1 = class(TForm) ScrollBox1: TScrollBox; Image1: TImage; procedure FormActivate(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormActivate(Sender: TObject); begin left:=5; top:=10; form1.Width:=Screen.Width-15; form1.Height:=Screen.Height-50; ScrollBox1.Align:=alClient; image1.Left:=0; image1.Top:=0; image1.Width:=ScrollBox1.Width; image1.Height:=ScrollBox1.Height; image1.Canvas.Rectangle(1400,50,2000,100); end; end. |
AW: Dynamische Scrollbox
Zitat:
|
AW: Dynamische Scrollbox
Liste der Anhänge anzeigen (Anzahl: 1)
Was mache ich falsch?
Delphi-Quellcode:
unit Unit1;
interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls; type TForm1 = class(TForm) ScrollBox1: TScrollBox; Image1: TImage; procedure FormActivate(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormActivate(Sender: TObject); begin ScrollBox1.Align:=alClient; ScrollBox1.HorzScrollBar.Visible:=true; image1.Align:=alnone; image1.Left:=0; image1.Top:=0; image1.Stretch:=false; image1.center:=false; image1.Picture.Bitmap.Width:=900; image1.Picture.Bitmap.Height:=900; image1.Canvas.Rectangle(600,600,800,800); end; end. |
AW: Dynamische Scrollbox
Wo ist das Bitmap für Image1 das du geladen hast? Sehe keins..
gruss |
AW: Dynamische Scrollbox
Ich weiß nicht, wie das geht
|
AW: Dynamische Scrollbox
Zitat:
Delphi-Quellcode:
image1.picture.bitmap.loadfromFile('Mein.bmp')
Die weite und höhe setzt sich dann automatisch abhängig vom eingeladenen Bitmap die brauchst du nicht zuweisen.. Wenn das Bitmap größer ist als der Viewport dann werden die Scroll Bars entsprechend sichtbar. gruss |
AW: Dynamische Scrollbox
Zitat:
Delphi-Quellcode:
image1.Width:=900;
image1.Height:=900; |
AW: Dynamische Scrollbox
Zitat:
Die Image weite und höhe setzt sich entsprechend der Größe des eingeladenen Bitmaps. gruss |
AW: Dynamische Scrollbox
Zitat:
|
AW: Dynamische Scrollbox
Zitat:
Aber schaden tut es nicht das er jetzt weis wie man ein Bitmap einladen tut. Und das er dann die weite und Höhe nicht selber setzen muss. gruss |
AW: Dynamische Scrollbox
Zitat:
Danke, euch beiden. Es hat geklappt. |
AW: Dynamische Scrollbox
Zitat:
Delphi-Quellcode:
...
procedure TForm1.FormActivate(Sender: TObject); begin ScrollBox1.Align:=alClient; ScrollBox1.HorzScrollBar.Visible:=true; image1.Align:=alnone; image1.Left:=0; image1.Top:=0; image1.Stretch:=false; image1.center:=false; image1.Picture.Bitmap.Width:=900; image1.Picture.Bitmap.Height:=900; image1.Canvas.Rectangle(600,600,800,800); // --> AutoSize setzen: image1.AutoSize := True; end; ... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:04 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz