Thema: Delphi Case... else

Einzelnen Beitrag anzeigen

ToFaceTeKilla

Registriert seit: 17. Mai 2006
Ort: Leipzig
283 Beiträge
 
Delphi XE2 Professional
 
#9

Re: Case... else

  Alt 28. Apr 2009, 13:39
Man beachte das mrCancel, was ich gerade mal noch zum Testen hinzugefügt hab...
Delphi-Quellcode:
case TypeCompare(aImpObj, aCurObj) of
              2: blDoTblCheck := true;
              1: case MessageDlg( message, mtConfirmation, [mbYes,mbNo,mbCancel],0 ) of
                   mrNo: begin
                           aDeleteObj[aImpObjCount]:=1;
                           aActionProtocol.DoAddDBActionEventItem(customEvent);
                         end;
                   mrYes: begin
                           aImpObj.ID:= aCurObj.TypID;
                           blDoTblCheck:= TRUE;
                         end;
                   mrCancel : Exit; //hab ich testhalber mal hinzugefügt, wird auch ignoriert

                 else
                   exit; //wird ignoriert
                 end;
             else
                begin
                  aDeleteObj[aImpObjCount]:=1;
                  aActionProtocol.DoAddDBActionEventItem(customEvent);
                  blDoTblCheck:= false;
                  exit;
                end;
EDIT:
beim Klick auf Cancel springt er direkt in das else-Label der äußeren Case-Bedingung und zwar direkt auf exit, ohne die drei Anweisungen davor.

EDIT2:
Was mir noch aufgefallen ist, was dem Problem aber auch nicht abhilft, ist, dass die IDE(*) das else unterschiedlich einfärbt, je nachdem ob davor ein Semikolon steht oder nicht: mit Semikolon hat es die Farbe der Case-Bedingung und ohne die der begin...end eine Ebene tiefer bei mrYes usw.
*hab CN-Pack installiert, das färbt zusammengehörige Statements ein
Billy Gerwitz
"Bei der Softwareentwicklung suchen wir nicht den richtigen Weg, sondern den am wenigsten falschen." - frei nach V. Hillmann
  Mit Zitat antworten Zitat