Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   Das wohl beste Schlange der Welt (https://www.delphipraxis.net/142950-das-wohl-beste-schlange-der-welt.html)

himitsu 6. Nov 2009 15:35


Das wohl beste Schlange der Welt
 
Liste der Anhänge anzeigen (Anzahl: 2)
Moin ihr, :angel:

hier habt ihr mal das vermutlich allerbeste Schlange-Spiel (Snake, falls es wer nicht kennt) der Welt.


Ich denk mir, daß es vorallem wegen der extrem vielen Kommentare vorallem für lernwillige Schüler bestens geeignet ist.
Dazu kommen noch die voll aussagekräftigen Objekt- und Variablennamen
und auch die sehr verständlich beschrifteten Buttons.

Ansonsten besteht es auch nur einem Label, 2 Buttons, 3 4 Timern (mir fällt bestimmt noch was für Weitere ein) und 2561 3102 Images.

Und einer knuffigen nur ~15 MB kleinen DFM ... wobei die Bilder selber nur je 2-3 KB sind.
(schon erstaunlich, wie gut 7-Zip komprimieren kann :roll: )
Es gibt aber inzwischen auch ein paar "optimiertere" Versionen. (siehe #38)



Aber ihr müßt zugeben, die Grafik ist doch erstklassig, oder? :angel2:


:duck: schnell weg hier




PS: mit neueren Delphis gibt es ein klitzekleines Problemchen
Zitat:

---------------------------
Project1
---------------------------
Systemfehler. Code: 87.

Falscher Parameter.
---------------------------
OK
---------------------------

diesen ist anscheinend die Form zu leer. :angel2:
Aber dafür soll es ja ein Fixup geben > Hier im Forum suchenSystemfehler Code 87

Falls noch wer weitere Ideen für weitere Verschlimmbesserungen hat ... sagt es ruhig.
Und ja, ich hatte grad etwas Lange Weile und mir fehlt der Negierenthread. :cry:

[add]
ach ja, mein letztes richtiges Snake hatte ich noch in QBasic programmiert :angel:

[add]
Weitere Infos, zu den einzelnen Versionen, sind im Beitrag #38 zu finden.

turboPASCAL 6. Nov 2009 15:47

Re: Das wohl beste Schlange der Welt
 
http://fnse.de/S01/0MI.gif

Sound und Musike fehlt !
Da könnte man noch ein paar MB verbrutzeln oder 2²³ Timer verwenden.

Irgenwie hat sich mein Delphi gerade http://fnse.de/S01/17P.gif.

himitsu 6. Nov 2009 16:16

Re: Das wohl beste Schlange der Welt
 
OK, hab mir grad die Original Nibbles-Sounds besorgt ... jetzt muß ich sie nur noch in Windows.MSDN-Library durchsuchenBeep übersetzen und je in 'nen Timer verpacken X'D

PLAY "MBT160O1L8CDEDCDL4ECC"
PLAY "T160O1>L20CDEDCDL10ECC"
PLAY "MBO0L16>CCCE"
PLAY "MBO0L32EFGEFDC"

patti 6. Nov 2009 16:23

Re: Das wohl beste Schlange der Welt
 
Ehrlich gesagt verstehe ich gerade den Sinn nicht ganz :oops:

Habs mir jetzt nicht angeschaut, aber was bitte sollen 3 Timer und 2561 Images?
Den Anfängern erklärt man immer, dass man sowas nicht machen soll und dann findet man in der OpenSource-Sparte sowas :gruebel:

Bin auf die ersten Threads gespannt, wo es heißt: "Habs genauso wie ->hier<- gemacht, aber irgendwie funktionierts nicht" ;-)

Patti

Matze 6. Nov 2009 16:27

Re: Das wohl beste Schlange der Welt
 
Den Sinn kann ich dir nennen: Himi ist mal wieder langweilig und macht daher irgendeinen Blödsinn. :mrgreen:

Lustige Idee und für die paar Images recht performant.

p80286 6. Nov 2009 16:28

Re: Das wohl beste Schlange der Welt
 
hallo Patti,

nichts für ungut, Du hast's nicht verstanden,
Genau so sollte man's nicht machen.

Zitat:

Ich denk mir, daß es vorallem wegen der extrem vielen Kommentare vorallem für lernwillige Schüler bestens geeignet ist.
Dazu kommen noch die voll aussagekräftigen Objekt- und Variablennamen
und auch die sehr verständlich beschrifteten Buttons.
Aber irgendwie hatte ich ein Dejaoooooooooooooooooooooooooooooooooooooooooooooo ooooooooooooooooooooooooooooooooo

Gruß
K-H

P.s.
und alles in Handarbeit?

DeddyH 6. Nov 2009 16:30

Re: Das wohl beste Schlange der Welt
 
Schön finde ich auch:
Zitat:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  winexec(pchar(paramstr(0)), 0);
  close;
end;

*Schauder* :stupid:

himitsu 6. Nov 2009 16:37

Re: Das wohl beste Schlange der Welt
 
Nja, vielleicht hab ich es noch nicht ironisch genug angepriesen :lol:

Es ist praktisch 'ne Antipatterndesignstudie. (Bei Google suchenDesign Pattern)
Also genau so, wie man es nicht machen sollte.

Zitat:

Zitat von DeddyH
*Schauder* :stupid:

cool wa?
die Idee ist mir Aufgrund eines gewissen "Programm zurücksetzen"-Threads gekommen :)

Eigentlich wollte ich auch noch die ganzen Einrückungen aus dem Code entfernen, aber ich hab's dann doch gelassen :nerd:
Kann ja jeder selber noch machen > Strg+A Strg+Shift+UUUU

Zitat:

Zitat von Matze
Lustige Idee und für die paar Images recht performant.

eigentlich schade irgendwie ... aber ich schaff es bestimmt noch, die CPU etwas zum Glühen zu bekommen :stupid:

Zitat:

Zitat von p80286
P.s. und alles in Handarbeit?

ja ... hab 'ne gute Stunde gebraucht, bis ich es in D7 nochmals erstellt hab, nachdem D2009 aufgegeben hatte.
Nur blöd, daß ich es dann nicht direkt übernehmen konnte, da D7 die ganzen GIFs aus den Images gelöscht hatte :?

patti 6. Nov 2009 16:39

Re: Das wohl beste Schlange der Welt
 
Zitat:

Zitat von p80286
hallo Patti,

nichts für ungut, Du hast's nicht verstanden,
Genau so sollte man's nicht machen.

Naja, dass das nicht ernst gemeint sein kann von jemandem, der über 11.000 Beiträge verfasst hat und dass es ein Beispiel sein soll, wie man es nicht machen soll, ist mir schon bewusst.

Ich frage mich nur, ob man seine Zeit vielleicht nicht NOCH sinnvoller nutzen könnte :gruebel: :mrgreen:

Frage: Wo sind denn bitte die 2561 Images? Selbst wenn ich für jedes Feld, das auf dem Screenshot zu sehen ist, 1 Image rechne, komme ich nur auf 640 Stück :gruebel:

Patti

himitsu 6. Nov 2009 16:42

Re: Das wohl beste Schlange der Welt
 
1 für den Hintergrund und dann sind nochmals je mehrer Images hintereinander/übereinander
(pro Bild/Feld Eines ... also aktuell je 4 Images)

blablab 6. Nov 2009 16:44

Re: Das wohl beste Schlange der Welt
 
Die Bestenliste fehlt, ganz wichtig! :)

Teekeks 6. Nov 2009 16:45

Re: Das wohl beste Schlange der Welt
 
Vermutlich ein paar übereinander --> jenachdem welches gesehen werden soll :)

Cooles Dings!

p80286 6. Nov 2009 16:51

