geht auch etwas kürzer
Delphi-Quellcode:
while (m <> nil) and (Rec.dwMousePosition.X >= m.PaintInfo.Left) do begin
m := m.NextMenu;
i += 1;
end;
if m = nil then WriteLn('nil');
// oder
while Assigned(m) and (Rec.dwMousePosition.X >= m.PaintInfo.Left) do begin
m := m.NextMenu;
Inc(i);
end;
if not Assigned(m) then WriteLn('nil');
[edit]
sicher daß > so stimmt? hätte jetzt eher >= vermutet
denn sonst würde ich vermutten, daß das erste Zeichen eines Menüpunktes nicht mitgezählt wird