Thema: Delphi if..then..else Konstrukt

Einzelnen Beitrag anzeigen

Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.186 Beiträge
 
Delphi 11 Alexandria
 
#1

if..then..else Konstrukt

  Alt 21. Jun 2022, 13:06
Delphi-Version: 11 Alexandria
Hi zusammen

Ich habe hier ein Demoprogramm mit einem für mich doch recht exotischen Konstrukt:
Delphi-Quellcode:
// SelectedIndex := XXX.CharacterIndexAtPos(X, Y, Tolerance, Tolerance);
// if (not Selecting) and (XXX.WebLinkAtPos(X, Y) <> -1) then
// XXX.Cursor := crHandPoint
// else if SelectedIndex >= 0 then
// XXX.Cursor := crIBeam
// else
// XXX.Cursor := crDefault;
{*  if Selecting then
    if SelectedIndex >= 0 then
    begin
      NeedRepaint := False;
      if SelectionStart = -1 then
      begin
        SelectionStart := SelectedIndex;
        NeedRepaint := True;
      end;
      if SelectionEnd <> SelectedIndex then
      begin
        SelectionEnd := SelectedIndex;
        NeedRepaint := True;
      end;
      if NeedRepaint then
        XXX.Invalidate;
    end; *}
Im ersten Teil ist das if..then..else-Konstrukt für mich eher gewöhnungsbedürftig, dürfte so aber durchaus möglich sein.
Etwas anders sieht es im zweiten, mit Klammern/Sternchen auskommentierten Teil aus. Die erste Zeile dieses Blocks beginnt mit einem einfachen if..then.
Daran schliessen sich mehrere if..then..begin..end einfache Blöcke an.

Wenn ich das so lese, müsste, wenn die 1. Zeile nicht zutrifft, die Prozedur beendet werden (beim nächsten, hier nicht gezeigten end). Aber was mich am meisten irritiert ist, dass nach der ersten if-Abfrage mehr als eine Zeile folgt (Folgen kann), die nur in Abhängigkeit dieser Abfrage(true) ausgeführt wird.

Wie seht ihr das?

Gruss
Delbor
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat