Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#2

AW: "Sanduhr" Funktion / "Programm arbeitet"

  Alt 10. Sep 2018, 13:33
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 Delphi-Referenz durchsuchenIndexStr statt Pos.
LabelA.Caption := WorkChars[(IndexStr(LabelA.Caption, WorkStrings) + 1 + Length(WorkStrings)) mod Length(WorkStrings)];
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (10. Sep 2018 um 21:52 Uhr)
  Mit Zitat antworten Zitat