Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > de.comp.lang.delphi.misc > #19193
| From | "Michael Landenberger" <spamwirdgefiltert@web.de> |
|---|---|
| Newsgroups | de.comp.lang.delphi.misc |
| Subject | Re: array in array |
| Date | 2022-02-22 15:44 +0100 |
| Message-ID | <sv2srj$1jlic$1@tota-refugium.de> (permalink) |
| References | (2 earlier) <j7c3k5Fg9c4U1@mid.individual.net> <suqmqa$1e8o1$1@solani.org> <j7c66rFgplpU1@mid.individual.net> <j7d43vFmd8oU1@mid.individual.net> <j7ev6hF2ikrU1@mid.individual.net> |
"Jens Kallup" schrieb am 20.02.2022 um 14:49:05: > viele ältere Programme - gerade von SHAREIT oder dergleichen wurden von > Kindern, Jugendlichen oder Krautern entwickelt, die schnelles Geld > machen wollten, dabei aber die Qualität der Programme vergessen haben. > Dann werden mal schnell alle Bitmap Bilder in die Ressourcen Datei > gestöpft (am besten noch 24-bit Bildtiefe), und dann wird sich gewundert > wenn der BlueScreen kommt (okay, in neueren Windosen ist das etwas > anders, dort stürzen die Programme ab, oder der Defender meldet dann > Trojaner-Einfall). Wie würdest du denn Bilder in einer .exe unterbringen? Ich meine Bilder, auf die das Programm angewiesen ist, wie z. B. Symbole oder Hintergründe. Ich habe mir eine Unit geschrieben, die Routinen zum Zeichnen häufig benötigter Symbole (z. B. für Dateioperationen wie Öffnen oder Speichern, für Clipboard-Operationen und andere häufig vorkommende Aktionen) enthalten. Die Routinen in der Unit ergänze ich dann um entsprechende Routinen, die programmspezifische Symbole zeichnen. Das Programm ruft diese Routinen einmalig beim Start auf und legt die erstellten Symbole dann im Speicher ab. Hinzu kommen Bilder, die ich für grafische Controls brauche, z. B. Diagramme und Koordinatensysteme. Auch die zeichnen meine Programme zur Laufzeit, wobei die dabei entstehenden Bildobjekte ebenfalls Speicherplatz belegen. Sowas beansprucht natürlich wenig Platz in der .exe, aber die fertig gezeichneten Grafiken belegen Platz im Arbeitsspeicher (manche sogar mehrfach, denn im Interesse einer flackerfreien Darstellung erstelle bzw. aktualisiere ich die Grafiken im Hintergrund und kopiere sie erst nach der Fertigstellung in eine andere Bitmap, die dann in einem Rutsch auf dem Bildschirm gezeichnet wird). Sowas geht aber eigentlich nur mit grafischen Symbolen. Bilder o. ä. lassen sich auf diese Weise kaum zur Laufzeit erstellen. Davon abgesehen, habe ich diese Vorgehensweise nicht gewählt, um die .exes klein zu halten, sondern damit das Programm beim Erstellen der Grafiken die Bildschirmauflösung berücksichtigen kann, so dass die Grafiken auf hochauflösenden Displays ungefähr gleich groß erscheinen wie auf niedriger auflösenden. Mittelfristig werde ich auf ein Verfahren umsteigen, das extern erstellte Vektorgrafiken im SVG-Format zeichnen kann. Aber auch die SVGs werde ich voraussichtlich nicht aus externen Dateien laden, sondern als Ressource ins Programm einbinden. Wartbar ist das ganze trotzdem, denn als Programmierer muss ich ja bei Änderungen an den Grafiken nicht an der .exe 'rumschrauben. Stattdessen editiere ich .svg- und .res-Dateien mit dafür jeweils vorgesehenen speziellen Editoren, was relativ unkompliziert ist. > Hobbyprogrammierer, die ihre Arbeit lieben, und Verständnis für den Code > und den Computer selbst haben, produzieren ganz anderen Code. > Der ist dann vielleicht auch Fehlerbehaftet. > Aber qualitativ höherwertig. Das ist so pauschal nicht richtig. Ein Profi, der seine Sache gut macht, produziert in der Regel hochwertigeren Code als ein Amateur, es sei denn, er wird z. B. durch Termindruck oder andere Widrigkeiten daran gehindert, seinen Job gut zu machen. Der Amateur hat in der Regel keinen Termindruck und kann schon deshalb mehr Sorgfalt walten lassen. Nutzt aber nicht viel, wenn ihm dafür die Fähigkeiten und Kenntnisse des Profis fehlen. Davon abgesehen, ist Fehlerfreiheit nur eine der Anforderungen an ein Programm. Andere Anforderungen wären z. B. Performance oder intuitive Benutzbarkeit (samt der Notwendigkeit zum Entwurf einer ausgeklügelten Benutzeroberfläche). Auch auf diesem Gebiet sind Profis den Amateuren häufig überlegen. Ausnahmen bestätigen natürlich wie immer die Regel. > wie Du schon bemerkt hast, habe ich ein Programm, das an mehreren > Stellen wiederkehrende Arbeiten und Code verursacht. > Um dies zu vermeiden, und das Warten des Programmcodes so niedrig wie > möglich zu halten, habe ich records aufgebaut, die dann in einer > Schleife abgearbeitet werden. Damit hast du aber nicht das Programm in Records ausgelagert, sondern nur die Daten, mit denen das Programm arbeiten soll. Das ist aber keine sonderlich exotische Vorgehensweise. Gruß Michael
Back to de.comp.lang.delphi.misc | Previous | Next — Previous in thread | Next in thread | Find similar
array in array Jens Kallup <kallup.jens@web.de> - 2022-02-19 11:24 +0100
Re: array in array stefan <adresse@ist.invalid> - 2022-02-19 11:53 +0100
Re: array in array Jens Kallup <kallup.jens@web.de> - 2022-02-19 12:46 +0100
Re: array in array stefan <adresse@ist.invalid> - 2022-02-19 13:11 +0100
Re: array in array Jens Kallup <kallup.jens@web.de> - 2022-02-19 13:30 +0100
Re: array in array stefan <adresse@ist.invalid> - 2022-02-19 16:37 +0100
Re: array in array Jens Kallup <kallup.jens@web.de> - 2022-02-19 20:01 +0100
Re: array in array stefan <adresse@ist.invalid> - 2022-02-20 11:22 +0100
Re: array in array Jens Kallup <kallup.jens@web.de> - 2022-02-20 15:19 +0100
Re: array in array Alfred Gemsa <gemsa@gmx.de> - 2022-02-19 22:00 +0100
Re: array in array Jens Kallup <kallup.jens@web.de> - 2022-02-20 14:49 +0100
Re: array in array "Michael Landenberger" <spamwirdgefiltert@web.de> - 2022-02-22 15:44 +0100
Re: array in array Jens Kallup <kallup.jens@web.de> - 2022-02-22 16:31 +0100
Re: array in array "Michael Landenberger" <spamwirdgefiltert@web.de> - 2022-02-19 21:10 +0100
csiph-web