Библиотека Scrollablepanel не найдена

Обновлено: 21.11.2024

Моя следующая проблема заключается в том, как сделать так, чтобы положение прокрутки было верхним или нижним?

У меня есть элемент GridView внутри панели прокрутки, и он может быть очень длинным. Одним из наших соглашений об интерфейсе является наличие кнопок, которые сразу же перемещают вас в верхнюю или нижнюю часть сетки. У меня есть код для изменения текущей выбранной строки GridView. Но мне не повезло с изменением положения прокрутки. Я попытался отобразить javascript в обработчиках onclick для двух кнопок, которые привели бы к тому, что сохраненная позиция прокрутки Y панели прокрутки была установлена ​​​​в соответствующую позицию прокрутки вверху или внизу (рассчитано), но позиция прокрутки не меняется. Кнопки определенно вызывают выполнение javascript, но по какой-то причине положение не меняется. Вот рендеринг javascript для прокрутки вверх:

функция ScrollToTop(me)
document.getElementById('WUCCodingWorklistPage_WUCNewItemsWorklist_pnlContainer').ScrollTop=0;
WUCCodingWorklistPage_WUCNewItemsWorklist_pnlContainerScrollToTop();
>

и вот соответствующий сгенерированный материал для pnlContainerScrollToTop():

input type='hidden' name='WUCCodingWorklistPage_WUCNewItemsWorklist_pnlContainerScrollTop' value='0'

функция WUCCodingWorklistPage_WUCNewItemsWorklist_pnlContainerScrollToTop()
document.getElementById('WUCCodingWorklistPage_WUCNewItemsWorklist_pnlContainerScrollY').value= document.getElementById('WUCCodingWorklistPage_WUCNewItemsWorklist_pnlContainerScrollTop').value;
>

По какой-то причине панель не прокручивается при ее вызове. Я пробовал это двумя способами. Один из способов (что мне нужно для работы) - это когда у меня есть обработчик на стороне клиента и обработчик на стороне сервера, чтобы щелкнуть нижнюю часть, чтобы перейти к верхней. Сначала выполняется обработчик на стороне клиента, а затем обработчик на стороне сервера, поэтому я ожидаю, что приведенный выше код javascript изменит положение прокрутки Y на 0 и сохранит его в скрытом поле, а затем, когда обработчик на стороне сервера завершится и страница вернется Я ожидаю, что это будет восстановленная позиция прокрутки. Поскольку это не сработало, я попытался удалить обработчик OnClick на стороне сервера, чтобы посмотреть, будет ли работать только прокрутка без участия вызова на стороне сервера, но он все еще не работает. Что-то в вышесказанном не приводит к изменению положения прокрутки, но я не понимаю, почему.

Возможно, кто-то из вас, кто пробовал и/или адаптировал это потрясающее решение с панелью прокрутки, поймет, почему я не могу заставить прокрутку вверх (или вниз), или, возможно, кто-то из вас сделал это и может предоставить решение, которое работает.

Ну, с первого взгляда на ваш код кажется, что функция ScrollToTop(me)
определяет и устанавливает свойство "ScrollTop" для панели, которое отличается от свойства "scrollTop" (помните, что javascript - это case чувствительно).

Звучит как отличная (легкая) потенциальная коррекция. Однако я уже опробовал некоторые изменения и применил их к новой версии. Все еще не работает.

Вот новый визуализированный код с изменением, которое все еще не работает. Если у вас есть еще идеи по этому поводу, я определенно приветствую это. (Основное отличие моего нового кода, в котором я исправил ссылку scrollTop, заключается в том, что теперь я более последовательно удостоверяюсь, что ClientID является частью любых имен, которые я генерирую для функций javascript и скрытых полей, поскольку у меня есть до 3 сеток в этих прокручиваемых панелях на на той же странице. Я также объединил свои подпрограммы ScrollToTop и ScrollToBottom в одну подпрограмму ScrollOffsetTop, которая берет смещение от верхнего края, до которого устанавливается положение прокрутки.)

