Bazaprogram.ru

Новости из мира ПК
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Argument out of range delphi

argument out of range

Вопросы

Равиль Зарипов (ZuBy) 2 082

Равиль Зарипов (ZuBy) 2 082

  • Продвинутый пользователь
  • Модераторы
  • 2 082
  • 2 517 сообщений
  • Город Алматы

Установил XE8, открыл проект собранный на XE7

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

а ошибка что в названии появилась откуда не ждал, есть TListView, заполняется динамически

если грузим 1 значение и тыкаем (выделяем) на последний или больший 2 itemindex

затем выполняем 2 значение, то выскакивает

т.е. получается ItemIndex или Selected Item не сбрасывается.

как эту ошибку исправить?

Поделиться сообщением

Ссылка на сообщение
Поделиться на другие сайты

11 ответов на этот вопрос

Рекомендуемые сообщения

Присоединяйтесь к обсуждению

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

Похожий контент

Я недавно или давно писал по поводу почему компилятор при разном наборе USES увеличивает время компиляции где-то от 4 до 10 раз. То есть проект может компилируются за 10 секунд, а при небольших манипуляциях с USES станет компилироваться 40 секунд и тд. Очень хорошо заметно на большом проекте у меня с 1 минуты 18 секунд выросло время компила до 1 часа 40 минут.
Ну хватит предыстории после анализа зависимостей и проверки логов обращения к файловой системе был выяснен интересный факт 🙂
У меня в проекте появился UNIT в котором глобальные методы для так сказать конфигурирования внешнего вида компонентов (компоненты тоже самописные) и получилось следующая ситуация:
1. В UNIT с формой лежит один из визуальных компонентов назовем его TXXX
2. соответственно в первом (interface секции) USES данного модуля прописывается автоматом модуль из зависимостей компонента
3. В нижнем (implementation секции) USES расположен UNIT с глобальными методами (назовем его UNIT XXX) для так сказать конфигурирования его (установка бордера и другой дичи)
4. В этом UNIT XXX (interface секции) USES также прописаны модули этих визуальных компонентов для передачи их в методы как параметры.
Так вот из-за такой ошибочной связи время компила увеличивается в разы и по анализу project dependency увеличивается с более менее приемлемых (по времени компиляции) 200 до 500.
Из сходя из этого начала рефакторинг всего кода и переводить компоненты на интерфейсы это сокращает project dependency проекта и неплохо так, перевод одного компонента который используется почти везде в проекте на интерфейс сократил с 200 до 190 и время компила начала сокращаться.
Сори за много букавок, но может кому будет интересно или кто с толкнулся с такой проблемой.

Читать еще:  Formatdatetime delphi пример

Так же в решении и анализе взаимосвязей помог эксперт MMX.

Приветствую. Имеется необходимость получить список всех видимых (GUI) компонентов, установленных в Delphi. Я видел где-то, что можно как-то попробовать через ToolsAPI это сделать, но ничего толкового на эту тему так и не нашел. Может есть у кого мысли по этому поводу?
Если возникнет вопрос: для чего тебе это?
Ответ: Для приложения LivePreview, которое идет вместе со студией для того, чтобы видеть то, что размещаю на форме непосредственно на устройстве.

Всем привет!
После долгого творческого запоя я запилил альфу либы, которая позволяет юзать обычный, не-генномодифицированный ListView.
Данные подаются в виде модели данных, описание раскладки итема лежит в JSON.

