Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Bildervorschau programmieren. (https://www.delphipraxis.net/90015-bildervorschau-programmieren.html)

smart 10. Apr 2007 13:27


Bildervorschau programmieren.
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Alle!

Ich möchte gern eine Bildervorschau programmieren. Das anzeigen der Bilder ist kein Problem. Wie bekomme ich es hin, wenn mehrere Bilder z.B. in einer Reihe dargestellt werden und ein Bild wird gelöscht, dass die übrigen Bilder dann nachrücken und die entstandene Lücke schließen.

Hat Einer von Euch vielleicht einen Ansatz wie so etwas macht?

Gruß
Heike

pacman1986 10. Apr 2007 13:28

Re: Bildervorschau programmieren.
 
was hältst du von verkette listen mit einem refresh für den rest ?

elundril 10. Apr 2007 13:29

Re: Bildervorschau programmieren.
 
mit einer forschleife??

lg el

CalganX 10. Apr 2007 14:21

Re: Bildervorschau programmieren.
 
Hi Heike,
was spricht dagegen eine TListView zu nehmen? Dort geschieht das eigentlich alles automatisch. Ansonsten könntest du einfach auf das Löschen eines Elements reagieren und dann die Liste neuzeichnen - je nachdem wie du es bisher implementiert hast.

Chris

bitsetter 10. Apr 2007 14:37

Re: Bildervorschau programmieren.
 
Hallo,

@CalganX

Auf die Idee mit dem Listview war sie anscheinend auch schon gekommen:
In ImageList eine Bitmap laden?

smart 10. Apr 2007 16:19

Re: Bildervorschau programmieren.
 
Zitat:

Zitat von CalganX
Hi Heike,
was spricht dagegen eine TListView zu nehmen? Dort geschieht das eigentlich alles automatisch. Ansonsten könntest du einfach auf das Löschen eines Elements reagieren und dann die Liste neuzeichnen - je nachdem wie du es bisher implementiert hast.

Chris

Hallo Chris!

In Prinzip nichts. Aber wenn die Bilder unterschiedliche Größe haben, klappt das ganze nicht mehr. Man könnte natürlich die Bilder auf eine bestimmte Größe bringen. Hierbei der Nachteil, dass das Ganze dann nicht mehr so gut aussieht. Die Idee mit der Liste ist mir auch schon gekommen, nur muss man in der Liste die Größe und die Position angeben, was sehr umständlich ist. Ich bin aber gerade dabei die Bilder Dynamisch auf einer Form zu erzeugen und mit Align am experimentieren. Sieht sehr viel versprechend aus.

Gruß
Heike

inherited 10. Apr 2007 17:08

Re: Bildervorschau programmieren.
 
Du könntest das mit einer TList lösen. Die hat automatisch schon proceduren für das löschen von einzelnen Indexen wodurch die anderen automatisch nachgerückt werden.

smart 10. Apr 2007 18:12

Re: Bildervorschau programmieren.
 
Hi Nikolai,

Zitat:

Zitat von inherited
Du könntest das mit einer TList lösen. Die hat automatisch schon proceduren für das löschen von einzelnen Indexen wodurch die anderen automatisch nachgerückt werden.

Was meinst Du mit einem TList?, bzw. wie meinst Du das?

Gruß
Heike

DGL-luke 10. Apr 2007 18:48

Re: Bildervorschau programmieren.
 
Hallo,

was hältst du davon?

Delphi-Quellcode:
//Dim = Dimensions = Abmessungen
procedure DrawPictures(Canvas: TCanvas; Columns, Dim, Spacing: Cardinal; Pictures: TObjectList);
var
  row,col,pic,rows,x,y: Integer;
begin
  rows := Columns div Pictures.Count;
  for row := 0 to rows+1-1 do
    for col := 0 to Columns-1
    begin
      pic := row * Columns + col;
      if Pictures.Count <= pic then Exit;
      if not Pictures[picture] is TPicture then Exit;
      x := (Dim+2*Spacing) * row + Spacing;
      y := (Dim+2*Spcing) * col + Spacing;
      Canvas.Stretchdraw(rect(x,y,x+Dim,y+Dim),Pictures[picture] as TPicture); //bitte durch anständige zeichenroutine (zentrieren etc.) ersetzen
    end;
end;

Sko 10. Apr 2007 20:33

Re: Bildervorschau programmieren.
 
Zitat:

Zitat von smart
...Man könnte natürlich die Bilder auf eine bestimmte Größe bringen. Hierbei der Nachteil, dass das Ganze dann nicht mehr so gut aussieht. ...

Ohne das wirds aber nicht gehen, bei sehr vielen Bildern sagt der Rechner sonst "Nee is nich, kein Arbeitsspeicher mehr da". So wie´s DGL-luke gepostet hat, isses besser, allerdings bringt StrechtBlt bei fast gleicher Geschwindigkeit imho bessere Ergebnisse.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:46 Uhr.
Seite 1 von 2  1 2      

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