• Как поднять Controls.TextBox над RectangleWPF?

    Lapita12
    @Lapita12
    Тебе нужно использовать свойство ZIndex2. Чем больше значение ZIndex у элемента, тем выше он будет расположен относительно других элементов.

    uses  GraphWPF,  WPFObjects,  Controls;  
    begin  
      Window.Width := 640;  
      Window.Height := 480;  
      var r := new RectangleWPF (0.0, 0.0, 640.0, 480.0); // создаем прямоугольник
      r.Color := RGB (0, 0, 0); // задаем ему цвет
      r.ZIndex := -1; // задаем ему ZIndex равный -1
      var t := TextBox (''); // создаем TextBox
      t.ZIndex := 1; // задаем ему ZIndex равный 1
    end.
  • Как решить отображение NFTShape для NFT с превью в формате SVG?

    Lapita12
    @Lapita12
    Александр, Это не Chatgpt и даже не пытайтесь мне это доказать.
    Лично мне лучше знать, и я не использую это средство везде.
    А этот аккаунт создан с целью тестов.
  • Как объединить два javaскрипта?

    Lapita12
    @Lapita12
    Максим, Вы сами то пытались?
    Вы даже толком мне ошибку не пишете которую выдаёт, только задание "Сделать" здесь такое запрещено.

    Обо­значь­те цель что в конечном итоге вы хотите получить?
    Я не экстрасенс
  • Как объединить два javaскрипта?

    Lapita12
    @Lapita12
    Максим,

    const targetNavbar = document.querySelector('.targetNavbar');
    const fixedNavbar = document.querySelector('.fixedNavbar');
    const obFixedNavbar = new IntersectionObserver(obCallback);
    
    function obCallback(payload) {
      if (payload[0].boundingClientRect.y < 0) {
        document.querySelector('.class1').style.marginBottom
    = fixedNavbar.offsetHeight + 'px';
        fixedNavbar.classList.add('class2');
      } else {
        fixedNavbar.classList.remove('class2');
        document.querySelector('.class1').style.marginBottom = '0';
      }
    }
    obFixedNavbar.observe(targetNavbar);
    
    window.addEventListener('resize', () => {
      obFixedNavbar.disconnect()
    ;
      obFixedNavbar.observe(targetNavbar);
    });
  • Bot.wait_for не работает, почему?

    Lapita12
    @Lapita12
    Потому что отправляете сообщение с кнопками после ожидания метода wait_for().
    await interaction.response.send_message("Выберите комнату:", view=room_view)
    button_click = await bot.wait_for("button_click")
  • Как правильно использовать dispatch в useEffect?

    Lapita12
    @Lapita12
    kfedor,

    Попробуй заменить
    => {
     dispatch(setCanvas(canvasRef.current));
      dispatch(setTool(new Brush(canvas)));
      console.log('canvas from board', canvas);
      console.log('tool', tool);
    }, [dispatch]);


    На
    => {
      dispatch(setCanvas(canvasRef.current));
    }, [dispatch, canvasRef.current]);
    
    useEffect(() => {
      dispatch(setTool(new Brush(canvas)));
    }, [dispatch, canvas]);


    Ещё добавь в коде это:
    canvas = useSelector((state) => state.canvas.canvas || {});
    const tool = useSelector((state) => state.tool || {});
  • Как правильно использовать dispatch в useEffect?

    Lapita12
    @Lapita12
    import React, { useRef, useEffect } from 'react';
    import './Board.scss';
    import { useSelector, useDispatch } from 'react-redux';
    import { setCanvas } from '../../store/canvasSlice';
    import { setTool } from '../../store/toolSlice';
    import Brush from '../../tools/Brush';
    
    export const Board = () => {
      const canvasRef = useRef();
      const canvas = useSelector((state) => state.canvas.canvas);
      const tool = useSelector((state) => state.tool);
      const dispatch = useDispatch();
      
      useEffect(() => {
        dispatch(setCanvas(canvasRef.current));
        dispatch(setTool(new Brush(canvas)));
      }, [canvas, dispatch, tool]);
    
      return <canvas ref={canvasRef} className='board' width={1920} height={1080}></canvas>;
    };
  • Как сделать так чтобы python скрипт создавал txt файл на ubuntu в директории где он находиться?

    Lapita12
    @Lapita12
    Zzzz9,
    Да, вы правы, в данном случае использование пути со значением root может ограничить доступ к файлу. Более правильным решением было бы использовать другого пользователя, который имеет права на чтение и запись в эту директорию. Например, можно создать нового пользователя и изменить владельца директории, где хранятся файлы, на этого пользователя.

    Или использовать директорию с правами, доступными для пользователя, запускающего веб-сервер. В любом случае, для безопасности и удобства управления файловой системой, рекомендуется использовать ограниченный пользовательский аккаунт вместо root.
  • Не работает clearInterval в javascript?

    Lapita12
    @Lapita12
    Проблема в том, что переменная id не объявляется внутри функции remove() и не передается в функцию clearInterval(), поэтому clearInterval(id) не срабатывает. Также, если j станет больше 22, то функция remove() может быть вызвана повторно, и снова будет создан новый интервал, который может перекрыть старый.

    Вот исправленный код:
    var j = 1;
    var id = setInterval(remove, 100); 
    
    function remove() { 
        $('.i-am-os[data-id="' + j + '"]').animate({ 
            opacity: '0', 
            color: '#00000000' 
        }, 100, function () { 
            $(this).remove() 
        }); 
        j++; 
        if (j > 22) { 
            clearInterval(id); 
        } 
    }


    В этом коде переменная id объявляется сразу после переменной j и устанавливается интервал вызова функции remove() с интервалом в 100 миллисекунд. Внутри функции remove(), перед вызовом clearInterval(id), проверяется значение переменной j. Если j больше 22, то остановка интервала происходит.
  • Как сделать так чтобы python скрипт создавал txt файл на ubuntu в директории где он находиться?

    Lapita12
    @Lapita12
    Добрый вечер! Да, можно задать путь к файлу явно в скрипте. В данном случае вы можете использовать абсолютный путь до директории, в которой скрипт находится. Например, если скрипт находится в директории /var/www/html, то вы можете указать путь к файлу file.txt так:
    with open("/var/www/html/file.txt", "a") as f: 
        f.write("123")


    Таким образом, файл будет создан именно в той директории, которая вам нужна. При этом вам не нужно будет выполнять команду cd каждый раз перед запуском скрипта
  • Как копировать ReadOnlySpan со смещением?

    Lapita12
    @Lapita12
    @Drottarutarnum
    Для копирования данных из ReadOnlySpan в массив можно использовать метод TryCopyTo(destination.Slice(startIndex)), который позволяет скопировать данные из ReadOnlySpan в указанное место в целевом массиве, начиная с индекса startIndex. Если целевой массив не имеет достаточного размера для копирования, TryCopyTo вернет false, в противном случае - true
    Важно перед копированием убедиться, что размер целевого массива достаточен для хранения копируемых данных.
  • Как отправить новый пост во все беседы бота?

    Lapita12
    @Lapita12
    liss48,

    from vkbottle import GroupEventType, Message
    from vkbottle.bot import Bot
    
    # replace GROUP_CHAT_ID with the ID of your group chat
    GROUP_CHAT_ID = 123456789
    
    bot = Bot("TOKEN")
    
    @bot.on.message_handler(GroupEventType.WALL_POST_NEW)
    async def wall_post_new(message: Message):
        try:
            await bot.api.messages.send(
                peer_id=-GROUP_CHAT_ID,  # use negative group chat ID to indicate a group chat
                message="Новый пост!",
                random_id=0,
                attachment=f"wall-{message.group_id}_{message.object.id}"
            )
        except Exception as ex:
            print(f"error: {ex}")
  • Как отправить новый пост во все беседы бота?

    Lapita12
    @Lapita12
    liss48,
    from vkbottle import GroupEventType, Message
    from vkbottle.bot import Bot
    
    @bot.on.message_handler(GroupEventType.WALL_POST_NEW)
    async def wall_post_new(message: Message):
        conversations = await bot.api.messages.get_conversations(peer_types=["chat"])
        for conv in conversations:
            peer_id = conv.peer.id  # access the 'id' attribute of the 'peer' object
            try:
                await bot.api.messages.send(
                    peer_id=peer_id,
                    message='Новый пост!',
                    random_id=0,
                    attachment=f'wall-{message.group_id}_{message.object.id}'
                )
            except Exception as ex:
                print(f'error: {ex}')
  • Как отправить новый пост во все беседы бота?

    Lapita12
    @Lapita12
    liss48,

    from vkbottle import GroupEventType, Message
    
    @bot.on.message_handler(GroupEventType.WALL_POST_NEW)
    async def wall_post_new(message: Message):
        conversations = await bot.api.messages.get_conversations(peer_types=["chat"])
        for conv in conversations.items:
            peer_id = conv.peer.id  # access the 'id' attribute of the 'peer' object
            try:
                await bot.api.messages.send(
                    peer_id=peer_id,
                    message='Новый пост!',
                    random_id=0,
                    attachment=f'wall-{event.group_id}_{event.object.id}'
                )
            except Exception as ex:
                print(f'error: {ex}')
  • Как отправить новый пост во все беседы бота?

    Lapita12
    @Lapita12
    liss48,

    from vkbottle import GroupEventType, Message
    
    @bot.on.message_handler(GroupEventType.WALL_POST_NEW)
    async def wall_post_new(message: Message):
        conversations = await bot.api.messages.get_conversations(peer_types=["chat"])
        for conv in conversations.items:
            peer_id = conv.peer_id
            try:
                await bot.api.messages.send(
                    peer_id=peer_id,
                    message='Новый пост!',
                    random_id=0,
                    attachment=f'wall-{event.group_id}_{event.object.id}'
                )
            except Exception as ex:
                print(f'error: {ex}')
  • Как отправить новый пост во все беседы бота?

    Lapita12
    @Lapita12
    liss48,

    from vkbottle import GroupEventType, Message
    
    @bot.on.message_handler(GroupEventType.WALL_POST_NEW)
    async def wall_post_new(message: Message):
        conversations = await bot.api.messages.get_conversations(peer_types=["chat"])
        for conv in conversations.items:
            peer_id = conv.peer.id
            try:
                await bot.api.messages.send(
                    peer_id=peer_id,
                    message='Новый пост!',
                    random_id=0,
                    attachment=f'wall-{event.group_id}_{event.object.id}'
                )
            except Exception as ex:
                print(f'error: {ex}')
  • Как отправить новый пост во все беседы бота?

    Lapita12
    @Lapita12
    conversations_response = await bot.api.messages.getConversations(filter='all')
    conversations = conversations_response.items
    
    for conversation in conversations:
        peer_id = conversation.peer.id
        try:
            await bot.api.messages.send(
                peer_id=peer_id,
                message='Новый пост!',
                random_id=0,
                attachment=f'wall-{event.group_id}_{event.object.id}'
            )
        except Exception as ex:
            print(f'error: {ex}')
  • Как отправить новый пост во все беседы бота?

    Lapita12
    @Lapita12
    liss48,
    import vk_api
    
    # авторизация бота
    vk_session = vk_api.VkApi(token='токен_бота')
    vk = vk_session.get_api()
    
    # получение списка всех бесед бота
    conversations = vk.messages.getConversations(peer_type='chat')['items']
    
    # отправка сообщения в каждую беседу
    for conv in conversations:
        peer_id = conv['peer']['id']
        try:
            vk.messages.send(peer_id=peer_id, message='Новый пост!', random_id=0, attachment=f'wall-{event.group_id}_{event.object.id}')
        except Exception as ex:
            print(f'error: {ex}')