Ok, mit 14 Jahren muss Du noch nicht allzuviel Erfahrung haben
Das kommt schon mit der Zeit.
Was mich ein bisserl irritiert:
((Image1.Top=imagetop+(50*6)) or (Image1.Top=imagetop+(50*5)) or (Image1.Top=imagetop+(50*4)) or (Image1.Top=imagetop+(50*3)) or (Image1.Top=imagetop+(50*2)) or (Image1.Top=imagetop+(50*1)))) then
50 * 6 ist immer 300
50 * 5 ist immer 250
50 * 4 ist immer 200
50 * 3 ist immer 150
50 * 2 ist immer 100
50 * 1 ist immer 50
und
50 * 0 ist immer 0
Statt jedesmal rechnen zu lassen, schreib dort einfach jeweils die Ergebnisse hin. Spart (vermutlich) Rechenzeit (ein bisserl
) und macht den Quelltext lesbarer.
Kannst Dafür aber auch Konstanten definieren, die Du dann im ganzen Programm benutzen kannst. Sollte dann mal eine Änderung nötig sein, so musst Du nur die Konstanten ändern und nicht im ganzen Programm nach den Stellen im Quelltext suchen, in denen Du letztlich immer die gleichen Berechnungen vorgenommen hast. Sollte es also mal erforderlich sein, statt der 50 eine 60 zu nehmen, so kannst Du einfach Deine Konstanten ändern und musst nicht nach "tausenden" 50 im Programm suchen und sie durch 60 ersetzen.
Bei der
VCL immer de Standardnamen zu verwenden, kann man so machen. Das hab' ich mir aber längst abgewöhnt. Label heißen bei mir z. B. immer lbEineaussagekräftigeBezeichnung. Desgleichen für Edits, Buttons ...
Ich will halt beim Lesen des Quelltextes auch bei Controls der
VCL immer wissen, wofür sie da sind und nicht erst immer im Formular nachschauen müssen oder mir merken wofür Label1 ist, wofür Label2 ist. Spätestens wenn man mal in mehreren Programmen "unterwegs" ist, kann man sich die Standardnamen und ihren Verwendungszweck nicht mehr merken. Ist jetzt Label1 in diesem Programm für Aufgabe X oder war das in dem anderen Programm so und hier ist es für Aufgabe Y ...
Wenn die Labels aufhören sich zu bewegen, ist dann im Taskmanager noch zu sehen, ob das Programm arbeitet oder ist dort die CPU-Last niedrig.
Könnte es sein, dass bei den Berechnungen irgendwann ein Punkt erreicht ist, bei dem die Berechnungsergebnisse einfach nicht mehr zu einer Bewegung der Labels führen?