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

krapotkin

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

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

  • Посещение

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

    209

Ответы сообщества

  1. Пост krapotkin - сообщение в Перехват события OnClick в динамическом массиве TBotton был отмечен как ответ   
    тут для новичка стоит сказать, что
    1) этот массив нужно бы делать полем формы
    2) приведенный кусок тоже должен находиться в методе этой формы
    3) тогда указание Form1. не нужно 
    4) присваивание метода OnClick без скобок!  
    MyButton[I].OnClick := MyOnClick; где MyOnClick это procedure TForm1.MyOnClick(Sender:TObject); 5) не обязательно, но ОБЫЧНО владельцем созданного объекта назначают не его родителя а саму форму или фрейм
    MyButton := TButton.Create(Self)
  2. Пост krapotkin - сообщение в Изменение ширины MultiView был отмечен как ответ   
    тема поднималась уже. нет, нельзя...
  3. Пост krapotkin - сообщение в ошибка при удаление ListViewItem был отмечен как ответ   
    нельзя удалять себя из обработчика себя
    нужно запустить
    TTask.Run(procedure begin TThread.Synchronize(procedure begin ваше действие с компонентом end) end);
  4. Пост krapotkin - сообщение в Зачем создается дополнительный файл формы был отмечен как ответ   
    это не случайные символы. и создаете вы его сами, когда НАСЛЕДУЕТЕ master-форму для конкретных платформ и разрешений
    http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Using_FireMonkey_Views
  5. Пост krapotkin - сообщение в Получить список элементов которые сейчас видны был отмечен как ответ   
    думаю, подойдет
    a:=lst1.ItemByPoint(10,0);
    b:=lst1.ItemByPoint(10,lst1.height);
     
  6. Пост krapotkin - сообщение в TDropTarget, пунктирная линия между компонентами, Windows был отмечен как ответ   
    вот. один компонент на форме. граница есть
    никто вас не заставляет использовать dropTarget но реализация перетаскивания из explorer полностью ляжет на вас, как и было раньше

  7. Пост krapotkin - сообщение в Почему у TPanel фон серый ? был отмечен как ответ   
    конечно от стиля
    в других стилях вовсе не серый
    в FMX панели не используются так же как в VCL. можно вместо панели использовать Rectangle если красить или Layout если прозрачный
  8. Пост krapotkin - сообщение в Проблемы с отрисовкой элементов формы был отмечен как ответ   
    когда нужен срочный ответ, пишите в телеграм-чат Fire-Monkey имени Равиля ZuBy
     
    frame.7z
  9. Пост krapotkin - сообщение в Кодировка строки. Delphi -> PHP Передача строки-кириллицы через IdHTTP1.Get был отмечен как ответ   
    предполагаю, что строка из делфи уходит в юникоде. хотя за инди не скажу точно. используйте THttpClient для определенности
    так что все преобразования - на стороне сервера
  10. Пост krapotkin - сообщение в Очистить очеред нажатий на кнопку был отмечен как ответ   
    вооот
    поэтому надо, чтобы из очереди сообщений они ушли...
    у вас логическая ошибка на слове "пауза". не стоит в обработчике делать паузу вообще. запустили таймер или поток, и вышли.
    все остальные клики не сработают, пока кнопка задизаблена, но события обработаются штатно
    потом таймер или поток вернет ее в enabled и все будет работать без всяких пауз
    вот то, что вам нужно (uses system.treading)
    procedure TForm1.b1Click(Sender: TObject); begin b1.Enabled := false; m1.Lines.Add('test'); TTask.Run( procedure begin sleep(2000); TThread.Synchronize(nil, procedure begin b1.Enabled := True; end); end); end;  
  11. Пост krapotkin - сообщение в Передать счетчик в событие был отмечен как ответ   
    tabbedwithnavigationform.button99.OnGesture это плохой стиль однако, когда мы привязываемся к какому-то конкретному элементу интерфейса
    то, что кнопка называется button99 - это плохой стиль, часть вторая
    а сам вопрос из букваря. в событие передается параметр Sender - это ссылка на тот компонент, у которого это событие произошло. Только тип нужно привести к настоящему...
    можно так
    procedure TForm1.ButtonClick(Sender:TObject); var b:TButton absolute Sender; begin showMessage('Нажата кнопка '+b.Name); end; end;
  12. Пост krapotkin - сообщение в TmapView отображение маркеров в радиусе был отмечен как ответ   
    тут проблема обозначена вовсе неверно
    карта - это лишь отображение информации. сколько маркеров вы на нее поместите, столько их там и будет
    соответственно, остается только выбрать из общего числа только те, что в радиусе R. Сделать это элементарно
    Их и отобразить
  13. Пост krapotkin - сообщение в Отладка Android приложения (и не только) был отмечен как ответ   
    Творчески. Под андроид отладчик страшенно крив кривоват. Не видит глобальные переменные, не видит длинные строки. Вместо объекта дает только адрес объекта, поля не посмотреть. Короче капец.
    Но приложение обычно вылетает по кривизне программы, не delphi
    Необработанные Exception - программа сразу вылетает. Под отладчиком чаще все-таки вылетает в отладчик.
    Способ отладки старинный. ShowMessage и запись логов в файлы.
    Есть логирование Log.D(...) с просмотром через monitor.exe из SDK. Но не очень удобно. пока что файловые логи мне дают больше.
  14. Пост krapotkin - сообщение в Маршалинг массива, в котором данные разных типов был отмечен как ответ   
    тут однозначно лучше всего просто разбор без FromJSON
    ибо RTTI хочет название поля, а его тут нет. XSuperJson такое не съест
  15. Пост krapotkin - сообщение в Как в DynamicAppearance режиме изменить текст в Footer и Header? был отмечен как ответ   
    так я же говорю, там в Custom режиме просто создаются ListItemText c именем T,D,B и т.д.
    в Dynamic смотрите на названия элементов, вы их сами создаете и они видны в окне Structure
    тем не менее, для Header и Footer создается элемент с именем Text и все работает так же как и раньше
    procedure TForm1.b1Click(Sender: TObject); begin lv1.Items[trunc(SpinBox1.Value)].Text := lv1.Items[trunc(SpinBox1.Value)].Text + '1'; end;
  16. Пост krapotkin - сообщение в OnUpdateObjects OnUpdatingObjects в Берлине был отмечен как ответ   
    Короче, нащупал линию поведения.
    поместил код в OnUpdatingObjects и поставил AHandled:=True;
    Срабатывает он теперь не при Items.Add, а при первом обращении к Item.Objects !
    Будьте внимательны
    P.S. ItemAppearance можно ставить любой
  17. Пост krapotkin - сообщение в Что выбрать VCL или FMX? был отмечен как ответ   
    http://www.fmxexpress.com/mix-vcl-and-firemonkey-forms-in-delphi-xe5-firemonkey-on-windows/
    и видео
  18. Пост krapotkin - сообщение в Как изменить родителя компонента в runtime? был отмечен как ответ   
    image1.parent := layout2
  19. Пост krapotkin - сообщение в Как увеличивать ListBoxItem в зависимости от количества текста? был отмечен как ответ   
  20. Пост krapotkin - сообщение в Подскажите как отобразить значение свойтсва StartupNotifications? был отмечен как ответ   
    procedure TStartForm.getAllNotfications; var   LNotification: TPushServiceNotification;   s:string;   ps:TPushService; begin   if AServiceConnection=NIL then     exit;   ps:=AServiceConnection.Service;   for LNotification in ps.StartupNotifications do   begin     s:=lNotification.Json.ToString; ///....   end;   TNotificationCenter.Create(nil).CancelAll; end;  
  21. Пост krapotkin - сообщение в [TAniIndicator] Почему у меня не виден TAniIndicator, помещенный в TListBox? был отмечен как ответ   
    а почему индикатор лежит в листбоксе? как он там покажется?
    может, он должен быть в listItem ?
  22. Пост krapotkin - сообщение в Как убрать родную подсветку блоков Begin - End в Delphi 10 Seattle был отмечен как ответ   
    Tools-Options-Editor options-Color-Structural highlightning
  23. Пост krapotkin - сообщение в [TidTCPClient] Как передать запись (record) через TidTCPClient? был отмечен как ответ   
    пересылать в виде JSON
    добавить в проект оба файлика отсюда
    uses XSuperObject; rec: TMyRecord; S: String;   //record to Json S := TSuperRecord<TTestRec>.AsJSON(rec); //Json to record rec := TSuperRecord<TTestRec>.FromJSON(JsonString);
  24. Пост krapotkin - сообщение в Числовая клавиатура в InputQuery был отмечен как ответ   
    Основная проблема, что я решал - приподнять окно над клавиатурой
    Ну и некая анимация
    пример использования
    procedure TUserProfile.InputPassOKHandler(Sender:TObject); var t: string; d:TMyInputQuery; begin d := Sender as TMyInputQuery; t:=apiObject.token; apiObject.OpenSessionPass(.........); if (ApiObject.lastError.code<>ERR_NO_ERROR)and(ApiObject.lastError.code<>ERR_SESSION_ALREADY_OPEN) then begin apiObject.token := t; ShowMessage('Неверный пароль'); exit; end; PersData[dfPassword] := d.Values[0]; SavePersData; reloadPersData; init; end; procedure TUserProfile.UpdateExistingUser; var d:TMyInputQuery; begin if PersData[dfPassword]='' then begin d:=TMyInputQuery.Create(['Для изменения данных введите пароль'],[''],self, InputPassOKHandler); try // тут можно все что угодно делать с Edit'ами на форме перед показом d.ShowModal(procedure (AResult:TModalResult) begin end ); finally freeandNil(d); end; end else begin SavePersData; reloadPersData; init; end; end; MyDialogs.7z
×
×
  • Создать...