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

Sergiy_83

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

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

  • Посещение

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

    2

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

  1. Всем привет.

    В моем приложении (клиент) по сети постоянно приходят данные небольшого объема, но как только дисплей смартфона гаснет и спустя некоторое время соединение разрывается.

    Я так понимаю ОС Android отправляет мое  приложение в спячку.  Использую классические сокеты :   socket, connect ...  (С++ Builder).

    Что делать?

    Всем спасибо.

  2. В 12.05.2018 в 17:02, Kapa сказал:

     Пишу первое приложение под андроид, 

    Мы с вами в одном окопе. Путь к ListView лежит через ListBox. т.e надо помучится с listbox что бы понять что без ListView не обойтись. 

    В чате как правило картинка и текст возможно не один. 

    lw01.png.5f3dac60ea9c2c5299f444e23b6633fa.png

    Создайте в ListView в режиме dinamicAppearance свои поля со своими именами, Далее ПКМ по listView выбираете TogleDesignMode там двигаете свои добавленные поля как вам удобно. 

    Далее смотрите код. Чем смог тем помог!

    //Добавить итем в список
    void __fastcall TTabbedForm::add_item(int num_ico,UnicodeString *fname, UnicodeString *ext_name, unsigned int color)
        {
        TListItemText  *ext;
        TListItemImage  *ico;
    
        TListViewItem* item = ListView1->Items->Add();
        item->Height = 30;
    
        ext = dynamic_cast<TListItemText*>(item->Objects->FindDrawable("extenssion_text"));
        if (ext)
            {
            ext->PlaceOffset->X = ListView1->Width -  60;
            ext->Text = *ext_name;
            ext->TextColor = color;
            }
        ext = dynamic_cast<TListItemText*>(item->Objects->FindDrawable("file_name_text"));
        if (ext)
            {
            ext->Text = *fname;
            ext->TextColor = color;
            if (num_ico==0)    ext->Width = ListView1->Width - 10;   //длина до расширения.
            else            ext->Width = ListView1->Width - 90;   //длина до расширения.
    
            }
        ico = dynamic_cast<TListItemImage*>(item->Objects->FindDrawable("Icon_Image"));
        if (ico)
            {
            switch (num_ico)
                {
                case 0: ico->Bitmap = Image_64x64_ret->Bitmap;         break;
                case 1: ico->Bitmap = Image_64x64_folder->Bitmap;     break;
                case 2:    ico->Bitmap = Image_48x48_spk->Bitmap;         break;
                case 3: ico->Bitmap = Image_64x64_play->Bitmap;     break;
                case 4: ico->Bitmap = Image_64x64_pause->Bitmap;     break;
                default:  break;
                }
            }
        }

     

  3. Сделал то что надо на основе progressbar, получилось еще красивее.

    Основа – rectangle, на ней progressbar у него HitTest = false и выравнивание по горизонтали. На rectangle повесил три события OnMouseDown, OnMouseMove и OnMouseLeave. У первых двух код устанавливает Value прогресбара в соответствии координатой пальца по оси X.  OnMouseLeave это основное действие которое выполняется после того как палец ушел за пределы или отрыв в любом месте. В моем случае это перемотка по файлу. Rectangle полезен когда progressbar узкий, для удобства использования. Цвет ему прозрачный, закруглить углы и получается довольно симпатичный контрЛ.

     

    time.png

  4. 2 минуты назад, Akad сказал:

    MouseUp контролла естественно не будет.  И я не о нём, а о форме.

    Ну почему не будет. Он и куча других событий есть если клацнуть пальцем справа или слева от ползунка. Толку от этого только мало.

    Не понимаю причем здесь форма. Форма большая мало ли когда я по ней клацну.

  5. В случае кнопки я еще понять могу. Типа я нажал, пожалел об этом, увел в сторону и отменил нажатие тем самым. Но трек бар узкий и это уже проблемы. Кстати когда происходит захват ползунка, он увеличивается в размерах,  двигается даже если палец за пределами и когда отпускаеш, ползунок опять уменьшается! А событие - фигушки.

  6. Дело наверное в том, что итемы в режиме мультиселект выделяются не простым тыканием по итемам. Под Windows, что бы выделить несколько, надо зажать левую кнопку мыши и протянуть. А как под android, черт его знает.

  7. В 4/10/2018 в 12:44, wamaco сказал:

    Использовать ListView

    ListView пока что для меня тёмный лес.

    В 4/10/2018 в 13:16, AlexG сказал:

    использовал не OnItemClick, а OnMouseDown

    Выделяете вы с помощью 

    LI.IsSelected := True;

    а снимаете выделение где? И как отключить встроенные события которые выделяют итемы? Спасибо.

  8. Всем привет.

    Иногда, особенно когда есть прокрутка списка можно случайно выделить несколько элементов ListBox-а. Ощущение, что чем больше загрузка приложения, тем чаще проявляет себя эта проблема. Бывает редко но жутко раздражает. Работоспособность программы не нарушается.

    Что делать? Может "костыли" какие возможно придумать? 

    Android.

  9. 29 минут назад, sinuke сказал:

    А можно задать обработчик OnItemClick у самого листбокса, и индекс узнавать например так:

     

    sinuke cпаcибо большое. Посмотреть события самого listbox-а не пришло в голову.

     OnItemClick у ListBox-а не очень подходит.В принципе работает так ка надо, но если выделить итем и палец увести не отрывая из области листбокса, то событие не наступает, хотя выбор нового итема фактически произошол.

    Помогло в моем случае OnMouseLeave листбокса. А у TListBoxItem OnMouseLeave тоже не наступает.

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