AGB  ·  Datenschutz  ·  Impressum  







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

Dateien einlesen

Ein Thema von schöni · begonnen am 1. Apr 2012 · letzter Beitrag vom 6. Apr 2012
Antwort Antwort
Seite 2 von 3     12 3      
schöni

Registriert seit: 23. Jan 2005
Ort: Dresden
445 Beiträge
 
Delphi 7 Personal
 
#11

AW: Dateien einlesen

  Alt 4. Apr 2012, 11:53
Aaaaaaber eine Frage habe ich schon jetzt an DeddyH:

Die Picshow Demos nutzen ja die zu installierende PicShow-Komponente. Nun habe ich jedoch nur D7 Personal und die kostenlose Turbo Delphi Version. In letzterer kann ich keine Fremdkomponenten installieren. Erstere enthält keine Datenbank Komponenten. Ich muss also die Komponenten komplett per Hand instantiieren. Deshalb die Frage:

Was ist Picture.Data in Splash.dfm im Ordner DBDemo?

Was ist PgPicture.Data in Main.dfm im Ordner Demo?

Im Ordner Demo gibt es den Unternordner Photos. Ich vermute Picture.Data bzw. PgPicture.Data enthält eines der Fotos aus diesem Ordner? Richtig?

Allerdings habe ich die Funktion noch nicht gefunden, die mir das Foto dorthin lädt, wenn ich die PicShow Komponente aud der .dfm Datei entferne, um die Demos wegen der vorausgesetzten DB Komponenten mit Turbo Delphi zu übersetzen.


.
Damit der Topf nicht explodiert, lässt man es ab und zu mal zischen.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#12

AW: Dateien einlesen

  Alt 4. Apr 2012, 12:14
Die Klasse TGraphic kennt die Methoden LoadFromFile()/LoadFromStream()
Markus Kinzler
  Mit Zitat antworten Zitat
schöni

Registriert seit: 23. Jan 2005
Ort: Dresden
445 Beiträge
 
Delphi 7 Personal
 
#13

AW: Dateien einlesen

  Alt 4. Apr 2012, 19:46
Asche auf mein Haupt. Sorry, ich hatte den Pfadnamen falsch.

FindFirst(FFileName)... und nicht, wie es richtig gewesen wäre:

Delphi-Quellcode:
FindFirst(
   ExtractFilePath(FFileName)+'*'+ExtractFileExt(FFileName),...
Die FileSearch-Komponente von DeddyH schau ich mir dennoch an. Und jetzt, wo meine eigene (wenn auch) Quick and Dirty Lösung für die Diashow läuft, auch die PicShow Komponente und die anderen Tipps.
Damit der Topf nicht explodiert, lässt man es ab und zu mal zischen.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#14

AW: Dateien einlesen

  Alt 4. Apr 2012, 19:55
Die FileSearch-Komponente von DeddyH schau ich mir dennoch an.
Ich möchte Dir nur kurz warnen: als Anschauungsobjekt ist die eigentlich eher schlecht geeignet, da sehr umfangreich. Wenn Du es trotzdem versuchen möchtest, kannst Du Dich mit Fragen aber gerne an mich wenden.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
schöni

Registriert seit: 23. Jan 2005
Ort: Dresden
445 Beiträge
 
Delphi 7 Personal
 
#15

AW: Dateien einlesen

  Alt 4. Apr 2012, 20:43
Die Klasse TGraphic kennt die Methoden LoadFromFile()/LoadFromStream()
Das weiß ich. Was ich aber nicht weiß, ist, wie wird in der Eigenschaft Picture.Data in der .dfm Datei das Bild abgelegt?

Die reinen Bilddaten ohne Headerinfo oder die komplette Datei?

@DeddyH hat, wie hier auch zu lesen ist, eine PicShow-Komponente feilgeboten. In den mitgelieferten Demos gibt es in den Formulardateien die Felder

Picture.Data und

PgPicture.Data

Ich wollte halt das Original auch dann wiederherstellen, wenn DeddyH nicht noch mal antwortet. Dazu muss ich entweder wissen, welches der mitgelieferten Fotos er als Hintergrund im Objektinspektor gesetzt hat oder ich muss die Daten als Binärdatei speichern und an (Pg)Picture.Data zuweisen, da ich in Turbo Delphi keine Fremdkompos installieren kann. In D7 Personal fehlen die leider auch vorausgesetzten DB-Komponenten. Werde das deshalb selber ausprobieren. Wenn in Data die reinen Bilddaten stehen, sollte ich diese in binform in ein Array laden können und im Quellcode an Data zuweisen können.

Zitat von DeddyH:
Ich möchte Dir nur kurz warnen: als Anschauungsobjekt ist die eigentlich eher schlecht geeignet, da sehr umfangreich. Wenn Du es trotzdem versuchen möchtest, kannst Du Dich mit Fragen aber gerne an mich wenden.
Danke für das Angebot. Ich werde bei Bedarf darauf zurück kommen. Ich versuche es trotz der Warnung.
Damit der Topf nicht explodiert, lässt man es ab und zu mal zischen.

Geändert von schöni ( 4. Apr 2012 um 20:45 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#16

AW: Dateien einlesen

  Alt 5. Apr 2012, 08:11
Pack mal spaßhalber ein TImage auf ein Formular, lade dort zur Entwurfszeit eine Grafik hinein und schau Dir die DFM als Text an. Dann wirst Du sehen, dass dort die kodierten Pixeldaten unter Data stehen. Das muss also keine Grafik aus dem Unterverzeichnis, sondern kann auch eine ganz andere sein. Für Dich spielt das aber keine Rolle, wenn Du die Komponente zur Laufzeit erzeugst, da Du "Data" eh nicht angreifst, sondern per LoadFromFile/LoadFromStream eine Grafik hineinladen kannst (Picture- bzw. BgPicture-Eigenschaft). Um die Komponente unter D7 Personal zu installieren, müsste es meiner Ansicht nach genügen, in der Hauptunit die DB-Variante samt aller Verweise auf DB-Packages komplett auszukommentieren. Die DB-Packages sind die, die der Compiler als fehlend monieren wird. Zu guter Letzt wirft man aus der Registrierungsunit noch die DB-Komponente raus, und es sollte gehen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
schöni

Registriert seit: 23. Jan 2005
Ort: Dresden
445 Beiträge
 
Delphi 7 Personal
 
#17

AW: Dateien einlesen

  Alt 5. Apr 2012, 12:35
Pack mal spaßhalber ein TImage auf ein Formular, lade dort zur Entwurfszeit eine Grafik hinein und schau Dir die DFM als Text an. Dann wirst Du sehen, dass dort die kodierten Pixeldaten unter Data stehen. Das muss also keine Grafik aus dem Unterverzeichnis, sondern kann auch eine ganz andere sein. Für Dich spielt das aber keine Rolle, wenn Du die Komponente zur Laufzeit erzeugst, da Du "Data" eh nicht angreifst, sondern per LoadFromFile/LoadFromStream eine Grafik hineinladen kannst (Picture- bzw. BgPicture-Eigenschaft). Um die Komponente unter D7 Personal zu installieren, müsste es meiner Ansicht nach genügen, in der Hauptunit die DB-Variante samt aller Verweise auf DB-Packages komplett auszukommentieren. Die DB-Packages sind die, die der Compiler als fehlend monieren wird. Zu guter Letzt wirft man aus der Registrierungsunit noch die DB-Komponente raus, und es sollte gehen.
Ok, danke, das funktioniert. Ich konnte die Komponente ohne die Datenbankteile (auskommentiert) installieren und das Demo starten.

Die Überblendeffekte funktionieren mit den kleineren mitgelieferten Bildern einwandfrei. Ich habe jedoch eigene Bilder von meiner DigiCam, die ein ganzes Stück größer sind. Da klappt das Überblenden nicht mehr so schön flüssig. Habe eienen Athlon mit 1GHz. 512 MByte RAM. Habe noch 1 Laptop mit 0,99 GByte RAM, Prozessor 1,73GHz Pentium.

Kann das optimiert werden? Wenn ja, wo?
Damit der Topf nicht explodiert, lässt man es ab und zu mal zischen.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#18

AW: Dateien einlesen

  Alt 5. Apr 2012, 12:37
Vermutlich hast Du die originalen Riesenbilder der Webcam benutzt und lediglich die Anzeige gestrecht. Das ist eher kontraproduktiv, besser wäre es, die Bilder zu verkleinern, abzuspeichern und diese Dateien dann zu verwenden.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
schöni

Registriert seit: 23. Jan 2005
Ort: Dresden
445 Beiträge
 
Delphi 7 Personal
 
#19

AW: Dateien einlesen

  Alt 6. Apr 2012, 11:05
Vermutlich hast Du die originalen Riesenbilder der Webcam benutzt und lediglich die Anzeige gestrecht. Das ist eher kontraproduktiv, besser wäre es, die Bilder zu verkleinern, abzuspeichern und diese Dateien dann zu verwenden.
Nein, ich hatte Bilder von meiner Digitalkamera verwendet. Aber wenn ich die verkleinere, funktioniert das Überblenden wie gewünscht.

Interessanterweise funktioniert das Programm mit D7 Personal übersetzt wunderbar, aber nicht so mit Turbo Delphi übersetzt, wo ich die Komponente nicht installieren kann. Dort erhalte ich eine

EAccessViolation in Modul PSDemo.exe bei Adresse 000A62A9, Zugriffsverletzung bei Adresse 004A62A9 in Modul PSDemo.exe. Lesen von Adresse 0000260.

Das kann eigentlich nur mit dem Problem der nicht installierten Komponente zusammen hängen, sonst würde es mit D7 Personal und dort korrekt installierter Komponente ja auch nicht funktionieren.

PsPicture.Data enthält also die Pixeldaten des Hintergrundes. Die PicShow Kompo hat einen Hintergrund, der jedoch im Objektinsprktor festgelegt wurde und wahrscheinlich in der Ressourcendatei versteckt ist. Enthält Data die reinen Bilddaten oder die komplette Datei einschließlich Headerinformation. Im letzteren Fall könnte ich probeweise die Hexstings in Binärziffern umwandeln und als .jpg Datei abspeichern und wegen der in Turbo Delphi nötigen Instantiierung zur Laufzeit mit LoadFromFile laden. Wenn Data aner nur die reine Pixelinformation umfasst???


Wegen der Problematik mit Turbo Delphi habe ich mir auch DfmToPas beschafft. Leider ist die Oberfläche dort für mich nicht verwendbar. Diese verlangt ein leeres Verzeichnis für die Zielunit aber erlaubt nicht, dieses Verzeichnis vor der Konvertierung festzulegen. Und wie benennt dieses Programm dann die neue Pascal Datei? Heißt also Sourcen studieren und auch verstehen oder doch eigene Lösung zu finden. Die sollte so aussehen, das ich eine Include Datei erhalte, die dann im Interface Teil meines Formular Quelltextes so eigefügt ist, das sich die Unit danach so verhält, als wäre sie mit der Original .dfm Datei übersetzt worden.

Doch dann muss ich wissen, welchen Quelltext diese Software dann für PgPicture.Data = {...} erzeugen müsste.

.
Damit der Topf nicht explodiert, lässt man es ab und zu mal zischen.

Geändert von schöni ( 6. Apr 2012 um 11:15 Uhr)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#20

AW: Dateien einlesen

  Alt 6. Apr 2012, 12:43
Der Hintergrund wird in BgPicture.Data stecken
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 19:46 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