Re: Das wohl beste Schlange der Welt
 
es war so grauslich, daß ich den Fehler 87 ganz übersehen hab.
war da WINEXEC schuld?

oder muß ich das selbst heraus finden?

Gruß
K-H

P.S. das schlimme ist ja das das Teil wirklich funktioniert, ein bißchen lahm auf der Tastatur, aber ES GEHT!

himitsu 6. Nov 2009 16:59

Re: Das wohl beste Schlange der Welt
 
Der 87-Fehler scheint nur in der "neueren" VCL zu liegen.
Diese gibt einfach nach so 500-1000 Objekten auf.
Man kann sich dann die Form nicht mehr ansehn, wobei Kompilieren dennoch geht, aber sobald die VCL ebenfalls im Programm die Form laden soll, dann ist der Fehler auch dort.

@p80286: ich war ehrlich gesagt auch sehr überrascht, daß es dennoch so gut läuft :shock:

Und das mit dem langsam Reagieren: Es wird jeweils die lezte Taste (pro Intervall) alle 100ms ausgewertet und es werden keine schnellen Tastenfolgen zwischengespeichert.
Soll es schneller reagieren, dann einfach die Zeit von Timer2 runtersetzen, aber dann ist auch die Schlange schneller. :)

[add]
Zitat:

Zitat von DeddyH
Das hab ich mir schon gedacht, ... :mrgreen:

und deswegen ist die Festerposition auch nicht fest ... damit es besser auffällt.

DeddyH 6. Nov 2009 16:59

Re: Das wohl beste Schlange der Welt
 
Zitat:

Zitat von himitsu
die Idee ist mir Aufgrund eines gewissen "Programm zurücksetzen"-Threads gekommen :)

Das hab ich mir schon gedacht, aber wir sollten ja da schon nicht nach dem Sinn fragen :mrgreen:

Mithrandir 6. Nov 2009 17:11

Re: Das wohl beste Schlange der Welt
 
Wat ne Freakshow... :lol:

Aber die Idee, ein Snake aus DP-Foren-Symbolen zu machen, finde ich irgendwie... lustig. :mrgreen:

DeddyH 6. Nov 2009 17:28

Re: Das wohl beste Schlange der Welt
 
Liste der Anhänge anzeigen (Anzahl: 1)
Dann will ich mal nicht zurückstecken und ein Musterbeispiel für leserlichen Code präsentieren. Das Programm ist natürlich noch ausbaufähig *g*.

himitsu 6. Nov 2009 17:45

Re: Das wohl beste Schlange der Welt
 
Wer schon immer Mal wissen wolltet, wie man mit Delphi Musik macht: :nerd:
Delphi-Quellcode:
uses Windows, Math;

procedure TForm1.FormCreate(Sender: TObject);
const
  C = 0/8;
  D = 1/8;
  E = 2/8;
  F = 3/8;
  G = 4/8;
  A = 5/8;
  B = 6/8;
  H = 7/8;
var
  T, O, L: Integer;
  X: Extended;
