![]() |
Bilder nebeneinander auf TScrollbox
ich lade die bilder über tdirectorylistbox auf eine tscrollbox.
das anordnen versuche ich so zu realisieren:
Delphi-Quellcode:
es wird aber immer nur eins angezeigt.
nebeneinander := (scrollbox1.clientwidth - abstand) div (groesse +
abstand); if dateien.count*(Groesse+Abstand+13) < nebeneinander then nebeneinander := dateien.count; untereinander := (dateien.count div nebeneinander) + ord(dateien.count mod nebeneinander > 0); for y := 0 to untereinander - 1 do for x := 0 to nebeneinander - 1 do begin if z < dateien.count then begin temp := TImage.create(scrollbox1); temp.tag := z; temp.width := groesse; temp.height := groesse; temp.parent := scrollbox1; temp.left := abstand + x * (groesse + abstand); temp.top := abstand + y * (groesse + abstand); (d.h. immer das aktuelle wechselt automatisch und überdeckt das vorhergehende) die bilder sollen aber alle auf die tscrollbox nebeneinander geladen werden. wer kann mir helfen? |
Re: Bilder nebeneinander auf TScrollbox
ist die problemstellung zu kompliziert formuliert?
|
Re: Bilder nebeneinander auf TScrollbox
sonst hilft doch immer einer ... :cry:
|
Re: Bilder nebeneinander auf TScrollbox
wo wird denn z bearbeitet?
|
Re: Bilder nebeneinander auf TScrollbox
der obige code hat sich geändert.
ich habe meinen code überarbeitet und mal das probiert:
Delphi-Quellcode:
//Thumbnails erstellen for i:=0 to dateien.count -1 do begin application.processmessages; // Bild erzeugen und laden temp := TImage.Create(scroller); //Erzeugt ein TImage temp.Parent := scroller; //Macht es auf Form1 sichtbar abstand:=2; nebeneinander:=20; //nebeneinander := (thumbbox.clientwidth - abstand) div (groesse + abstand); if dateien.count > thumbbox.ClientWidth then thumbbox.ClientWidth := dateien.count; //untereinander := (dateien.count div nebeneinander) + ord(dateien.count mod nebeneinander > 0); for x := dateien.count to nebeneinander - 1 do begin temp.width := groesse; temp.left := dateien.count+abstand + x; //* (groesse + abstand); temp.top := 0; //abstand + y * (groesse + abstand); |
Re: Bilder nebeneinander auf TScrollbox
komische einrückung... ich steig da nicht durch und hab deshalb einfach mal hingeschrieben, wies ich machen würde.
Delphi-Quellcode:
was du fürs scaling einstellen musst (stretchmode etc.), hab ich grad nicht im kopf. evtl. muss man auch das mod und das div da oben vertauschen... is ja noch früh ;)
var fnames: array of SysUtils.TFileName;
x,y: Integer; //temp vars stepx,stepy: Integer; //abstand zwischen bildern countx: Integer; //anzahl bilder nebeneinander Padding: Integer; //abstand vom rand der scrollbox wx,wy: Integer // Breite/Höhe countx := 0; for i := low(fnames) to high(fnames) do begin x := Padding + (i div countx) * stepx; y := Padding + (i mod countx) * stepy; Image := TImage.Create(ScrollBox); Image.Parent := ScrollBox; Image.LoadFromFile(fnames[i]); image.Width := wx; image.height := wy; image.left := x; image.right := y; end; Ich würd dir übrigens empfehlen, dafür ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:52 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 by Thomas Breitkreuz