Autor |
Beitrag |
NeMeZ
      
Beiträge: 25
Win7
Delphi10
|
Verfasst: Fr 01.04.11 21:35
Hallo Leute.... brauche einen Tipp, bin Anfänger, in DX und API null Ahnung, aber Spile knacke ich gern, und schreibe Trainers für mich, mit Grafik und alles drum und dran  . Das Problemm ist- .exe Datei, die kann bis 2-3 MB sein, obwohl ich das hier nutze:
{$SETPEFLAGS IMAGE_FILE_RELOCS_STRIPPED or IMAGE_FILE_LINE_NUMS_STRIPPED}
{$WEAKLINKRTTI ON}
{$RTTI EXPLICIT METHODS([]) PROPERTIES([]) FIELDS([])}
und danach UPX, habt ihr was vielleicht, was exe datei kleiner macht?! 
|
|
spawn89
      
Beiträge: 82
Erhaltene Danke: 7
Linux
CodeTyphon
|
Verfasst: Fr 01.04.11 21:46
Viel wichtiger wäre zu wissen, wie du überhaupt auf die 2-3 MB kommst.
|
|
jaenicke
      
Beiträge: 19314
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Fr 01.04.11 21:47
Gibt es auch einen Grund dafür, dass die Exe klein sein muss? Das Packen mit UPX oder anderen Packern hat mehr oder weniger gravierende Nachteile, je nachdem was für eine Software man schreibt.
Jedenfalls liest sich das so als hättest du schlicht sehr große Bilder eingebunden. Wenn du die optimierst, sparst du vermutlich auch viel Speicherplatz.
Um welche Delphiversion geht es eigentlich? Im Profil steht Delphi 6, aber der Quelltext sieht eher nach Delphi 2010 oder XE aus.
Dort sind die Programme derzeit leider relativ groß, da helfen auch die Optionen nicht so viel. Eine Option zum Entfernen von mehr RTTI-Informationen usw. wird es wohl in XE 2 oder XE 3 geben.
Wenn du unbedingt sehr kleine Exe-Dateien willst, rate ich eher C# oder Delphi Prism zu nutzen. 
|
|
NeMeZ 
      