begin
  // PLAY "T160 O1 L8 C D E D C D L4 E C C"
  T := 160; {160}
  O := 1;
  L := 8;
  Beep(Round(4186 / Power(2, 6 - O)*2 + 4186 * C / Power(2, 6 - O)*2), Round((1000 / L) * (160 / T)));
  Beep(Round(4186 / Power(2, 6 - O)*2 + 4186 * D / Power(2, 6 - O)*2), Round((1000 / L) * (160 / T)));
  Beep(Round(4186 / Power(2, 6 - O)*2 + 4186 * E / Power(2, 6 - O)*2), Round((1000 / L) * (160 / T)));
  Beep(Round(4186 / Power(2, 6 - O)*2 + 4186 * D / Power(2, 6 - O)*2), Round((1000 / L) * (160 / T)));
  Beep(Round(4186 / Power(2, 6 - O)*2 + 4186 * C / Power(2, 6 - O)*2), Round((1000 / L) * (160 / T)));
  Beep(Round(4186 / Power(2, 6 - O)*2 + 4186 * D / Power(2, 6 - O)*2), Round((1000 / L) * (160 / T)));
  L := 4;
  Beep(Round(4186 / Power(2, 6 - O)*2 + 4186 * E / Power(2, 6 - O)*2), Round((1000 / L) * (160 / T)));
  Beep(Round(4186 / Power(2, 6 - O)*2 + 4186 * C / Power(2, 6 - O)*2), Round((1000 / L) * (160 / T)));
  Beep(Round(4186 / Power(2, 6 - O)*2 + 4186 * C / Power(2, 6 - O)*2), Round((1000 / L) * (160 / T)));

  Sleep(2500);

  // PLAY "T160 O1 >L20 C D E D C D L10 E C C"
  T := 160; {160}
  O := 1;
  L := 20;
  Beep(Round(4186 / Power(2, 6 - O)*2 + 4186 * C / Power(2, 6 - O)*2), Round((1000 / L) * (160 / T)));
  Beep(Round(4186 / Power(2, 6 - O)*2 + 4186 * D / Power(2, 6 - O)*2), Round((1000 / L) * (160 / T)));
  Beep(Round(4186 / Power(2, 6 - O)*2 + 4186 * E / Power(2, 6 - O)*2), Round((1000 / L) * (160 / T)));
  Beep(Round(4186 / Power(2, 6 - O)*2 + 4186 * D / Power(2, 6 - O)*2), Round((1000 / L) * (160 / T)));
  Beep(Round(4186 / Power(2, 6 - O)*2 + 4186 * C / Power(2, 6 - O)*2), Round((1000 / L) * (160 / T)));
  Beep(Round(4186 / Power(2, 6 - O)*2 + 4186 * D / Power(2, 6 - O)*2), Round((1000 / L) * (160 / T)));
  L := 10;
  Beep(Round(4186 / Power(2, 6 - O)*2 + 4186 * E / Power(2, 6 - O)*2), Round((1000 / L) * (160 / T)));
  Beep(Round(4186 / Power(2, 6 - O)*2 + 4186 * C / Power(2, 6 - O)*2), Round((1000 / L) * (160 / T)));
  Beep(Round(4186 / Power(2, 6 - O)*2 + 4186 * C / Power(2, 6 - O)*2), Round((1000 / L) * (160 / T)));

  Sleep(2500);

  // PLAY "O0 L16> C C C E"
  T := 160; {160}
  O := 0;
  L := 16;
  Beep(Round(4186 / Power(2, 6 - O)*2 + 4186 * C / Power(2, 6 - O)*2), Round((1000 / L) * (160 / T)));
  Beep(Round(4186 / Power(2, 6 - O)*2 + 4186 * C / Power(2, 6 - O)*2), Round((1000 / L) * (160 / T)));
  Beep(Round(4186 / Power(2, 6 - O)*2 + 4186 * C / Power(2, 6 - O)*2), Round((1000 / L) * (160 / T)));
  Beep(Round(4186 / Power(2, 6 - O)*2 + 4186 * E / Power(2, 6 - O)*2), Round((1000 / L) * (160 / T)));

  Sleep(2500);

  // PLAY "O0 L32 E F G E F D C"
  T := 160; {160}
  O := 0;
  L := 32;
  Beep(Round(4186 / Power(2, 6 - O)*2 + 4186 * E / Power(2, 6 - O)*2), Round((1000 / L) * (160 / T)));
  Beep(Round(4186 / Power(2, 6 - O)*2 + 4186 * F / Power(2, 6 - O)*2), Round((1000 / L) * (160 / T)));
  Beep(Round(4186 / Power(2, 6 - O)*2 + 4186 * G / Power(2, 6 - O)*2), Round((1000 / L) * (160 / T)));
  Beep(Round(4186 / Power(2, 6 - O)*2 + 4186 * E / Power(2, 6 - O)*2), Round((1000 / L) * (160 / T)));
  Beep(Round(4186 / Power(2, 6 - O)*2 + 4186 * F / Power(2, 6 - O)*2), Round((1000 / L) * (160 / T)));
  Beep(Round(4186 / Power(2, 6 - O)*2 + 4186 * D / Power(2, 6 - O)*2), Round((1000 / L) * (160 / T)));
  Beep(Round(4186 / Power(2, 6 - O)*2 + 4186 * C / Power(2, 6 - O)*2), Round((1000 / L) * (160 / T)));
