Jump to content

Кто-то делал ленту новостей - поделитесь опытом.


dbf_usr

Recommended Posts

9 hours ago, dbf_usr said:

Кто-то делал ленту новостей - поделитесь опытом.

Какие компоненты использовал и ваш опыт.

За ранее всем благодарен за ответы.

Добрый день,

Один из возможных решений.

Вы можете следовать этим шагам:

1. Использовать UniHTMLMemo, при инициализации (initialize) в head добавить свои стили.

2. Из базы данных вывести определенное количество записей (asc, desc и нужно запоминать "id").

3. В цикле использовать методы Lines.Insert, Lines.Add для вставки записей.

4. Нужно добавить scroll событие, и анализировать, в начало или в конец, и отправить запрос на сервер, что нужно вывести еще определенное количество записей.

5 -> 2. Мы ранее запоминали "id". Последующие запросы будут включать дополнительное условие id > :id 

Link to comment
Share on other sites

14 hours ago, Sherzod said:

Добрый день,

Один из возможных решений.

Вы можете следовать этим шагам:

1. Использовать UniHTMLMemo, при инициализации (initialize) в head добавить свои стили.

2. Из базы данных вывести определенное количество записей (asc, desc и нужно запоминать "id").

3. В цикле использовать методы Lines.Insert, Lines.Add для вставки записей.

4. Нужно добавить scroll событие, и анализировать, в начало или в конец, и отправить запрос на сервер, что нужно вывести еще определенное количество записей.

5 -> 2. Мы ранее запоминали "id". Последующие запросы будут включать дополнительное условие id > :id 

Очень благодарен за ответ. 

Подскажите, как можно из URL в UniHTMLMemo обратиться к процедуре или функции программы?

Link to comment
Share on other sites

Я использовал TunimDBListGrid + кучу костылей на базе шаблонизатора.

К сожалению, за несколько лет разработчики так и не создали что-то вроде  TunimListView с конструктором.

К сожалению, TunimDBListGrid не поддерживает бесконечную прокрутку и разработчики так и не реализовали ее.

Link to comment
Share on other sites

On 10/21/2021 at 7:36 AM, Sherzod said:

...

1. Использовать UniHTMLMemo, при инициализации (initialize) в head добавить свои стили.

...

Подскажите пожалуйста как именно нужно при инициализации добавить стили? В документации не нашел.

Link to comment
Share on other sites

57 minutes ago, Sherzod said:

Что не работает? Стили?

Попробуйте создать простой тестовый случай.

 

возможно я не правильно использую

function initialize(sender, eOpts)
{
  sender.iframeEl.dom.contentDocument.head.innerHTML += '<style> .box1 {background: #FFFFFF; width: 50%; box-shadow: 0.2px 0.3px 2px rgba(0,0,0,0.3);'+
    'padding: 10px; border-radius: 5px;}'+
    '.box2 { background: #FFFFFF; width: 46%; box-shadow: 0.2px 0.3px 2px rgba(0,0,0,0.3); '+
    'padding: 10px; border-radius: 5px; box-sizing: border-box; line-height: 0.3em; '+
    'margin-top: 0.1em; margin-bottom: 0.1em; height: 57px; } '+        
    '.mss {background: #0FC0FC; width: 50%; padding: 10px; border-radius: 7px;} '+ 
    '.round { float: left; margin-right: 10px; margin-bottom: 10px; width: 30px; height: 30px;'+  
    'object-fit: cover; border-radius: 100px; box-shadow: 0 0 0 0.1px grey, 0 0 2px #333; } </style> ';
 }

 

Link to comment
Share on other sites

1 minute ago, Sherzod said:

В консоле ошибок нет?

ошибок нет, просто отображается без стилей. Эту сроку я взял из примера 

sender.iframeEl.dom.contentDocument.head.innerHTML

но не уверен, что правильно

Link to comment
Share on other sites

48 minutes ago, dbf_usr said:

ошибок нет, просто отображается без стилей. Эту сроку я взял из примера 

sender.iframeEl.dom.contentDocument.head.innerHTML

но не уверен, что правильно

Тогда, если есть возможность, создайте простое приложение, проанализируем.

Link to comment
Share on other sites

Пример из работающего проекта, здесь включаем CSS файл:

      ClientEvents.ExtEvents.Values['initialize'] :=
        'function initialize(sender, eOpts)'+
        '{'+
        '    let doc = sender.iframeEl.dom.contentDocument;'+
        '    let body = doc.body;'+
        '    let head = doc.head;'+
        '    let link = document.createElement("link");'+
        '    link.rel = "stylesheet";'+
        '    link.type = "text/css";'+
        '    link.href = "files/YoutCSSFile.css";'+
        '    head.append(link);'+
        '}';

 

Link to comment
Share on other sites

On 10/23/2021 at 7:47 PM, Sherzod said:

Пример из работающего проекта, здесь включаем CSS файл:

      ClientEvents.ExtEvents.Values['initialize'] :=
        'function initialize(sender, eOpts)'+
        '{'+
        '    let doc = sender.iframeEl.dom.contentDocument;'+
        '    let body = doc.body;'+
        '    let head = doc.head;'+
        '    let link = document.createElement("link");'+
        '    link.rel = "stylesheet";'+
        '    link.type = "text/css";'+
        '    link.href = "files/YoutCSSFile.css";'+
        '    head.append(link);'+
        '}';

 

не работает

Link to comment
Share on other sites

10 hours ago, Sherzod said:

image.thumb.png.00215ed50f97d61f42fd438128a4c104.png

Стиль в исходнике есть, только работает не полностью. Цвет фона не применился, тени блоков не применились. Зато обрезалась по кругу картинка. Можно как-то добиться, что бы стили корректно применялись? И как отключить рамку в UniHTMLMemo, BorderStyle=ubsNon  - не работает, рамка по прежнему видна.

За ранее благодарен!

Link to comment
Share on other sites

  • 10 months later...
On 10/23/2021 at 2:14 PM, Sherzod said:

...

В примере:

with UniHTMLMemo1 do
  begin
    Lines.Add('<a href="javascript:window.parent.ajaxRequest(window.parent.'+JSName+', ''hrefClick'', [''hrefId=hrefId1''])">test</a>');
    ReadOnly := True;
  end;

есть переменная: JSName    Что она должна содержать? Где взять название скрипта?

За ранее благодарен за ответ!

 

Link to comment
Share on other sites

7 minutes ago, dbf_usr said:

есть переменная: JSName    Что она должна содержать?

Это свойство объекта (компоненты).

8 minutes ago, dbf_usr said:

Где взять название скрипта?

Уточните пожалуйста.

Link to comment
Share on other sites

1 hour ago, Sherzod said:

Это свойство объекта (компоненты).

Уточните пожалуйста.

Что нужно написать в строке 

Lines.Add('<a href="javascript:window.parent.ajaxRequest(window.parent.'+JSName+', ''hrefClick'', [''hrefId=hrefId1''])">test</a>');

вместо JSName ? Можно пример?

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...