OberonCore https://forum.oberoncore.ru/ |
|
Facepalm https://forum.oberoncore.ru/viewtopic.php?f=27&t=2543 |
Страница 1 из 1 |
Автор: | Александр Ильин [ Пятница, 09 Апрель, 2010 12:59 ] |
Заголовок сообщения: | Facepalm |
http://lurkmore.ru/Facepalm Код: LOOP
IF (tmp = NIL) OR (w.lastLineY > w.client.wy) THEN IF last # NIL THEN last.next := NIL END; WHILE tmp # NIL DO tmp.Dispose; tmp := tmp.next END; IF ~before OR (li = NIL) THEN EXIT END; tmp := w.firstLine; w.firstLine := li; li.next := tmp; w.highlight := li; li.ItemExtent (li.height); DEC (d, li.height); w.Validate (li); InitScan; prev := NIL; chg := TRUE; ELSE oldSz := tmp.height; tmp.ItemExtent (tmp.height); INC (w.lastLineY, tmp.height); IF oldSz # tmp.height THEN tmp.Update END; IF tmp = li THEN before := FALSE; bot := w.lastLineY; w.highlight := li END; last := tmp; tmp := tmp.next; END; (* if last line *) END; (* loop *) |
Автор: | Александр Ильин [ Понедельник, 12 Апрель, 2010 06:31 ] |
Заголовок сообщения: | Re: Facepalm |
viewtopic.php?p=45845#p45845 |
Автор: | Александр Ильин [ Понедельник, 12 Апрель, 2010 06:56 ] |
Заголовок сообщения: | Re: Facepalm |
Сравним: Код: li := w.firstLine; LOOP IF li = NIL THEN EXIT ELSIF y1 + li.height >= y THEN RETURN TRUE END; INC (y1, li.height); li := li.next; END; RETURN FALSE Код: li := w.firstLine;
WHILE (li # NIL) & ~(y1 + li.height >= y) DO INC (y1, li.height); li := li.next; END; RETURN li # NIL |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |