Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Multiresmap Bild hochladen (https://www.delphipraxis.net/193003-multiresmap-bild-hochladen.html)

derseitzer 9. Jun 2017 15:30

Multiresmap Bild hochladen
 
Hey,
ich möchte während mein Programm läuft ein Bild in die MultiResMap hochalden, welches der Benuzer auswählen darf.
Wie funktioniert das denn genau :oops: :?:
Das alles soll auf dem handy geschehen :)

derseitzer 9. Jun 2017 16:01

AW: Multiresmap Bild hochladen
 
Code:
procedure TForm5.Button1Click(Sender: TObject);
var
InStream: TResourceStream;
begin
Image1.MultiResBitmap.Add;
Image1.MultiResBitmap.Items[1]:=Image1.MultiResBitmap.LoadFromStream(InStream);
end;
so funktioniert das ganze leider nicht :(

Vielleicht ist es einfach mit einer Imagelist? :/

Rollo62 9. Jun 2017 16:15

AW: Multiresmap Bild hochladen
 
Delphi-Quellcode:
Image1.MultiResBitmap.Items[1]
Index[0] ?

derseitzer 9. Jun 2017 16:34

AW: Multiresmap Bild hochladen
 
Entschuldigung dumm von mir, ich habe schon ein Bild hochgeladen (was nichts damit zu tun hat).
Daran kann es also nicht liegen :/
Es geht schon rein von der Logik wahrscheinlich nicht.. ich bekomm auch Compilier-Fehler:

[DCC Fehler] Unit5.pas(48): E2010 Inkompatible Typen: 'TFixedBitmapItem' und 'procedure, untyped pointer or untyped parameter'

Aber ich weiß nicht wie es sonst gehen soll und im Internet werd ich irgendwie nicht fündig

wurzelzwerg 9. Jun 2017 17:23

AW: Multiresmap Bild hochladen
 
Was ist mit InStream? Das ist doch nil.

derseitzer 9. Jun 2017 17:26

AW: Multiresmap Bild hochladen
 
Stimmt.. was brauche ich denn für einen Befehl um in meinem Handy nach Fotos suchen zu können und eins auswählen zu können, so dass dies dann in meiner Multiresmap erscheint :/?

wurzelzwerg 9. Jun 2017 18:17

AW: Multiresmap Bild hochladen
 
Wo auf deinem Handy die Bilder liegen weiß ich nicht.
Öffnen würde ich die aber mit:
Delphi-Quellcode:
var
InStream: TFileStream;
begin
  InStream := TFileStream.Create(<bildpfad>);

derseitzer 9. Jun 2017 19:07

AW: Multiresmap Bild hochladen
 
oh ok danke dann schau ich mal wo bei mir die bilder liegen und meld mich nochmal:)
Sie liegen einfach in der "Galerie" also in dieser app.. :7

Edit: ok also ich weiß nicht wie ich den Pfad da rausbekomme.. in den einstellungen der App steht nichts zu irgendwelchen Pfaden oder sonstwas..

wurzelzwerg 9. Jun 2017 23:40

AW: Multiresmap Bild hochladen
 
Das steht auch nicht in irgendwelchen Einstellungen sondern in der Doku/Hilfe.
z.B.:

Delphi-Quellcode:
var
  path: string;
  files: TStringDynArray;
  sFile: string;
begin
  path:= System.IOUtils.TPath.GetPicturesPath;
  files:= System.IOUtils.TDirectory.GetFiles(path, '*.jpg');
  for sFile in files do
  begin
    Log.d(sFile);
  end;

derseitzer 10. Jun 2017 00:01

AW: Multiresmap Bild hochladen
 
oh wow :O gleich mal testen vielen dank! :shock:

derseitzer 10. Jun 2017 00:28

AW: Multiresmap Bild hochladen
 
es kommt nun die Meldung: Laden des Bitmaps fehlgeschlagen ().

himitsu 10. Jun 2017 01:45

AW: Multiresmap Bild hochladen
 
Zitat:

Zitat von wurzelzwerg (Beitrag 1374072)
Was ist mit InStream? Das ist doch nil.

Nee, noch schlimmer, es ist ein "zufälliger" Wert, der auf sonstwelchen Schrott zeigen könnte.

Das ist eine lokale Variable und Diese werden (absichtlich) nicht automatisch initialisiert. (abgesehn von gemanagten Typen ala String oder IInterface)

Aber wer nicht auf seinen Compiler hört, ist selber Schuld.
Zitat:

[dcc32 Warnung] Unit8.pas(28): W1036 Variable 'InStream' ist möglicherweise nicht initialisiert worden

Und da ich jetzt nicht erkennen kann wie dein Code nun eigentlich aussieht, auch nicht anhand der vorhergehenden Posts, nenne ich dir den Fehler direkt.
Der dritte Buchstabe in der x. Zeile ist Schuld.

derseitzer 10. Jun 2017 04:09

AW: Multiresmap Bild hochladen
 
Wenn ich diesen Code in einem Buttonklick event verwende, kommt die obige Fehlermeldung "Laden des Bitmaps fehlgeschlagen ()".
ich weiß nicht, wie diese Codes sich bei einem Android Handy verhalten, aber ich möchte eigentlich ein Bild (als benutzer) auswählen können, dass dann irgendwo hochgeladen wird (z.b. in ein Image oder eine Multiresmap)
Code:
var
  path: string;
  files: TStringDynArray;
  sFile: string;
