Danke für eure Antworten.
Menge1 und Menge2 kann in folgenden Konstellationen auftreten ("-" sind die einzelnen Einträge und "+" sind die ausgewählten Elemente).
Code:
Liste ----------
A ---+++---- M1
-+++++++-- M2
B ---+++---- M1
-++++----- M2
C ---+++---- M1
----++++-- M2
D ---+++---- M1
---+++---- M2
E ---+++---- M1
++-------- M2
F ---+++---- M1
-------++- M2
G ---+++---- M1
----+----- M2
Demnnach kann ich mit folgenden Überprüfungen feststellen, ob Überlappungen vorliegen (ist nur bsp Code).
Delphi-Quellcode:
Result:= false;
if M1.Index = M2.Index then
begin
// D
Result:= true;
end else begin
if M2.Index < M1.Index then
begin
// A, B, E
if (M2.Index + M2.Size) - 1 >= M1.Index then
begin
// A, B
Result:= true;
end;
// E
end else begin
if M2.Index > M1.Index then
begin
// C, F
if M2.Index <= (M1.Index + M1.Size) - 1 then
begin
// C
Result:= true;
end;
// F
end else begin
// G
Result:= true;
end;
end;
end;
Gibt es noch eine einfachere Möglichkeit das zu überprüfen?
Decken meine Überprüfungen alle Kombinationen ab?