AGB  ·  Datenschutz  ·  Impressum  







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

[gelöst] Binärdaten in Quellcode

Ein Thema von Schwedenbitter · begonnen am 11. Sep 2017 · letzter Beitrag vom 24. Sep 2017
Antwort Antwort
Schwedenbitter

Registriert seit: 22. Mär 2003
Ort: Finsterwalde
622 Beiträge
 
Turbo Delphi für Win32
 
#1

[gelöst] Binärdaten in Quellcode

  Alt 11. Sep 2017, 21:37
Hallo,

ich bastel an einer Klasse, die von TBitBtn abgeleitet ist. Die Glyphs lade ich derzeit aus zur Laufzeit aus externen Dateien. Um Platz zu sparen sind das PNG-Dateien.
Ich meine irgendwo mal gesehen zu haben, dass man solche Daten (oder Streams?) in den Code mit aufnehmen kann. Die PNG-Bilder sind in Summe lächerliche 583 Bytes. Die kann ich locker abtippen. Ich möchte ausdrücklich keine res-Datei beim Compilieren mit einbinden. Ich meine ich so etwas als array in der const-Definition gesehen.

Daher meine Frage:
Gibt es irgend eine Möglichkeit, diese Daten in den Programmcode mit aufzunehmen?
Alex Winzer

Geändert von Schwedenbitter (12. Sep 2017 um 16:15 Uhr) Grund: Die Frage wurde beantwortet.
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.337 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Binärdaten in Quellcode

  Alt 11. Sep 2017, 21:45
Du könntest die Daten in Base64 umwandeln und z.B. in einem nicht sichtbaren Memo oder Label speichern.
Wäre zwar unüblich, sollte aber gehen.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3

AW: Binärdaten in Quellcode

  Alt 11. Sep 2017, 21:52
Darf man fragen warum keine Ressourcendatei? Die Ressourcen werden ja auch in das Kompilat einkompiliert.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#4

AW: Binärdaten in Quellcode

  Alt 11. Sep 2017, 22:05
Lade mal ein Bild in der IDE und schaue Dir dann in der DFM an, wie es dort abgelegt ist.

Das kannst Du dann analog auch als Konstante im Quelltext ablegen.

Oder benutze eine ImageList, in die Du in der IDE die Bilder lädst, sie werden dann Teil des Formulars.

Zur Laufzeit kannst Du dann die Bilder den TBitBtn nach Bedarf zuweisen.
  Mit Zitat antworten Zitat
Schwedenbitter

Registriert seit: 22. Mär 2003
Ort: Finsterwalde
622 Beiträge
 
Turbo Delphi für Win32
 
#5

AW: Binärdaten in Quellcode

  Alt 11. Sep 2017, 22:40
Darf man fragen warum keine Ressourcendatei? Die Ressourcen werden ja auch in das Kompilat einkompiliert.
Wenn ich das weitergebe, möchte ich nur eine Unit als pas-Datei haben und nicht noch 2 Bilddateien, eine RC-Datei etc.
Die Idee mit der ImageList fand ich sofort toll. Allerdings fiel mir dann ein, dass die Dateien dort als bmp-Dateien mit mehreren KBytes "gespeichert" werden.

Manchmal versuche ich Sachen auch nur, weil ich der Meinung bin, dass es gehen muss. Häufig fällt mir so etwas später wieder ein, wenn ich das wirklich mal brauche...
Alex Winzer
  Mit Zitat antworten Zitat
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.018 Beiträge
 
Delphi 2009 Professional
 
#6

AW: Binärdaten in Quellcode

  Alt 11. Sep 2017, 23:25
Bilder in DFMs zu speichern, benötigt allerdings in der EXE auch deutlich mehr Platz als Ressourcen.

Du kannst natürlich ein Array nehmen. Schön ist das alles nicht.
Delphi-Quellcode:
const
  size = 4711;
  bild: array[0..size-1] of Byte = (42, ...);
var
  ms: TMemoryStream;
begin
  ms := TMemoryStream.Create;
  ms.Write(bild[0], size);
  ms.position := 0;
  // usw.
end;
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.067 Beiträge
 
Delphi 12 Athens
 
#7

AW: Binärdaten in Quellcode

  Alt 12. Sep 2017, 07:42
Die Idee mit der ImageList fand ich sofort toll. Allerdings fiel mir dann ein, dass die Dateien dort als bmp-Dateien mit mehreren KBytes "gespeichert" werden.
Vielleicht sind die PngComponents hier besser geeignet. Die dort vorhandene PngImageList speichert eben keine BMPs sondern direkt das PNG-Format. Falls die Bilder unterschiedlich groß sind, kannst du auch die PngImageCollection verwenden.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  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 11:03 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