formular-resourcen in Binary
-
- Beiträge: 4
- Registriert: Mo 4. Dez 2006, 15:26
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
- Wohnort: Plauen / Bamberg
- Kontaktdaten:
formular-resourcen in Binary
Hi,
wie mir aufgefallen ist, werden die Formulare in Lazarus anders als bei Delphi nicht als Ressourcen hinterlegt. Irgendwo hab ich gelesen, dass die aufgrund der Plattform-Unabhängigkeit gemacht wurde.
Gibt es einen Weg, die form-Ressourcen trotzdem zu lesen/ersetzen (ähnlich wie Updateresource,enumResources aus der Win32-API)?
Gruß Frank
wie mir aufgefallen ist, werden die Formulare in Lazarus anders als bei Delphi nicht als Ressourcen hinterlegt. Irgendwo hab ich gelesen, dass die aufgrund der Plattform-Unabhängigkeit gemacht wurde.
Gibt es einen Weg, die form-Ressourcen trotzdem zu lesen/ersetzen (ähnlich wie Updateresource,enumResources aus der Win32-API)?
Gruß Frank
-
- Beiträge: 6079
- Registriert: Do 21. Sep 2006, 07:51
- OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
- CPU-Target: AVR,ARM,x86(-64)
- Wohnort: Dessau
- Kontaktdaten:
Lresources heisst die unit deines interesses.
Dort gibt es eine Deklaration LazarusResources: TLResourceList;
Mit dieser kannst du z.b. in deinem programm Lazarusresources.Find('Meinresourcenname')
ausführen.
das ist die klasse die du zurückbekommst
TLResource = class
public
Name: AnsiString;
ValueType: AnsiString;
Value: AnsiString;
end;
und in .Value stehen die Binärdaten drin kannst also in z.b. nen StringStream zuweisen und dann mit Image.LoadfromStream in ein Image laden oder so...
Dort gibt es eine Deklaration LazarusResources: TLResourceList;
Mit dieser kannst du z.b. in deinem programm Lazarusresources.Find('Meinresourcenname')
ausführen.
das ist die klasse die du zurückbekommst
TLResource = class
public
Name: AnsiString;
ValueType: AnsiString;
Value: AnsiString;
end;
und in .Value stehen die Binärdaten drin kannst also in z.b. nen StringStream zuweisen und dann mit Image.LoadfromStream in ein Image laden oder so...
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
-
- Beiträge: 6079
- Registriert: Do 21. Sep 2006, 07:51
- OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
- CPU-Target: AVR,ARM,x86(-64)
- Wohnort: Dessau
- Kontaktdaten:
mhm es gibt eigentlich immer eine Möglichkeit nur hast du hierzu kein hausmittel zur Verfügung, du musst die deklaration innerhalb des executables finden und dann auslesen.
Wie sinnvoll das ganze ist steht allerdings auf nem anderen Blatt. Die meissten Lazarus executables werden eh durch upx gejagt womit du das vergessen kannst. Und was soll das dann werden kann ja eigentlich nur n tool zum Forms klauen werden...
Wie sinnvoll das ganze ist steht allerdings auf nem anderen Blatt. Die meissten Lazarus executables werden eh durch upx gejagt womit du das vergessen kannst. Und was soll das dann werden kann ja eigentlich nur n tool zum Forms klauen werden...
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
-
- Beiträge: 4
- Registriert: Mo 4. Dez 2006, 15:26
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
- Wohnort: Plauen / Bamberg
- Kontaktdaten:
also gibt es keine Möglichkeit wir bei normalen Windows-Binaries á la EnumResources die resourcen der exe zu enumerieren? stimmt, bei upx klappt das natürlich dann nicht mehr.Christian hat geschrieben:mhm es gibt eigentlich immer eine Möglichkeit nur hast du hierzu kein hausmittel zur Verfügung, du musst die deklaration innerhalb des executables finden und dann auslesen.
Wie sinnvoll das ganze ist steht allerdings auf nem anderen Blatt. Die meissten Lazarus executables werden eh durch upx gejagt womit du das vergessen kannst. Und was soll das dann werden kann ja eigentlich nur n tool zum Forms klauen werden...
es geht auch nicht um das klauen von formularen (zumindest mir). Ich hab diese Funktion für delphi-Formulare in meinem DFM-Editor, um z.b. Programme zu übersetzen, die keine Multilanguage-Engine mitbringen bzw. keine deutsche Übersetzung verfügbar ist. Oder wenn z.b. die Controlgröße für die Übersetzung nicht ausreicht. Ich wurde halt gefragt, ob ich das auch für lazarus-exen machen könnte, da ich ja die allgemeine lfm/lrs-unterstützung mit drin habe.
wo befindet sich diese Compilereinstellung wegen den Debug-Symbolen? hab schon danach gesucht, habs aber dann manuell per strip gemacht.
Gruß Frank
-
- Beiträge: 6079
- Registriert: Do 21. Sep 2006, 07:51
- OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
- CPU-Target: AVR,ARM,x86(-64)
- Wohnort: Dessau
- Kontaktdaten:
Nein da die Resourcen als Konstante abgelegt werden.also gibt es keine Möglichkeit wir bei normalen Windows-Binaries á la EnumResources die resourcen der exe zu enumerieren?
Wenn du die Konstante alledings findest kannst sie warscheinlich mit den normalen routinen laden. Modifizieren würde ich allerdings mal ganz schnell vergessen
Im Tab Linken in den Compilereinstellungen, ich weiss allerdins nicht ob die Einstellung funktioniert. zumindest aus der IDE heraus.wo befindet sich diese Compilereinstellung wegen den Debug-Symbolen? hab schon danach gesucht, habs aber dann manuell per strip gemacht.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
-
- Beiträge: 1187
- Registriert: Mi 13. Dez 2006, 10:58
- OS, Lazarus, FPC: Winux (L 1.2.xy FPC 2.6.z)
- CPU-Target: AMD A4-6400 APU
- Wohnort: Hamburg
@Christian
Deutschland ist eine DSL-Wüste. Die vollmundigen Versprechungen der Telekom-Verantwortlichen, die so sehnlich die Privatisierung vorantreiben wollten, sind bis heute nicht erfüllt. Die konnten und können es nicht besser oder gar billiger. Die wollten nur an das Eigentum aller Steuerzahler ran, als das noch Behörde war hat vieles besser funktioniert. Das es gelegentlich etwas holperig lief, lag mehr an den Vorschriften als an den Handelnden und für die Vorschriften sind Politiker verantwortlich.
Deutschland ist eine DSL-Wüste. Die vollmundigen Versprechungen der Telekom-Verantwortlichen, die so sehnlich die Privatisierung vorantreiben wollten, sind bis heute nicht erfüllt. Die konnten und können es nicht besser oder gar billiger. Die wollten nur an das Eigentum aller Steuerzahler ran, als das noch Behörde war hat vieles besser funktioniert. Das es gelegentlich etwas holperig lief, lag mehr an den Vorschriften als an den Handelnden und für die Vorschriften sind Politiker verantwortlich.
Humor ist der Knopf, der verhindert, daß uns der Kragen platzt.
(Ringelnatz)
(Ringelnatz)