функция traceWUCCodingWorklistPage_WUCNewItemsWorklist_pnlContainerScrollPosition()
document.getElementById('WUCCodingWorklistPage_WUCNewItemsWorklist_pnlContainerScrollY').value =
document.getElementById('WUCCodingWorklistPage_WUCNewItemsWorklist_pnlContainer').scrollTop;
>


function WUCCodingWorklistPage_WUCNewItemsWorklist_pnlContainerScrollOffsetTop(offset)
document.getElementById('WUCCodingWorklistPage_WUCNewItemsWorklist_pnlContainerScrollY').value =
document.getElementById('WUCCodingWorklistPage_WUCNewItemsWorklist_pn'lContainerScrollTop;
WUCCodingWorklistPage_WUCNewItemsWorklist_pnlContainer.scrollTop =
document.getElementById('WUCCodingWorklistPage_WUCNewItemsWorklist_pnlContainerScrollTop').value + offset;
>

Исправление найдено. Я чувствую себя довольно застенчиво.Где-то между временем, когда у меня был ошибочный ScollTop (а не scrollTop) и временем, когда я переписал код, как указано выше, я совершил ошибку, перейдя от добавления атрибута onclick к кнопкам к добавлению атрибута OnClientClick к кнопкам. Но, конечно, к тому времени, когда он отображается в html, OnClientClick действительно работает по клику, поэтому, конечно, я больше не нажимал на свой javascript. Исправлено, теперь все работает!

Просто для протокола: я увидел ваш последний пост, когда пытался опубликовать следующий код:

Однако при использовании StatefullScrollPanel в скрытом представлении в мультипредставлении возникают проблемы. Причина в том, что скрипт, созданный в событии OnLoad, добавляется на страницу, даже когда панель не будет видна (или не будет передана клиенту), поэтому вы получаете ошибки скрипта. Попробуйте добавить StatefullScrollPanel в каждое представление в мультипредставлении и просмотреть исходный код на веб-странице в клиенте.

Полагаю, вам следует вызвать сгенерированный скрипт из этой части кода:

После некоторого поиска я наткнулся на эту ссылку:

Ни один из них не работал, пока я не нашел ваше решение.

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

Возможно ли это в вашем решении?

Общие Новости Предложение Вопрос Ошибка Ответ Шутка Похвала Rant Admin

Используйте Ctrl+Влево/Вправо для переключения сообщений, Ctrl+Вверх/Вниз для переключения тем, Ctrl+Shift+Влево/Вправо для переключения страниц.

Похожие статьи:

Компоненты выпуска Delphi / FireMonkey, созданные во время выполнения [Изменить]
Здравствуйте, XE6, Win7 Правильно ли я думаю, что если я создаю компонент, такой как TImage, во время выполнения, Delphi автоматически освобождает память, когда программа закрывается. Я объявил это: im: TImage; как переменная TForm. Поместите это в .FormCreate: ReportMemoryLeaksOnShutdown := DebugHook <> 0; Это поднимает такие вещи, как TstrokeBrush, когда я не запускаю .Free; Затем я вставил это в: procedure TFrmScales.Button4Click(Sender: TObject); начать im := TImage.Create(self); im.Bitmap.Assign(I_note.Bitmap); // I_note — это TImage, который я поместил туда во время разработки im.Pa.

Создание объектов FireMonkey во время выполнения? [Изменить]
У меня возникают трудности с динамическим созданием объектов FMX во время выполнения. Приведенный ниже код компилируется, но ни один Circle не дает о себе знать на Form1 — благодарен за любые указания на то, где я ошибаюсь. (Я не использовал оператор 'with', так как я еще не знаком со всеми новыми свойствами FMX, поэтому я рад всей помощи, которую может предложить завершение кода!) var MyCircle: FMX.Objects.TCircle; // Я пробовал это и без 'FMX.Objects' begin MyCircle:=TCircle.Create(Form1); MyCircle.Width:=50; MyCircle.Height:=50; MyCircle.Position.X:=.

Firemonkey — XE 5 — Mac OS X Приложение Firemonkey HD
Мои приложения Firemonkey не имеют значка, когда они работают в доке. Что странно, так это то, что когда я перехожу в поисковике к пакету приложений в /Users/my_user_id/RADPAServer/scratch-dir, я вижу там значок, и если я открываю пакет приложений, он содержит файл .icns, который кажется действительным. . Но сам Finder в моем iMac под управлением OS X 10.8.5, похоже, отказывается отображать значок в доке. Обычный запуск пакета приложений (не через RADPASERVER) также приводит к повреждению значка. Обратите внимание, что если я сам создам значок с помощью приложения Icon Composer для OS X и вставлю его туда, он покажется действительным, но (а) по умолчанию.

FireMonkey в DLL
Все наши текущие программы запускаются как DLL - все они используют этот код в библиотеке DPR SpRules1; использует формы, окна, Unit1 в Unit1.pas; процедура Start(AppHandle: HWND); стандартный вызов; переменная Форма1: TForm1; начало Application.Handle := AppHandle; Form1 := TForm1.Create(Application); попробуйте Form1.ShowModal; наконец Form1.Release; Заявление.Ручка: = 0; конец; конец; экспорт Старт; начать конец. Я дошел до изменения использования на FMX.Forms, Winapi.Windows, и именно здесь я столкнулся с проблемами.

Как вы оцениваете свой опыт программирования для IOS в Delphi/Firemonkey [Edit]
Здравствуйте! Я проходил курс программирования IOS на Objective-C/Swift с xcode, и во время выполнения домашних заданий я пришел к выводу, что это очень привередливая среда, где очень часто что-то работает не так, как ожидалось, или всегда есть какой-то незначительный сбой пользовательского интерфейса, который необходимо исправить или найти обходные пути. Просто приведу несколько примеров (далеко не исчерпывающий список): UITableView не выравнивается по верхнему краю, когда вы используете навигационный контроллер; при выборе строки в UITableView некоторые кнопки в строке исчезают, пока строка выбрана; указание макета con.

Работает ли Firemonkey Delphi XE5 на современных планшетах Samsung? [Изменить]
Мне сказали, что Delphi XE5 с firemonkey не будет работать на текущей линейке планшетов Samsung, даже если они имеют Android 4, это правда? Если это так, я буду очень разочарован тем, что вложил тысячи фунтов стерлингов и несколько сотен часов, чтобы внедрить эту технологию в обещание, которое я теперь могу развернуть на мобильных устройствах Android. Когда я запускаю даже самое простое приложение Hello World, я просто получаю черный экран на своем новом планшете Samsung. Мне сказали, что он работает только на устройствах Android с процессором ARMv7, поддерживающим наборы инструкций NEON. Если это так, разработчики должны знать, что мне сказали сегодня .

Могу ли я создать пользовательскую форму Firemonkey с новыми свойствами? [Edit]
привет, я пытался создать пользовательскую форму firemonkey с новыми свойствами, но когда я компилирую и устанавливаю пакет и создаю свой собственный проект (он автоматически создает мою пользовательскую форму), форма не имеет новых свойств TMyForm = class(TForm ) частный FProp: String; опубликованное свойство Prop: String read FProp write FProp; конец; и мой блок пользовательских форм выглядит так: unit Unit1; интерфейс использует System.SysUtils, System.Types, System.UITypes, System.Rtti, System.Classes, System.Variants, FMX.Types, FMX.Controls, FMX.Dialogs.

Сенсорные жесты в приложении Firemonkey 3D Delphi XE3 MacOS [Изменить]
Здравствуйте! Я пытаюсь создать приложение MacOS Firemonkey 3D с включенными жестами, но не могу заставить его работать. Я могу поместить GestureManager в форму, но в объекте TForm3D нет свойства Touch. Затем я попытался создать TLayer3D с обычной TPanel, где я смог установить свойство Touch, но жесты не работали, хотя он фиксировал любые другие движения мыши. Затем я создал отдельную HD TForm с GestureManager и набором свойств Touch, который работал как отдельная форма, но когда я связал сенсорную TPanel на HD TForm с t.

Читайте также: