AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Bilder nebeneinander auf TScrollbox

Ein Thema von danku · begonnen am 7. Aug 2006 · letzter Beitrag vom 11. Aug 2006
Antwort Antwort
Benutzerbild von danku
danku

Registriert seit: 9. Apr 2006
Ort: 32-bit Adressbus
181 Beiträge
 
Delphi 7 Enterprise
 
#1

Bilder nebeneinander auf TScrollbox

  Alt 7. Aug 2006, 17:43
ich lade die bilder über tdirectorylistbox auf eine tscrollbox.

das anordnen versuche ich so zu realisieren:

Delphi-Quellcode:
  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);
es wird aber immer nur eins angezeigt.
(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?
  Mit Zitat antworten Zitat
Benutzerbild von danku
danku

Registriert seit: 9. Apr 2006
Ort: 32-bit Adressbus
181 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Bilder nebeneinander auf TScrollbox

  Alt 8. Aug 2006, 15:25
ist die problemstellung zu kompliziert formuliert?
  Mit Zitat antworten Zitat
Benutzerbild von danku
danku

Registriert seit: 9. Apr 2006
Ort: 32-bit Adressbus
181 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Bilder nebeneinander auf TScrollbox

  Alt 10. Aug 2006, 21:19
sonst hilft doch immer einer ...
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Bilder nebeneinander auf TScrollbox

  Alt 10. Aug 2006, 22:26
wo wird denn z bearbeitet?
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
Benutzerbild von danku
danku

Registriert seit: 9. Apr 2006
Ort: 32-bit Adressbus
181 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Bilder nebeneinander auf TScrollbox

  Alt 11. Aug 2006, 08:00
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);
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Bilder nebeneinander auf TScrollbox

  Alt 11. Aug 2006, 12:25
komische einrückung... ich steig da nicht durch und hab deshalb einfach mal hingeschrieben, wies ich machen würde.

Delphi-Quellcode:
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;
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

Ich würd dir übrigens empfehlen, dafür TImage32 zu benutzen. Das hat viel bessere Skalierungsfilter.
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:59 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