Перейти к содержанию
Fire Monkey от А до Я

NesDmitrijj

Пользователи
  • Постов

    19
  • Зарегистрирован

  • Посещение

Информация о NesDmitrijj

  • День рождения 13.06.1987

Информация

  • Пол
    Мужчина
  • Город
    Ростов-на-Дону

Посетители профиля

984 просмотра профиля
  1. Я имею ввиду отображение узких скролбаров по умолчанию. Т.е. они узкие всегда и не исчезают. А про AniCalculations я вкурсе )))).
  2. NesDmitrijj

    Узкий ScrollBar у TScrollBox

    Здравствуйте! Как реализовать узкие скролбары у TScrollBox по умолчанию. Помнится в XE3 было специальное свойство, но с появлением AniCalculations всё кудато пропало. Спасибо.
  3. Вы правы. Буду иметь ввиду. Спасибо. Но это те же танцы с бубном, что и расстановка Image'й по краям.
  4. К сожалению, там ответа не нашел. Мне приходится делать убирать границы формы, делать её прозрачной и накидывать Image'ы по краям формы с полупрозраными картинками. Но это приходится проделывать ля каждой формы, что утомительно. Вот я и решил, что этот вопрос можно решить на уровне стилей. Но к сожалению ничего не выходит. Похоже, что сначала ресуется черный Canvas, по верх которого рисуется стиль окна. И чем прозрачнее я делаю стиль окна, тем больше черный цвет проступает сквозь него. Способов отключения этого черного полотна так и не нашел(((
  5. Здравствуйте! Подскажите, как использовать прозрачность в стиле для firemonkey? В частности итересует как сделать границы формы полупрозрачными? В исходной картинке скина я прозрасность границ сделал. Но в работающй программе прозрасности нет. Такое ощущение, что скин рисуется поверх черного фона, и чем прозрачнее я делаю границы окна, тем темнее они в работающей программе.
  6. ОК. Сообщать о найденных ошибках больше не буду. В QualityCentral писать тоже не буду - не умею.
  7. Можно конечно не использовать переменную ReportMemoryLeaksOnShutdown, чтобы избежать первой проблемы, но вторая останется (просто о ней не будет сообщаться при закрытии).
  8. Здравствуйте! Обнаружил проблему (баг) в компоненте StyleBook. Точнее проблемы две: Баг №1: StyleBook не уживается с переменной ReportMemoryLeaksOnShutdown. Я использую эту переменную для того, чтобы отображать сообщения об утечках памяти при закрытии программы. Так вот, если эту переменную установить в True, то при закрытии программы возникает "Access violation...". Проблема возникает в модуле FMX.Platform.Win (см. прик. файл №1) Для воспроизведения проблемы достаточно: 1. Создать новый проект 2. Закинуть на форму компонент StyleBook. Указать в свойстве FileName путь к файлу стиля (*.style) 3. В проекте после Application.Initialize; вставить строку ReportMemoryLeaksOnShutdown := True; 4. Запустите выполнение программы и закройте её. Тут и возникнет "Access violation...". Примечание: проблема возникает только если свойство FileName заполнено. Баг №2: В StуleBook обнаружена утечка памяти (см. прик. файл №2) Для воспроизведения проблемы достаточно: 1. Создать новый проект 2. Закинуть на форму компонент StyleBook. Указать в свойстве FileName путь к файлу стиля (*.style) 3. Очистить свойство FileName 4. В проекте после Application.Initialize; вставить строку ReportMemoryLeaksOnShutdown := True; 5. Запустите выполнение программы и закройте её. Тут и возникнет сообщение об утечке памяти. Примечание: проблема возникает если единожды указать путь к файлу стиля и сохраняется даже после очистки свойства FileName. P.S. Эти проблемы как-то исправляются? Если нет, то сообщите, плз, разработчикам о этих багах.
  9. AlexG, Ваше сообщение "Только-что попробовал именно Ваш код - он дает один и тот же результат по скорости, не зависимо от того - сколько раз нажимать..." побудило меня продолжить эксперимент. В итоге выяснилось, что разница во времени отрисовки компонентов наблюдается только если запустить программу в режиме отладки (по F9). Если запустить программу без отладки (через проводник или shift+ctrl+f9), то ситуация в коре меняется. Мало того, что первое создание компонентов быстрее чем раньше (в режиме отладки), так все последующие пересоздания еще быстрее чем в первый раз, и, соответственно разницы во времени практически нет, сколько не пересоздавай. Так что вопрос можно считать решенным. Ответ: подобное поведение наблюдается только в режиме отладки.
  10. Эксперементальным путем было выявлено, что проблема в скорости отрисовки компонентов. Если у ScrollBox1 свойство Visible установить в False, то создание и пересоздание компонентов происходит примерно за одно и тоже время (в первый раз 47мс против 868мс, в последующие 60-63 мс против 1200-1700мс). Но это, повторюсь, если родительский компонент (ScrollBox1) не виден. может кто знает как ускорить отрисовку?
  11. AlexG, это FMX-проект. Данный пример набросан на скорую руку, чтобы желающие убедиться вооче в существовании проблемы, могли быстро вставить приведенный код у себя в проекте. Application.ProcessMessages используется для того, чтобы дождаться отрисовки компонентов, прежде чем зафиксировать время завершения и показать сообщение. >3. Для чего Вы используете BeginUpdate и, соответственно, EndUpdate? >Ведь в вашем случае они относятся к объекту Self, т.е. - к самой форме. Верно, к форме, конечно можно было и ScrollBox1.BeginUpdate, но форма сама вызываем BeginUpdate у ScrollBox1. >4. И самое главное. Простите за откровенность - как-то все очень "криво"... Все очень и очень НЕ "правильно" ) Согласен! Повторюсь, пример образный. Для бастрого достяжения требуемого эффекта. Вы во много правы, может время не совсем точно засекается, но главное другое, что при одних и тех же условиях время, засеченное одним и тем же способом, разное. В первый раз компоненты создаются и отрисовываются гораздо быстрее, чем в последующие. Разница во времени может отличься в 10 раз. Мне кажется это как-то связано с выделением памяти. Возможно нужно отключить/включить какой-то маркер, не знаю. Проблема сохраняется, даже если уничтожить форму целеком.
  12. Здравствуйте! Имею некую структуру типа record type TMyRecord = record Rect:TRectangle; Text:TLabel; end; и переменную m:array of TMyRecord; По нажатию на одну кнопку выполняю код procedure TForm1.Button1Click(Sender: TObject); var i:integer; t1,t2:TDateTime; L:TLabel; R:TRectangle; begin t1:=Now; SetLength(m,1000); BeginUpdate; for I := Low(m) to High(m) do begin R:=TRectangle.Create(ScrollBox1); R.Parent:=ScrollBox1; R.ClipChildren:=true; L:=TLabel.Create(R); L.Text:='Это строка №'+IntToStr(i); L.Parent:=R; m[i].Rect:=R; m[i].Text:=L; R:=nil; L:=nil; end; EndUpdate; Application.ProcessMessages; t2:=Now; ShowMessage('Начало в: '+DateTimeToStr(t1)+#13+ 'Завершение в: '+DateTimeToStr(t2)+#13+ 'Прошло:'+IntToStr(MilliSecondsBetween(t2,t1))+'мс'); end; по нажатию на вторую кнопку - очищаю procedure TForm1.Button2Click(Sender: TObject); var i:integer; begin for I := Low(m) to High(m) do begin m[i].Rect.Free; m[i].Rect:=nil; m[i].Text:=nil; end; SetLength(m,0); end; Вопрос: При первом нажатии на первую кнопку процесс может занимать 400мс, при втором нажатии (после очистки) 1200мс и так по возрастающей. Почему повторное создание всегда дольше первого? P.S. Приведенный код создан специально для примера (по аналогии с реально используемым). В реально мною используемом коде первое создание 300мс а последующие могут достигать и 3000мс (что в 10 раз дольше). Может чтото нужно сделать дополнительно после очистки?
  13. Здравствуйте! Использую следующий код: VertScrollBox1.AniCalculations.Animation := True; VertScrollBox1.AniCalculations.AutoShowing := True; Прокрутка выполняется по инерции, скроллбар виден во время прокрутки и после прокрутки плавно исчезает. Вопрос: Как сделать так, чтобы скроллбар не исчезал, если мышь над ним?
×
×
  • Создать...