Beiträge: 25
Win7
Delphi10
|
Verfasst: Fr 01.04.11 21:49
hier ist ein kleiner Muster
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94:
| unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, GIFImg, ExtCtrls, ComCtrls, mmsystem, StdCtrls, Comobj, jpeg; {$SETPEFLAGS IMAGE_FILE_RELOCS_STRIPPED or IMAGE_FILE_LINE_NUMS_STRIPPED} {$WEAKLINKRTTI ON} {$RTTI EXPLICIT METHODS([]) PROPERTIES([]) FIELDS([])}
type TForm1 = class(TForm) Image1: TImage; Image2: TImage; Label1: TLabel; Image3: TImage; Label2: TLabel; procedure Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure FormShow(Sender: TObject);
procedure Label1Click(Sender: TObject); procedure Image2Click(Sender: TObject); procedure Image3Click(Sender: TObject); procedure Label2Click(Sender: TObject); private procedure WMHotKey(var Message: TMessage); message WM_HOTKEY; public end; var Form1: TForm1; WindowName:Integer; implementation {$R *sound.res} {$R *.dfm} procedure Tform1.WMHotKey(var Message: TMessage); begin If WindowName = 0 then begin PlaySound(nil, 0, SND_PURGE) ; showmessage('Bitte starten Sie zuerst das Spiel' + #13 + 'bevor Sie den Trainer aktivieren!');
end; end;
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin ReleaseCapture; Perform(WM_SYSCOMMAND, $F012, 0); end;
procedure TForm1.Image2Click(Sender: TObject); begin close; end;
procedure TForm1.Image3Click(Sender: TObject); begin
MessageDlg('blabla.' + #13#10 + 'blubblubblub.', mtINFORMATION, [mbok], 0); end;
procedure TForm1.Label1Click(Sender: TObject); begin close end;
procedure TForm1.Label2Click(Sender: TObject); begin MessageDlg('blabla.' + #13#10 + 'blubblubblub.', mtINFORMATION, [mbok], 0); end;
procedure TForm1.FormShow(Sender: TObject); var bild : TGIFImage; ResStream : TResourceStream; begin PlaySound('klip', 0, SND_RESOURCE or SND_ASYNC or SND_LOOP); GIFImageDefaultAnimate := True; RegisterHotKey(form1.Handle,123,mod_control,vk_f1); try bild := TGIFImage.Create; resstream := TResourceStream.Create(hInstance, 'gifimage_1', RT_RCDATA); bild.LoadFromStream(ResStream); Image1.Picture.Assign(bild); finally bild.free; ResStream.free;
end; end; end. |
Moderiert von Martok: Delphi-Tags hinzugefügt
|
|
jaenicke
      
Beiträge: 19314
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Fr 01.04.11 21:52
Schau einfach nach wie groß die eingebundenen Bilder sind. Wenn du Delphi 6 nutzt, werden die vermutlich den größten Teil ausmachen.
|
|
NeMeZ 
      
Beiträge: 25
Win7
Delphi10
|
Verfasst: Fr 01.04.11 21:56
'jaenicke'
danke für hilfe.... C# habe ich angefangen, aber keine zeit..... Delphi kann ich nicht mal zu ende lernen.... keine zeit . das ganze ist nicht beruflich, sondern hobby... deswegen habe ich die frage gestellt.... hier gibt es auch profi.... paar tipps würde ich gebrauchen.....
|
|
jaenicke
      
Beiträge: 19314
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Fr 01.04.11 21:57
Naja, wie groß sind denn nun die eingebundenen Bilder und Sounds?
|
|
NeMeZ 
      
Beiträge: 25
Win7
Delphi10
|
Verfasst: Fr 01.04.11 22:06
'jaenicke'
Das Bild etwa 500kb(gif), Sound etwa 500kb(wav), das macht 1 MB, aber gif und wav kann bis zu 70% 'gedrückt' komprimiert werden..... frage wie?!
es wäre wunderbar wenn das so ausgesehen 'application.ressource.comprimieren' 
|
|
jaenicke
      
Beiträge: 19314
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Fr 01.04.11 22:14
Also die Units führen selbst bei XE zu einer nur etwas über ein 1 MiB großen Anwendung. Dazu noch ein MiB durch die beiden genannten Dateien, da hast du schon etwas mehr als zwei MiB.
Wenn es also so wichtig ist, dass die Datei kleiner wird, dann bleibt dir wohl nichts anderes übrig als ohne VCL-Formulare zu arbeiten, mit der reinen Windows API. Das ist natürlich ein erheblicher Aufwand und alles andere als angenehm, bringt aber auch etwas.
Den Sound, naja, den könntest du als MP3 einbinden oder komprimiert einbinden und zur Laufzeit entpacken.
|
|
NeMeZ 
      
Beiträge: 25
Win7
Delphi10
|
Verfasst: Fr 01.04.11 22:35
'jaenicke'
"Den Sound, naja, den könntest du als MP3 einbinden oder komprimiert einbinden und zur Laufzeit entpacken."
seit Tagen hier gesucht mp3 als ressource.... nichts gefunden. wenn du was auf lager hast, sag doch, bitte bitte
von der frage oben: ist eigentlich egal ob das 2 oder 10 MB ist.... mit meinem i5 Processor das ist wurst, bloß ... ich bin ein 'Berliner', sorry 'Programierer'  , das ist nicht notwendig, aber für mich wichtig....
|
|
jaenicke
      
Beiträge: 19314
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Fr 01.04.11 22:58
Naja, die MP3-Ressource musst du dann zum Abspielen temporär auspacken.
|
|
NeMeZ 
      
Beiträge: 25
Win7
Delphi10
|
Verfasst: Fr 01.04.11 23:25
'jaenicke'
"Naja, die MP3-Ressource musst du dann zum Abspielen temporär auspacken."
nö, das wird installer, und für Windows kake
jaenicke Danke, wenn du fragen hast bin gerne zu verfügung, bin aber nur zum knacken, spiele meine ich ........
obwohl.......... wenn ich noch schreiben könnte......
|
|
jaenicke
      
Beiträge: 19314
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Fr 01.04.11 23:27
NeMeZ hat folgendes geschrieben : | nö, das wird installer, und für Windows kake |
Wie meinen? Kannst du vielleicht ganze Sätze formulieren?
Was hat das jetzt mit einem Installer zu tun?
|
|
Don Krawallo
      
Beiträge: 45
Windows 10 x64
Delphi 10.4.1
|
Verfasst: Fr 01.04.11 23:28
Tagchen zusammen...
Ich hänge mich mal hier mit rein und hoffe mir sei die Frage gestattet... Worin besteht denn da der Unterschied zwichen den herkömmlichen Delphi (z.b. 2010, oder XE) und Delphi Prism? Was ich bisher so mitgekriegt hab ist wohl das man hiermit .Net Anwendungen entwickeln kann?! Seh ich das richtig? Wenn dem so ist wirds wohl sicher auch ne andere Programmiersprache sein, also nicht die Delphi typische Schreibweise.
MFG D.Krawallo
|
|
jaenicke
      
Beiträge: 19314
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Fr 01.04.11 23:55
|
|
Don Krawallo
      
Beiträge: 45
Windows 10 x64
Delphi 10.4.1
|
Verfasst: Fr 01.04.11 23:57
Ich danke für die kurze und knappe Aufklärung.
Goodn8
|
|
FrEaKY
      
Beiträge: 235
D7
|
Verfasst: Sa 02.04.11 13:07
NeMeZ hat folgendes geschrieben : | 'jaenicke'
danke für hilfe.... C# habe ich angefangen, aber keine zeit..... Delphi kann ich nicht mal zu ende lernen.... keine zeit . das ganze ist nicht beruflich, sondern hobby... deswegen habe ich die frage gestellt.... hier gibt es auch profi.... paar tipps würde ich gebrauchen..... |
Ich glaube, für sehr viele von den hier angemeldeten Usern ist Delphi ein Hobby. Aber für ein Hobby muss man sich auch Zeit nehmen.
|
|
turboPASCAL
      
Beiträge: 193
Erhaltene Danke: 1
Win XP / Vischda
D6 PE / D2005 PE
|
Verfasst: Sa 02.04.11 16:37
Tipp:
Delphi 5, 6 oder 7 in Verbindung mit NONVCL .
Wenig Graphik und wenn dann Jpegs & Png's sowie mehr "selbstmalen". Keine MP3- oder Wavesounds sondern CHIPTUNES
Beispiel: Keksgen
_________________ Nein, ich bin nicht der turboPASCAL aus der DP, ich seh nur so aus...
|
|
Don Krawallo
      
Beiträge: 45
Windows 10 x64
Delphi 10.4.1
|
Verfasst: Sa 02.04.11 18:29
Man muss sich natürlich immer vor Augen halten das es auf die verwendete Programmiersprache ankommt. Man nehme zum Vergleich mal Visual Studio... Mit VB eine einfach Form dazu noch ein Button hat man eine Größe von ca. 100 bis 150 KB. Bei Delphi XE mit den Standard-Einstellungen, ne simple Form + Button, kommt man auf ca. 900 KB.
Da sieht man z.b. schon das es wie gesagt auch stark Programmiersprachenabhänhig ist, wie @jaenicke auch bereits schrieb. Delphi finde ich aber nachwievor faszinierend. Wenn ich auch Anfänger bin... Da lieber nehm ich Delphi anstatt VB, C etc. In Verbindung mit einem gescheiten Packer/Protector scheint mir das immer noch die bessere Lösung. Hab mit Delphi eigentlich nur angefangen um selbst flexibler zu sein was das Trainer coden angeht.
Hab letztens erst ein neues Trainer Design samt *.nfo entworfen. Wen es interessiert... Download gibbet weiter unten.
Zum Thema *.nfo - Sowas z.b. mit Visual Studio zu lösen scheint mehr als schwierig. Visual Studio scheint nur True Type Schriften zu unterstützen. Somit würde die Terminal Schrift schonmal wegfallen. Bleiben also nur noch Courier New und Lucida Console die alle entsprechenden Zeichen unterstützen. Allerdings sieht damit eine *.nfo, programmiert in VB, mehr als schlecht aus.
MFG sILeNt heLLsCrEAm
Einloggen, um Attachments anzusehen!
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Sa 02.04.11 18:36
Nein ist es nicht. Wenn du bei VB die Runtimes miteinkompilierst, weil sie bei Windows teilweise mitgeliefert werden, wie es bei Delphi der Fall ist, dann hast du auch deine 500KB Exe. Und wenn du bei Delphi die BPLs nicht mit einkompilierts, hast du auch eine kleine Exe, musst aber die BPLs mitliefern.
|
|
|