begin
  path:= System.IOUtils.TPath.GetPicturesPath;
  files:= System.IOUtils.TDirectory.GetFiles(path, '*.jpg');
  for sFile in files do
  begin
    Log.d(sFile);
  end;

Rollo62 10. Jun 2017 08:35

AW: Multiresmap Bild hochladen
 
Ok, daran liegts wohl nicht, aber du solltest auf jeden Fall beachten welches Format du nimmst.
http://docwiki.embarcadero.com/Libra...apCodecManager
Nich Alles ist auf Allen Platformen verfügbar.

Bei PNG bist du auf der sicheren Seite ...

wurzelzwerg 10. Jun 2017 09:14

AW: Multiresmap Bild hochladen
 
Zitat:

Zitat von derseitzer (Beitrag 1374128)
Wenn ich diesen Code in einem Buttonklick event verwende, kommt die obige Fehlermeldung "Laden des Bitmaps fehlgeschlagen ()".

In diesem Code kommt die Fehlermeldung garantiert nicht.

derseitzer 10. Jun 2017 15:25

AW: Multiresmap Bild hochladen
 
die bilder auf meinem handy sind jpg's.. der pfad der bilder wäre z.b. : /Mein Gerät/DCIM/Camera

Wenn ich diesen code
var
path: string;
files: TStringDynArray;
sFile: string;
begin
path:= System.IOUtils.TPath.GetPicturesPath;
files:= System.IOUtils.TDirectory.GetFiles(path, '*.jpg');
for sFile in files do
begin
Log.d(sFile);
end;

in einem buttonklick event verwende passiert nichts

haentschman 10. Jun 2017 16:36

AW: Multiresmap Bild hochladen
 
Hallo...8-)
Zitat:

in einem buttonklick event verwende passiert nichts
:gruebel: auch in den Variablen (path, files) steht gar nichts drin? Was sagt der Debugger?

PS: bitte benutze die Delphi Tags. Danke.

derseitzer 10. Jun 2017 16:50

AW: Multiresmap Bild hochladen
 
kurz geschaut - in der path variablen steht auf jedenfall ein pfad.
Ich bin ganz ehrlich, der Code sagt mir persönlich nicht viel.
Ich habe ja jetzt einen Pfad und die files in dem Array.. wie mach ich das nun das ich irgendetwas auswählen kann? Oder sollte der Code das eigentlich so schon machen?:/
Wie komme ich jetzt an mein Bild? >.<

himitsu 10. Jun 2017 17:00

AW: Multiresmap Bild hochladen
 
Natürlich passiert da "nichts".
Es wird ja auch nichts gemacht, außer die Dateien zu suchen und an die Logging-Engine zu geben, von welcher du garantiert nirgendwo die Meldungen anzeigen lässt.

Und wie bereits erwähnt wurde, kann die Fehlermeldung "Laden des Bitmaps fehlgeschlagen" garantiert nicht von dort kommen,
da dort nirgendwo irgendein Bild geladen wird.

Es wäre toll, wenn du bei sowas die "wichtigen" Informationen nicht verschweigst, bzw. keine "Falschen" uns gibst, die damit nichts zu tun haben.
k.A. was du gemacht hast, damit bei dir "Laden des Bitmaps fehlgeschlagen" kommt ... ich kann ja nicht Hellsehen :glaskugel: und wenn du nichts sagst, dann seh ich Schwarz für eine Lösung.

Zitat:

Wie komme ich jetzt an mein Bild? >.<
Indem du den Pfad es an gibst, was damit etwas anfangen kann.
z.B. an ein TImage (für ein Bild) ... mehrere TImage für mehrere Bilder
oder besser eine ListBox, ListView oder Grid.

derseitzer 10. Jun 2017 17:17

AW: Multiresmap Bild hochladen
 
ohje..
ok vielen Dank erstmal... Das würde aber bedeuten, wenn ich ein Bild nun in mein programm einfügen möchte und ich die ganzen Files in einer Listbox o.ä. anzeigen lassen würde, dass ich wissen müsste, wie die Datei heißt, richtig?

derseitzer 10. Jun 2017 17:23

AW: Multiresmap Bild hochladen
 
ohje..
ok vielen Dank erstmal... Das würde aber bedeuten, wenn ich ein Bild nun in mein programm einfügen möchte und ich die ganzen Files in einer Listbox o.ä. anzeigen lassen würde, dass ich wissen müsste, wie die Datei heißt, richtig?

haentschman 10. Jun 2017 18:07

AW: Multiresmap Bild hochladen
 
Hallöle...8-)
Zitat:

files:= System.IOUtils.TDirectory.GetFiles(path, '*.jpg');
Deine Filenamen liegen in dem TStringArray (files). Was du damit machst ist dir überlassen. Anzeigen im TBitmap, Anzeigen in ListView, aus dem Fenster werfen...:stupid:

Mavarik 11. Jun 2017 19:51

AW: Multiresmap Bild hochladen
 
Du willst doch bestimmt ein Foto Laden, das Du auch mit dem Handy gemacht hast...

Dann Klick dir eine ActionList aufs Form, ruf den ActionList Editor auf, Dann eine neue Standardaktion und hier TTakePhotoFromribraryAction. Das erzeugt
Automatisch einen Dialog und Du bekommst das Image im Event TakePhotoFromLibraryAction1DidFinishTaking(Image: TBitmap);


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