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

krapotkin

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

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

  • Посещение

  • Победитель дней

    209

Сообщения, опубликованные krapotkin

  1. по какому протоколу? голый TCP? 

    Передавать вы все равно будете скорее всего либо TStream либо TBytes.

    Если у вас есть TStream, то вам нужно его часть скопировать в другой TStream, и его отослать. Опять же в документации http://docwiki.embarcadero.com/Libraries/Sydney/en/System.Classes.TStream.CopyFrom

    То же самое можно сказать и насчет TBytes http://docwiki.embarcadero.com/Libraries/Sydney/en/System.Classes.TStream.ReadBuffer

    Играйтесь на здоровье. Но реализация собственного протокола обмена это всегда гораздо больший геморрой, чем например использование http

    Ну и конечно TStrings тут вообще никаким боком...

  2. Вы вообще не читаете? я и ссылку дал. LoadFromStream находится прямо рядом с LoadFromFile. Мы, надеюсь, о Stream говорим, когда имеем в виду "поток" ?

     

    И файл это никакие не строки бинарного кода. Это полная чушь.  Файл это просто сырые данные, набор байтов.

    А строки как таковые - это понятие, которое вводится специально, с описанием, что имеется в виду, в каком формате хранится, и как с этим работать.

    Так что нет. Совсем нет.

  3. ваш пример у меня вызывает вопрос - откуда у вас в jpg файле строки, которые вы так лихо загружаете в TStrings?

    и что вам мешает сделать просто S.LoadFromFile() ??

    более того, и SaveToFile тоже есть. Вполне полноценный

    ну и предполагается что оф справка должна быть изучена ДО вопросов на форуме

    http://docwiki.embarcadero.com/Libraries/Sydney/en/System.Classes.TStrings_Methods

  4. Судя по всему, вы используете версию Community Edition, в которой функциональность FireDAC урезана.

    Об этом нам и говорит сообщение "Клиент PosgreSQL - 32 бит ODBC. 64 бит FireDAC недоступен для Community Edition."

    Для взаимодействия с сервером вам нужна полная версия Rad Studio.

     

  5. А разве bmp вообще на Android поддерживается?? 

    Да и не нужны в этом приложении ресурсы как в Windows.

    Есть Deployment, это более современный способ помещения данных в проект.

     

    Кроме того, обращение к переменной класса Form1 в методе класса TForm1 - это ошибка.

    Перегружать рисование формы -FormPaint  тоже не из этого мира. Это все должно остаться в VCL / WinApi

     

    Давайте сначала начнем - что хотели сделать изначально?

  6. насколько я помню код - они там сначала прячутся, потом появляются. да еще и со сменой высоты. Я уже не помню подробности, но там было все абсолютно логично.

    В общем, опять копаться лень. Применяй хотя бы вариант 2 и все бует норм.

     

  7. тут есть всего два варианта)

    либо пользоваться тем что есть

    либо нет

     

    А отладчик в 10.3/4 и под Windows очень необычно себя ведет. Но вроде работает.

    P.S.

    Делфи и AS в очередной раз ставил и настраивал SDK/DK на чистом компе на прошлой неделе. Опять работает. Что-то я делаю не так.

     

  8. Зря)

    Все очень просто.

    Дано

    Rb1, Rb2. Align  = TOP, Visible = true

    Код Rb1.Visible := false; Rb1.Visible := true; приведет к очень интересному результату:

    Когда исчезнет rb1, rb2 подтянется на самый верх, т.е. RB2.position.Y станет = 0.

    Теперь rb1 появляется и position.Y у него не меньше чем у RB2. Следовательно, rb1 автоматически отодвинется вниз.

    Собсно, всё.

    Выходов из ситуации несколько

    1) "Нормальный": создавать RB или Layout c RB или фрейм по необходимости. И последовательно присваивая position.Y := 1000000 они сами будут подтягиваться наверх

    2) "И так сойдет": явно пробежать по видимым RB и расставить им Position.Y опять же 1000000 чтобы они подтянулись наверх в нужном порядке

    3) "Гибридный": всегда использовать RB по порядку. В первом - первый вопрос, во втором второй и т.д. Лишние снизу - прятать

  9. Общий сценарий для любых компонентов:

    Идем в его исходники и ищем метод ApplyStyle

    Там так или иначе перечисляются все названия стилей, которые компонент ищет в ресурсах и использует для своей отрисовки. Тут хочешь не хочешь, придется немного разобраться что для чего предназначено.

    Соответственно, далее идем в редактор стилей и эти ресурсы изменяем под свои нужды.

    Если компонент включает в себя другие компоненты (например listview содержит в себе набор listViewItem), то рекурсивно повторяем операцию и для вложенных компонентов.

    Если все еще не получилось, можно пойти наоборот, в предка данного объекта и посмотреть, а не задается ли нужное свойство в стилях предка.

     

    Вот такой алгоритм.

    Вам нужно найти, где задается фон для ListView и фон для ListViewItem. Попробуйте. Не выйдет, пишите сюда.

  10. самое простое (по мне лично) взять и положить на него новый объект типа крашеный прямоугольник.

    Свой класс объектов для listView можно создать аналогично тем, что есть в delphi, унаследовав от TDrawable

    https://www.youtube.com/watch?v=XRj3qjUjBlc

     

  11. нет. готовых компонентов, которые позволяют не держать в памяти полную модель данных, вы, скорее всего не найдете.

    ListView всего лишь не создает ненужные компоненты для каждого item, как это делает ListBox, но данные для своего отображения может запросить любые в любой момент. В принципе, это достаточная виртуализация imho

     

    Кроме того для десктопа пара тысяч элементов в ListView особых проблем обычно не вызывает

×
×
  • Создать...