GloThin

Тобольский шашлычник | Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору Опять дизайнер и опять свойство Align: 1.При наличии двух графических объектов и при выставлении свойства ALign в baLeft, объект, у которого вторым изменяется заданное свойство, становится не в крайнюю позицию слева, как должен, а в крайнюю левую позицию после первого объекта.Т.е.объекты выстраиваются друг за другом. 2. Такая же история при значениях ALign - baLeft у одного, baWidth у другого,в случае, если их плоскости перекрываются. 3. В случае из пункта 2, когда плоскости объектов не пересекаются замечена следующая странность - При перемещении одного из них, второй сам изменяет свою позицию и становится за перемещаемым. 4. Пункты 2 и 3 повторяются зеркально для варианта baRight и baWidth. В варианте baWidth и baBottom, кроме вышеперечисленного, замечено следующее: 5. Когда плоскости объектов не пересекаются, то все нормально, но стоит переместить объект со значением свойства baWidth,при пересечении плоскостей(второй объект прижат к любому краю страницы),перемещаемый объект,перемещается в позицию или до или после второго объекта(зависит от того к какому краю страницы прижат 2 объект) и в случае,когда размеры свободной от второго объекта меньше чем размеры перемещаемого, то он вообще изменяет свои размеры, чтобы поместиться в свободную область. 6. После того как в ситуации из пункта 5, объекты выстроились, если у объекта со значением свойства baBottom изменить горизонтальные размеры, то у другого тоже автоматически меняются размеры. 7. Если у одного из объектов выставить значение свойства baClient, а у другого - baLeft, то второй объект перемещается за края страницы и становится практически не виден. Если же второму выставить значение baWidth,то он автоматически сворачивается в вертикальную линию и перемещается к правому краю страницы. Добавлено: Вот небольшая модификация функции frxStrToFloat из frxUtils.pas (Позволяет корректно преобразовать строку, где больше одного сепаратора,т.е. исправляет неправильный ввод со стороны пользователя) function frxStrToFloat(s: String): Extended; var i,FirstDSPos: Integer; begin FirstDSPos := 0; for i := 1 to Length(s) do if s[i] in [',', '.'] then begin s[i] := DecimalSeparator; if FirstDSPos = 0 then FirstDSPos := i else s[i] := ' '; end; while Pos(' ', s) <> 0 do Delete(s, Pos(' ', s), 1); Result := StrToFloat(s); end;
---------- Все принципиальное-просто,а все простое-принципиально! На каждого мудреца достаточно простоты! Не изменишь существующее,не изменив себя!! |
|