Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - OpenPictureDialog wie richtig nutzen?


jUli@ - Fr 24.01.03 10:41
Titel: OpenPictureDialog wie richtig nutzen?
hallo!
ich habe n Problem und zwar schreibe ich an einer Fahrzeugverwaltung und ich möchte über einen button ein bild von einem auto in die verwaltung laden. brauche ich dafür einen platzhalter? wie muss ich das programmieren? denn wenn ich kein bild von dem auto habe soll ein bild mit " kein auto vorhanden" angezeigt werden! kann ich das auch so machen das ich dem Fahrzeug ein bild so zuweise das ich das gleiche bild auch für ein anderes Fahrzeug nutzen kann?? :?: ich habe das als dateiverwaltung und nicht als datenbank! aber ich will bei einer ausgabe z.B. beim ändern das bild angezeigt haben!


wäre klasse wenn mir dabei jemand helfen könnte! :D

danke!

LG Julia :wink:


Klabautermann - Fr 24.01.03 10:56

Hallo,

ich würde so vorgehen:



Gruß
Klabautermann


jUli@ - Fr 24.01.03 11:34

danke für deinen vorschlag!

aber wie meinst du das:
[*] Beim Scrollen durch die Datensätze lädst du immer das Bild, das der Maske IntToStr(MyData.Bild) + '.BMP' (bzw. andere änderungen berücksichtigen).

wie muss ich das schreiben? ich habe bis jetzt ein TImage ("kein auto vorhanden = 0.bmp") in das Formular eingefügt.

ich verstehe nicht wie du das meinst?! könntest du mir das bitte erklären??

LG Julia


Klabautermann - Fr 24.01.03 12:13

Hallo Juli@,

du has irgendwo eine funktion LoadData welche die Daten aus deiner Datei ließt. Also deinen Record. Diesen nenne ich der einfachheit halber MyData. Dieser hat nach meinen Vorschlägen einen Integerwert namens Bild. Dieser enthällt die nummer des zu verwendenen Bildes, default (kein Bild) ist 0 (Null).
Ich unterstelle jetzt mal, das du nur BMPs zulässt (weil es so schon einfach ist). Dann ist der Dateiname MyData.Bild (z.B. 0) + dem TeilString '.bmp' (also z.B. 0.bmp). Diesen lädst du in deine tImage Komponente.
Im Code könnte das etwa so aussehen:

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
[...]
Read(f, MyData);
[...]
TRY
  image1.Picture.LoadFromFile(IntToStr(MyData.Bild) + '.bmp');
EXCEPT
  image1.Picture.LoadFromFile('0.bmp');
END;


Dieses Codefragment verlangt natürlich noch nach verbesserung (sicherheitsmechanismen falls keine Bilder vorhanden sind [auch 0.bmp nicht]) sollte das Prinzip aber zeigen.

Gruß
Klabautermann