AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Mobile: Wie können dem ImageViewer1 verschiedene .jpgs zugewiesen werden?

Mobile: Wie können dem ImageViewer1 verschiedene .jpgs zugewiesen werden?

Ein Thema von Sel2012 · begonnen am 1. Nov 2015 · letzter Beitrag vom 3. Nov 2015
Antwort Antwort
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.277 Beiträge
 
Delphi 10.4 Sydney
 
#1

AW: Mobile: Wie können dem ImageViewer1 verschiedene .jpgs zugewiesen werden?

  Alt 2. Nov 2015, 04:06
Hallo,
steht doch alles im Netz.
http://stackoverflow.com/questions/1...nd-to-use-them

Heiko
Heiko
  Mit Zitat antworten Zitat
Sel2012

Registriert seit: 6. Jun 2015
Ort: 31535
103 Beiträge
 
Delphi XE5 Professional
 
#2

AW: Mobile: Wie können dem ImageViewer1 verschiedene .jpgs zugewiesen werden?

  Alt 2. Nov 2015, 07:28
Hallo Heiko,
und wie bekomme ich "TJpegImage" so in meine procedure "eingebaut", dass es vom Compiler akzeptiert wird?
"Picture" gilt auch nicht für FireMonkeyMobile, oder?
Es wäre hilfreich, wenn abgeschriebene Programmteile auch auf Realisierungsmöglichkeiten geprüft würden. Natürlich halte ich die Tipps erst einmal für lauffähig und suche verzweifelt die Fehler bei mir. Vieles, was mir unter VCL leicht von der Hand ging, führt leider (für mich) bei FireMonkeyMobile zu reichlich Frust. Selbst mit den Beispielen aus dem Netz klappt nix mit FireMonkeyMobile.
Oder sollte dein Vorschlag wirklich lauffähig sein?

Gruß
Udo
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.561 Beiträge
 
Delphi 12 Athens
 
#3

AW: Mobile: Wie können dem ImageViewer1 verschiedene .jpgs zugewiesen werden?

  Alt 2. Nov 2015, 21:08
Wenn die Grafiken nicht allzu groß sind, kann man die auch in eine TImage-Komponente laden und die einzelnen Bilder dort aus dem MultiResBitmap dann dem Viewer einfach zur Laufzeit zuweisen (ab Delphi XE8 könnte man das auch einfacher mit einer TImagelist machen).

Man muss aber darauf achten, dass man im MultiResBitmap-Dialog die Option ("Größe nach Bild") wählt, bevor man die einzelnen Bilder hinzufügt (z.B. per Drag&Drop auf neu hinzugefügte Images vom Explorer aus) sonst werden die Grafiken auf die tatsächliche Skalierungsgröße vergrößert und mit entsprechendem Volumen in der Komponente abgelegt (siehe anliegenden Screenshot). Der in der MultiResBitmap eingestellte Skalierungsfaktor hat dann keine Auswirkung auf das Assignment, es werden also die originalen Ausmaße der Bilder verwendet.

Die Variante hat den Vorteil, dass man sich nicht mit den einzelnen Images rumschlagen und sich nicht überlegen muss, wie und wohin die auf dem mobilen Gerät müssen und wie man die dann wieder von dort zur Laufzeit laden kann. Und außerdem geht es deutlich schneller, als wenn man zur Laufzeit die Bilder erst noch laden muss.

Anliegend ein XE5-Projekt, welches das mal auf ganz einfache Weise demonstriert (ImageViewer, in dem man durch Betätigen des Vor oder Zurück-Schalters ein anderes Bild laden kann (insgesamt 7).

Wie gesagt, das macht nur Sinn, wenn die Bilder nicht allzu groß sind (sonst unverhältnismäßiger Speicherverbrauch). Im Demo sind es 7 mal 30 kB JPegs, die machen die Projekt.exe um ca. 400 kb größer.

Hier der Source des Programms:

Delphi-Quellcode:
procedure TForm2.bnNextClick(Sender: TObject);
begin
  if iv.Tag< Image1.MultiResBitmap.Count-1 then begin
    iv.Tag := iv.Tag+1;
    iv.Bitmap.Assign(Image1.MultiResBitmap.items[iv.tag].bitmap);
    iv.RealignContent;
  end;
end;

procedure TForm2.bnPrevClick(Sender: TObject);
begin
   if iv.Tag > 0 then begin
    iv.Tag := iv.Tag-1;
    iv.Bitmap.Assign(Image1.MultiResBitmap.items[iv.tag].bitmap);
    iv.RealignContent;
  end;
end;

procedure TForm2.FormShow(Sender: TObject);
begin
  iv.Bitmap.Assign(Image1.MultiResBitmap.items[0].bitmap);
  iv.RealignContent;
end;
Wenn die Bilder größer sind als die Abmaße des ImageViewers kann man die Bilder bei Bedarf mit einem
iv.bestfit; in die Anzeigegröße einpassen.
Angehängte Grafiken
Dateityp: jpg Multires.jpg (74,0 KB, 15x aufgerufen)
Dateityp: jpg demo.jpg (45,9 KB, 9x aufgerufen)
Angehängte Dateien
Dateityp: zip Loadimages.zip (464,6 KB, 12x aufgerufen)

Geändert von Harry Stahl ( 2. Nov 2015 um 21:19 Uhr)
  Mit Zitat antworten Zitat
r.koch
(Gast)

n/a Beiträge
 
#4

AW: Mobile: Wie können dem ImageViewer1 verschiedene .jpgs zugewiesen werden?

  Alt 2. Nov 2015, 22:22
Ganz kleinlaut, evetuell viel zu alt, überholt und OT:

Uses JPEG;

  Mit Zitat antworten Zitat
Sel2012

Registriert seit: 6. Jun 2015
Ort: 31535
103 Beiträge
 
Delphi XE5 Professional
 
#5

AW: Mobile: Wie können dem ImageViewer1 verschiedene .jpgs zugewiesen werden?

  Alt 3. Nov 2015, 08:09
An alle, die so nett geholfen haben: Ich habe viel gelernt.
DANKE !!!
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 13:15 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