Was hat das
Application.ProcessMessages;
in der Schleife zu suchen?
Maximal einmal nach der Schleife, aber wer ProcessMessages fahrlässig "einfach" so iggendwo rein macht, der gehört gesteinigt.
Also maximal ein Repaint/Refresh wäre wirklich vertretbar.
(sorry, wenn es etwas böse klingt, aber nach 30 Jahren Misshandlung darf PM zurückschlagen)
Wieso ist die Zeichensatzkonstante "zeichen1" eine Variable?
Doppelter Code?
Delphi-Quellcode:
if i = length(zeichen1) then begin
labela.Caption := zeichen1[1];
end else begin
Kann weg, bei
Zitat:
for i := 1 to length(zeichen1) - 1 do begin
, denn
if nicht_vorhanden = 0 then begin
.
Ein Exit statt Break und die Variable nicht_vorhanden kann auch weg.
Denglisch? (englischer Funktionsname und deutsche Variablen ... warum nicht alles deutsch
ODER englichcs?)
Und dann lässt sich das ganze als Einzeiler auch mathematisch lösen.
Delphi-Quellcode:
procedure Working(LabelA: TLabel);
const
WorkChars = '░▒▓█'; // '1234' '←↑→↓' '░▒▓█' '◇◆' 'ᚋᚌᚍᚎᚏ' '|/-\'
begin
LabelA.Caption := WorkChars[(Pos(LabelA.Caption, WorkChars) + Length(WorkChars)) mod Length(WorkChars) + 1];
LabelA.Repaint;
end;
(falls ich mich jetzt nicht verrechnet hab)
Mit einem String-Array geht es auch, siehe
IndexStr statt Pos.
LabelA.Caption := WorkChars[(IndexStr(LabelA.Caption, WorkStrings) + 1 + Length(WorkStrings)) mod Length(WorkStrings)];