end;

turboPASCAL 6. Nov 2009 17:54

Re: Das wohl beste Schlange der Welt
 
Liste der Anhänge anzeigen (Anzahl: 1)
Fehler, geht nicht! :nerd:

Matze 6. Nov 2009 17:57

Re: Das wohl beste Schlange der Welt
 
Du musst dir natürlich erstmal 'ne Power-Funktion schreiben (so 100 Zeilen lang oder sowas). :stupid:

DeddyH 6. Nov 2009 17:58

Re: Das wohl beste Schlange der Welt
 
Tja, hätte man gleich "Windows.Beep" geschrieben ^^, aber math steht ja da.

himitsu 6. Nov 2009 18:03

Re: Das wohl beste Schlange der Welt
 
so, der Sound ist nun eingebaut

und es wurde auch ein Fehler behoben
- wenn man "Wichtig" :lol: von links angerannt hatte, dann wurde man nicht länger.

außerdem wird man nun schneller länger und (weil es so einfacher war) wird die neue Länge erst verzögert hinzugefügt und zwar erst, wenn das Schwanzende da vorbeimacht, wo der Kopf zu diesem Zeitpunkt war.
(ist witzig, wenn der Schanz urplötzlich Mal kurz vor dir stehen bleibt :twisted: )

Zitat:

Zitat von DeddyH
Tja, hätte man gleich "Windows.Beep" geschrieben ^^

neeee, wäre ja zu einfach.

vielleicht erstell ich ja mal 'ne QBasic-Soundcollektion und mach 'ne Prozedur draus :-D

turboPASCAL 6. Nov 2009 18:04

Re: Das wohl beste Schlange der Welt
 
Zitat:

Zitat von DeddyH
Tja, hätte man gleich "Windows.Beep" geschrieben ^^, aber math steht ja da.

Und was mus ich da jtzt schrieben ?

:wiejetzt:

http://www.delphipraxis.net/images/common/divider.jpg

Zitat:

vielleicht erstell ich ja mal 'ne QBasic-Soundcollektion und mach 'ne Prozedur draus
Verflixt, ich tuh mich schon 'ne viertel Stunde daran versuchen.

:coder2:

DeddyH 6. Nov 2009 18:06

Re: Das wohl beste Schlange der Welt
 
Na, math in die uses-Liste und sicherheitshalber alle Beep durch Windows.Beep ersetzen. Ich kann mir allerdings kaum vorstellen, dass Du das nicht wissen willst.

himitsu 6. Nov 2009 18:07

Re: Das wohl beste Schlange der Welt
 
Dieses Beep ist nicht das Beep aus der SysUtils (welches eine Umleitung zu MessageBeep(0) ist), sondern das Beep aus der Windows.pas

Also Windows.Beep oder Windows hinter die SysUtils in die Uses hauen.


Ach ja: und der PC sollte einen Speaker haben (der kleine Lautsprecher im Gehäuse)
nicht so wie bei mir, welcher vorhin ausgeschaltet war :wall:

turboPASCAL 6. Nov 2009 18:15

Re: Das wohl beste Schlange der Welt
 
[spässchen]

Zitat:

Also Windows.Beep oder Windows hinter die SysUtils in die Uses hauen.
Ach, das versteh ich alles nicht.

Delphi-Quellcode:
uses
  SysUtils, Windows.Beep;
geht auch nicht!!!

:zwinker: :mrgreen:

[/spässchen]

DeddyH 6. Nov 2009 18:16

Re: Das wohl beste Schlange der Welt
 
:lol:

himitsu 6. Nov 2009 19:28

Re: Das wohl beste Schlange der Welt
 
Da wollte ich grade noch 'ne Ebene bzw. ein neues Feld einbauen und was ist?
Ab genau 2899 Images kann man selbst im guten alten Delphi 7 nichts mehr machen.

Es sind zwar alle 3200 Images in der Form, aber Speichern läßt sich nix mehr
und auch rauskopieren geht ebenfalls nicht,
denn dann kommt nur noch
Zitat:

---------------------------
Fehler
---------------------------
Leinwand/Bild erlaubt kein Zeichnen.
---------------------------
OK
---------------------------

bzw.

---------------------------
Fehler
---------------------------
Falscher Parameter.

---------------------------
OK
---------------------------

oder irgendwas vonwegen ungenügend Speicher oder so.

is ja voll gemein :cry:


In Delphi ist ja garnichts möglich ... vielleicht sollte ich doch zu C# wechseln :stupid:

Neutral General 6. Nov 2009 20:30

Re: Das wohl beste Schlange der Welt
 
Zitat:

In Delphi ist ja garnichts möglich ... vielleicht sollte ich doch zu C# wechseln :stupid:
Wieder mal ein Beweis, dass Delphi TOT ist!!!


:stupid:

isilive 6. Nov 2009 20:54

Re: Das wohl beste Schlange der Welt
 
Und ich wollte schon ernsthaft antworten nachdem ich die .exe gestartet habe, bis ich dann doch noch den Code angeschaut habe :stupid:

Fast 3000 Zeilen -> *RESPECT*

Und wenn ich mir die Beep Zeilen anschaue bekommt das Wort Redundanz eine ganz neue Bedeutung! :mrgreen:

himitsu 6. Nov 2009 21:17

Re: Das wohl beste Schlange der Welt
 
Zitat:

Zitat von isilive
Und ich wollte schon ernsthaft antworten nachdem ich die .exe gestartet habe, bis ... :stupid:
Fast 3000 Zeilen -> *RESPECT*

Es sind jetzt grade eben 3636 Zeilen geworden :stupid:

> kleines Update ... so alle 60 Sekunden taucht noch ein nettes [?] auf, welches nette sachen macht


Wobei 3000 Zeilen davon nur die Klassendefinition (das Interface) abfallen

Und wenn man den Code wirklich optimiert, dann sollte man bestimmt locker die 300 Zeilen unterschreiten können :)


ich editiere es oben dann gleich auch noch (es sind ja nun 4 Timer und 3102 Images, was fast das Maximum ist, was D7 noch schafft)

und 'ne nette 15 MB kleine DFM

isilive 6. Nov 2009 21:27

Re: Das wohl beste Schlange der Welt
 
Zitat:

Zitat von himitsu
Wobei 3000 Zeilen davon nur die Klassendefinition (das Interface) abfallen
Und wenn man den Code wirklich optimiert, dann sollte man bestimmt locker die 300 Zeilen unterschreiten können :)

Das wäre doch eine Idee für einen Contest -> WER kriegt dieses Programm in voller Funktionalität auf die wenigsten Zeilen Code...

(Oder alternativer Contest: Wer schreibt das coolste Snake Programm mit <= 300 Zeilen Code.)

Erinnert mich an die Scene-Contests mit 64kb-Intros.

Neutral General 6. Nov 2009 21:31

Re: Das wohl beste Schlange der Welt
 
Gewonnen! :stupid:

jfheins 6. Nov 2009 22:40

Re: Das wohl beste Schlange der Welt
 
