Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > de.comp.lang.delphi.misc > #19193

Re: array in array

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>

Show all headers | View raw


"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 | NextPrevious in thread | Next in thread | Find similar


Thread

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