Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Bild aus Scrollbox in ein Image laden (https://www.delphipraxis.net/171786-bild-aus-scrollbox-ein-image-laden.html)

ereetzer 25. Nov 2012 14:00

Delphi-Version: 5

Bild aus Scrollbox in ein Image laden
 
Hallo zusammen,
siehe Betreff. Wie mach ich denn das? Was ich bisher habe:

Einscannen von einem/mehreren Dokumenten. Das aktuelle Bild wird dargestellt in einem Image.
Bei mehreren Dokumenten werden die einzelnen Dokumente in eine Scrollbox geladen. Das zuletzt gescannte wird dabei angezeigt.

Nun möchte ich aber unter Umständen, nachdem ich meinetwegen 5 Dokumente gescannt habe, mit das zweite nochmal angucken.

Nun, wir krieg ich das 2. Image aus der Scrollbox in ein Image wenn ich darauf klicke?

So landen die Images in der Scrollbox:
Delphi-Quellcode:
  ImageX := TImage.Create(ScrollBox);
  ImageX.Parent := ScrollBox;
  if AnzahlDokumenteCount = 1 then ImageX.Left := 10;
  if AnzahlDokumenteCount > 1 then ImageX.Left := ((StrToInt(Label2.Caption) - 1) * (65 + 10)) + 10;
  ImageX.Width := 65;
  ImageX.Height := 95;
  ImageX.Name := 'Dokument' + IntToStr(AnzahlDokumenteCount);
  ImageX.Proportional := True;
  ImageX.Picture.Assign(Image);
  ImageX.Tag := AnzahlDokumenteCount;
Irgendwie dacht ich da FindComponent. Aber evtl. bin ich da auf dem Holzweg. Zumindest kann ich nach Internetrecherche und eigenem Versuchen nichts brauchbares vorweisen.

Delphi-Quellcode:
    Imageholder1.Picture.Assign(FindComponent('Dokument2'));
Das funktioniert jedenfalls nicht. Und ich steig da auch irgendwie nicht so dahinter bei Findcomponent etc.

Könnt Ihr mir einen Tip geben?

Sir Rufo 25. Nov 2012 14:16

AW: Bild aus Scrollbox in ein Image laden
 
Sobald du nicht mehr versuchst die visuellen Controls als Datenspeicher zu missbrauchen, wird es ganz einfach :)

ereetzer 25. Nov 2012 14:27

AW: Bild aus Scrollbox in ein Image laden
 
Zitat:

Zitat von Sir Rufo (Beitrag 1192849)
Sobald du nicht mehr versuchst die visuellen Controls als Datenspeicher zu missbrauchen, wird es ganz einfach :)

Magst Du mir das auch erklären, bitte? Und mich in die richtige Richtung schubsen?

(Das ich das mit Sicherheit nicht sehr elegant mache, das ist ist mir durchaus klar)

Sir Rufo 25. Nov 2012 17:17

AW: Bild aus Scrollbox in ein Image laden
 
Schau dir mal diesen Beitrag an:

http://www.delphipraxis.net/55941-li...er-bilder.html

Die Bilder werden in einer Liste verwaltet
Delphi-Quellcode:
TList<TPicture>
.
Die ListBox füllt sich aus dieser Liste, und über ListBox.ItemIndex weißt du welches Bild gemeint ist und kannst dieses Bild in die TImage Komponente laden.

CCRDude 26. Nov 2012 07:15

AW: Bild aus Scrollbox in ein Image laden
 
FindComponent liefert Dir das das TImage... das weist Du einem TPicture zu - das kann ja nicht klappen :)

Was Du eigentlich machen wolltest, war vermutlich eher sowas:

Delphi-Quellcode:
cmp := FindComponent('name');
if cmp is TImage then begin
   Imageholder1.Picture.Assign(TImage(cmp).Picture);
end;

ereetzer 26. Nov 2012 08:03

AW: Bild aus Scrollbox in ein Image laden
 
Zitat:

Zitat von CCRDude (Beitrag 1192919)
FindComponent liefert Dir das das TImage... das weist Du einem TPicture zu - das kann ja nicht klappen :)

Was Du eigentlich machen wolltest, war vermutlich eher sowas:

Delphi-Quellcode:
cmp := FindComponent('name');
if cmp is TImage then begin
   Imageholder1.Picture.Assign(TImage(cmp).Picture);
end;

Danke, hatte es nach langem studium von findcomponent ähnlich gemacht:

Delphi-Quellcode:
Imageholder.Picture.Assign(TImage(Sender).Picture);
Hab das in einem noch erstelltem Ereignis "OnMouseKlick" bei ImageX benutzt.

Danke auch an SirRufo bzgl. dem Hinweis mit den visuellen Controls. Hab mir da auch was zu durchgelesen.

Gruß


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