Для работы пишется примитивный наследник класса-адаптера, который биндит данные модели на элементы из JSON. Я решил, что руками делать это дешевле чем через RTTI
< TMyAdapter >procedure TMyAdapter.SetupDrawableContent(const ADrawable: TListItemDrawable; const AData: TMyData); begin if SameText( ADrawable.Name, ‘text’) then begin (ADrawable as TListItemText).Text := AData.Text; end else if SameText( ADrawable.Name, ‘detail’) then begin (ADrawable as TListItemText).Text := AData.Detail; end else if SameText( ADrawable.Name, ‘balance’) then begin (ADrawable as TListItemText).Text := FormatFloat(‘0.00’, AData.Balance); end else if SameText( ADrawable.Name, ‘reserved’) then begin (ADrawable as TListItemText).Text := FormatFloat(‘0.00’, AData.Reserved); end end; Главная хитрость и отличие от стандартного DynamicAppearance+LiveBinding — переменная высота итемов ListView и использование арифметики в описании раскладки.
Можно указать Detail.Y = Text.Bottom + 5, ItemHeight = Detail.Bottom + 10, Detail.W = ItemWidth/2 — X
<"Kind":"rect","Name":"BonusRect","Value":"", "Place":<"X":"itemwidth*3/4","Y":"Text.Y","W":"ItemWidth/4-5","H":"50">, «BorderColor»:»#FF005500″, «Color»:»lime», «LineWidth»:3>, <"TextHAlign":2,"TextVAlign":1,"Kind":"text","Name":"Balance","Value":"", "Place":<"X":"BonusRect.x+5","Y":"Text.Y","W":"BonusRect.w-10","H":"50">, «WordWrap»:true, «Color» :»Black», «Font»:<"Size":18,"Style":"">> ], «ItemHeight»:»detail.bottom+10″, Это дает довольно гибкую систему. Не на все случаи жизни, но все, что нужно, можно после автоматической раскладки дополнительно приписать в OnUpdateObjects
Код для работы примерно такой
procedure TForm1.FormCreate(Sender: TObject); begin data:= TMyDataList.CreateFromFile(ExePath()+’data.json’); // загрузка в модель данных Adapter := TMyAdapter.Create(lvWallets, data.Items, ExePath()+’pattern.json’); // создание адаптера и загрузка шаблона Adapter.Pattern.SetupListView(lvWallets); // задать отступы и разную мелочь Adapter.ResetView(); // здесь в цикле из модели данных создается нужное количество итемов ListView end; procedure TForm1.lvWalletsUpdatingObjects(const Sender: TObject; const AItem: TListViewItem; var AHandled: Boolean); begin Adapter.SetupContent(AItem); // загрузить текст, картинки и другое содержимое в элементы итема Adapter.Pattern.DoLayout(AItem); // поправить раскладку в соответствии с содержимым элементов итема end; Для использования кроме стандартных — текст, картинка, кнопка — создано несколько дополнительных элементов итема — прямоугольник, круг, уголок, линия.
Отличие от ModernLV — ,
1) все происходит без правки системных файлов
2) пока нет колонок и других особых изысков.
На результат работы смотреть тут. Исходники пока не причесаны, будут чуть позже

Читать еще:  Css относительный путь

Всем привет, вот и я решил внести свою лепту в жизнь форума и сегодня мы разберемся с разрешениями на Delphi Rio под Андроид.
Для примера мы будем использовать разрешения на чтение и запись с памяти устройства, для начала в нашем проекте выставим в Delphi>Project>Application>Uses Permissions галочки на Read External Storage и Write External Storage.
в uses проекта добавьте следующее
uses System.Permissions, Androidapi.Jni.Os, Androidapi.Helpers, далее создадим переменные
var Form: TForm; . FPermissionWrite: string; FPermissionRead: string; в Form.Create добавим следующий код
procedure TForm.FormCreate(Sender: TObject); begin FPermissionWrite := JStringToString(TJManifest_permission.Java > procedure TForm.Button1Click(Sender: TObject); begin PermissionsService.RequestPermissions ([FPermissionWrite, FPermissionRead], nil); end; //это вызовет окно с запросом разрешения прав ну и для проверки бросим на форму TMemo и пару TButton , в них реализуем сохранение и чтение из файла с памяти устройства
procedure TForm.Button1Click(Sender: TObject); begin Memo1.Lines.LoadFromFile(TPath.Combine(TPath.GetSharedDocumentsPath, ‘test.txt’)); end; procedure TForm.Button2Click(Sender: TObject); begin Memo1.Lines.SaveToFile(TPath.Combine(TPath.GetSharedDocumentsPath, ‘test.txt’)); end; P.S. Напоминаю что для работы TPath нам понадобится подключить в Uses
uses System.system.ioutils; Надеюсь материал будет полезен!

Доброго времени суток, возникло пару вопросов по поводу нового релиза студии, а конкретно Delphi 10.3 community:
1) В каком месте находится презентованный z-order для компонентов и как он работает?
2) Почему на inline объявление переменных ругается редактор кода, но при этом компилятор спокойно пережевывает и не давится?

Доброго дня!
Проясните пожалуйста ситуацию: при запуске программы под Андроидом на различных устройствах я получаю размеры формы, которые вроде всегда в разы меньше чем максимальное разрешение экрана конкретного устройства. Я пробовал планшеты и разные смартфоны. Написал тестовую прогу, которая выводит СlientScreen и ClientWidth формы, на которой ничего больше нет. Например для крайне бюджетного смартфона Fly FS-549 получилось 497 х 320, а по паспорту 854×480. Разрешение и так хреновое, а Delphi его еще сильнее уменьшает. — Почему это происходит и можно ли как то это обойти?

Читать еще:  Ява скрипт для скайпа

Последние посетители 0 пользователей онлайн

Ни одного зарегистрированного пользователя не просматривает данную страницу

Ссылка на основную публикацию
Adblock
detector