AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Wie Image aus VCL-Formular-Datei (.dfm) auslesen

Ein Thema von Harry Stahl · begonnen am 26. Feb 2014 · letzter Beitrag vom 4. Mär 2014
Antwort Antwort
Perlsau
(Gast)

n/a Beiträge
 
#1

AW: Wie Image aus VCL-Formular-Datei (.dfm) auslesen

  Alt 26. Feb 2014, 20:20
Mich würde interessieren, was der Hintergrund dieser Anforderung ist: Um an die Bitmap- bzw. Picture-Daten zu kommen, genügt doch einfach ein Image1.Picture.SaveToFile(Dateiname); ... wozu benötigt man dann die DFM, um dort umständlich die Picture-Daten auszulesen und zu interpretieren?
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.213 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Wie Image aus VCL-Formular-Datei (.dfm) auslesen

  Alt 26. Feb 2014, 21:36
Mich würde interessieren, was der Hintergrund dieser Anforderung ist: Um an die Bitmap- bzw. Picture-Daten zu kommen, genügt doch einfach ein Image1.Picture.SaveToFile(Dateiname); ... wozu benötigt man dann die DFM, um dort umständlich die Picture-Daten auszulesen und zu interpretieren?
Stimmt. Das wäre die Frage.
Wenn sowas austauschbar gestaltet werden soll gibt es 100 bessere und einfachere Lösungen als das im DFM zu machen.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.326 Beiträge
 
Delphi 12 Athens
 
#3

AW: Wie Image aus VCL-Formular-Datei (.dfm) auslesen

  Alt 27. Feb 2014, 03:20
Wenn sowas austauschbar gestaltet werden soll gibt es 100 bessere und einfachere Lösungen als das im DFM zu machen.
z.B. in die Resourcen und das Bild im OnCreate (oder so) ins Image laden. (wie man eine Resource 'ner EXE ändert, sollte sich leicht finden lassen)
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Buddelfish
(Gast)

n/a Beiträge
 
#4

AW: Wie Image aus VCL-Formular-Datei (.dfm) auslesen

  Alt 27. Feb 2014, 08:02
Also wenn ich eine DFM ohne PAS-Datei hätte und wollte das Bild haben, würde ich einfach ein neues Formular mit allen Komponeten der DFM-Datei erstellen, speichern, DFM austauschen, wieder laden und dann das Bild kopieren. Alles über die IDE und alles ohne Programmcode. Sollte in 1 Minute erledigt sein.

Vermutlich reicht es, ein TImage auf eine Form zu klatschen, speichern, DFM austauschen, laden, Fehler wegklicken, fertig.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

AW: Wie Image aus VCL-Formular-Datei (.dfm) auslesen

  Alt 27. Feb 2014, 08:14
Eventuell hilft ja dieser Link weiter

DFM Parser and Search Utility
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

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

AW: Wie Image aus VCL-Formular-Datei (.dfm) auslesen

  Alt 27. Feb 2014, 18:35
Eventuell hilft ja dieser Link weiter

DFM Parser and Search Utility
Nein, leider nicht, das Programm sucht nur nach entsprechenden Komponenten, manipuliert sie aber nicht. Dennoch danke für den Link.
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

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

AW: Wie Image aus VCL-Formular-Datei (.dfm) auslesen

  Alt 27. Feb 2014, 18:30
Mich würde interessieren, was der Hintergrund dieser Anforderung ist:...
Ich möchte diese Sache nicht in Programm selber machen, welches die DFM-Datei enthält, sondern mit einem externen Programm eine DFM-Datei laden (bzw. daraus nur die TImage-Komponente), diese dann manipulieren (z.B. von 24-Bit in ein transparentes 32-Bitmap ändern) und dann in die Form zurückschreiben (also in der textuellen Fassung).

Hintergrund ist u.a., dass z.B. bei der Konvertierung mit dem MIDA-Converter die i.d.R. 24-Bit Bitmaps auch in 24-Bit konvertiert werden. Dann werden diese aber mit den hässlichen Hintergrundfarben (z.B. Pink) angezeigt. Insofern möchte ich vorher mit einem kleinen Programm alle 24-Bit Bitmaps in einem Rutsch in 32-Bit Bitmaps ändern, die "Hintergrundfarbe" durch Transparenz ersetzen, damit diese Bitmaps dann in der FMX-Form transparent angezeigt werden können.

Wenn man z.B. 100 oder mehr TSpeedButtons in einer Form hat, mit entsprechenden Glpyhs, wäre es schon ein irrer Aufwand, hinterher manuell die Bitmaps bearbeiten zu müssen, das will ich mir halt ersparen (habe zwar den MIDA-Leuten vorgeschlagen, diese Option in deren Programm einzubauen, habe daher aber bislang noch keine Antwort erhalten [Sie wollten es prüfen]).
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.213 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: Wie Image aus VCL-Formular-Datei (.dfm) auslesen

  Alt 27. Feb 2014, 20:00
Wenn man z.B. 100 oder mehr TSpeedButtons in einer Form hat, mit entsprechenden Glpyhs, wäre es schon ein irrer Aufwand, hinterher manuell die Bitmaps bearbeiten zu müssen, das will ich mir halt ersparen
Sind das auch 100 unterschiedliche Icons oder doch viele Icons mehrfach verwendet.
Ich würde mir ein zentralen Icon/Image-Pool aufbauen und in jedem Formular sich bei diesen bedienen.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#9

AW: Wie Image aus VCL-Formular-Datei (.dfm) auslesen

  Alt 28. Feb 2014, 00:48
Leider weiß ja nur die Komponente selber, wie die binären Daten codiert sind. Es gibt da ja auch unterschiedliche Property-Namen, z.b. Picture, Bitmap, Image.Data, Glyph etc.

Ich würde das wie folgt lösen: Eine Designtime Komponente erstellen mit einem Editor, die keine Persistenz hat. Die beinhaltet dann einen Editor der über das Verb aufgerufen wird. In diesem Editor durchläufst Du alle Komponenten des Formulars und liest die Image-Objekte in eine Liste ein wobei Du Dir merkst welche Property welches Objekts das war. Die Listeneinträge kannst Du dann evtl. visualisieren, markieren und zur Konvertierung bestätigen. Daraufhin das Format entsprechend wandeln und die Komponenten-Eigenschaften aktualisieren.

Für die Umstellung eines Formulars müsstest Du zunächst die BPL installiert haben. Dann nur die Komponente fallen lassen, draufklicken und die Konvertierung bestätigen. Dann die Komponente wieder löschen und nächstes Formular. Alternativ könnte man natürlich auch einen Experten schreiben.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Antwort Antwort


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 08:58 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 by Thomas Breitkreuz