Zu den Images: Ich hatte letztens ein C# Projekt im VS2008 wo ich versucht habe, 16 Buttons mit Bildern zu füttern. Ging nicht. Die letzten 5 gingen partout nicht rein (man konnte nicht mehr speichern wg. einer OutOfMemory-Exception) Es waren Bilder einer Digitalkamera, also zugegebenermaßen hochaufgelöst.
Ich musste die dann erst verkleinern bevor alles lief :roll:

Btw.: Die Bilder wurden base64-encodiert in einer XML-datei gespeichert ...

Aphton 7. Nov 2009 00:04

Re: Das wohl beste Schlange der Welt
 
Zitat:

Zitat von patti
Naja, dass das nicht ernst gemeint sein kann von jemandem, der über 11.000 Beiträge verfasst hat und dass es ein Beispiel sein soll, wie man es nicht machen soll, ist mir schon bewusst.

Muss nicht zwingend sein :roll:

Btw. Himitsu, du bist nicht damit gemeint.

MfG

RWarnecke 7. Nov 2009 06:50

Re: Das wohl beste Schlange der Welt
 
Himitsu, wenn das ein Beispiel sein soll, wie man es nicht macht, dann könntest Du ja dieses Beispiel nehmen und auch gleich zeigen, wie man es richtig macht, wenn Du schon so viel Zeit hast :zwinker: Was hälst Du davon ?

Teekeks 7. Nov 2009 09:07

Re: Das wohl beste Schlange der Welt
 
Aber das ist doch auch mal ne variante:
Man sucht im I-Net... "ahh, dieses Wort "if" kommt auch in dem unbeispiel vor, darf ich also nicht nehmen..."
:stupid: :stupid:

himitsu 7. Nov 2009 11:28

Re: Das wohl beste Schlange der Welt
 
Für die vielen IFs gibt es ja auch das CASE :stupid:


Sooooooooooo, jetzt gibt es 3 Versionen

0:
das originale "wie man es vielleicht nicht machen sollte"

1:
dort wurde(n)
- einige Variablennamen und Buttonbeschriftungen verständlichert
- die Groß-/Kleinschreigung verbessert
- Code-Duplikate entfernt und in eigene Funktionen/Prozeduren gekapselt
- der Inhalt vom häßlichen Label in die Titelleiste verschoben
- der Reset wird nicht mehr über einen kompletten Neustart erledigt

2:
ja und hier wurden dann noch viele der die zuvielen Images entfernt
und der Status der einzelnen Felder in einem Array gespeichert,
anstatt ihn aus der Sichbarkeit der jeweiligen Images zu generieren

3:
kommt vielleicht auch bald
hier würde dann vermutlich alles auf EIN Canvas umgestellt

Code:
.  DFM-     EXE-     PAS     PAS
    Größe   Größe   Größe   Zeilen

0:  15 MB  7,2 MB   93 KB  3636
1:  15 MB  7,1 MB  6,3 KB   247
2: 266 KB  589 KB  6,1 KB   250
3:   -        -       -          -
An der Funktionsweise des Programms wurde aber nichts verändert.
(abgesehn von dem Label, dem Reset und einer "besseren" Button-Steuerung aka SetFokus)

Codes in Beitrag #1 > Download

Man mag es nicht glauben, aber in der knapp 410 KB kleinen 7Zip sind unschlagbare 44 MB drinnen.
Das sollte wohl auch erkenntlich machen, daß selber die Komprimierungsprogramme der Meinung sind, daß da etwas leicht unoptimal gelaufen ist. :angel:


Und das Ganze zeigt, wohl, daß ein paar "kleine" Optimierungen
- kein doppelter/mehrfacher Code
- eine halbwegs ordentliche Codeformatierung
- und ein gesundes Maß an Optimierung
den gesamten Code wesentlich lesbarer und verständlicher machen. :angel:
Und es spart sogar Zeit und Nerven ... ihr glaubt nicht, wie anstrengend es war all diese Images dort reinzubekommen
und sich bei der Indizierung nicht ständig zu verzählen (im Programmcode).


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:34 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