Autor Beitrag
Nersgatt
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1581
Erhaltene Danke: 279


Delphi 10 Seattle Prof.
BeitragVerfasst: Di 16.09.14 10:48 
Moin,

beim lesen des Quelltextes von TDataSet bin ich auf folgenden Schnippsel gestoßen:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
  if Active then
    if ([csUpdating, csDesigning] * ComponentState) <> [] then
      Close else
      DatabaseError(SDataSetOpen, Self);


Kann mir jemand die markierte Zeile erklären? Ich denke, da wird geprüft, ob ComponentState csUpdating oder csDesigning ist. Aber warum mit dieser Multiplikation? Was passiert da intern?

Danke!

_________________
Gruß, Jens
Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du. (Mahatma Gandhi)
Gammatester
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 328
Erhaltene Danke: 101



BeitragVerfasst: Di 16.09.14 11:00 
Für Sets bedeutet * den Mengendurchschnitt (engl intersection), d.h. die Menge der Elemente die in beiden Mengen des Durchschnitts vorhanden sind.

Wenn csUpdating keine csDesigning Menge sondern Elemente sind, kann man Deine Bedingung auch als

(csUpdating in ComponentState) or (csDesigning in ComponentState)

schreiben.


Zuletzt bearbeitet von Gammatester am Di 16.09.14 11:04, insgesamt 2-mal bearbeitet

Für diesen Beitrag haben gedankt: Nersgatt
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6393
Erhaltene Danke: 147

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Di 16.09.14 11:03 
Es geht dabei um den Operator zur Bildung der Schnittmenge, wie user profile iconGammatester schon geschrieben hat.
Hier mal ein Link zu einer Übersicht.

Für diesen Beitrag haben gedankt: Nersgatt
WasWeißDennIch
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 653
Erhaltene Danke: 160



BeitragVerfasst: Di 16.09.14 11:03 

Für diesen Beitrag haben gedankt: Nersgatt
Nersgatt Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1581
Erhaltene Danke: 279


Delphi 10 Seattle Prof.
BeitragVerfasst: Di 16.09.14 11:07 
Danke. Man lernt doch immer noch dazu. :D

_________________
Gruß, Jens
Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du. (Mahatma Gandhi)