Quantcast
Channel: Форум программистов и сисадминов Киберфорум
Viewing all 518803 articles
Browse latest View live

Firefox key4.db - C# для начинающих

$
0
0
Есть вопрос, кто-нибудь знает каким образом FireFox зашифровывает key4.db? (Если что это случайный ключ который нужен для расшифровки паролей и логинов logins.json).
Также еще лучше если кто то знает метод для расшифровки паролей и логинов. Получаю key4.db так, осталось только расшифровать:
:

string FilePath = roamingappdata + "\\Mozilla\\Firefox\\Profiles\\ibaa65a9.default-release\\key4.db";
string key = File.ReadAllText(FilePath);


Принтер Xerox Phaser 3330 не печатает - Принтеры, МФУ

$
0
0
Принтер не печатает по сети, комп его видит, отправляю на него печать - не реагирует. Так же в состоянии ошибка. Печатает по юсб кабелю спокойно. Попробовал подключить по WPS, отправлял печать с телефона, так же ноль реакции. Подключал по LAN-кабелю, добавлял как по IP так и через драйвера. В чем может быть проблема?

Коэффиент торцевого перекрытия эпсилон альфа - Механика

$
0
0
Что будет с передачей, если её коэффициент торцевого перекрытия эпсилон альфа будет равен 3? Заклинит ли передача?

Проблема с наушниками проводными, пропал звук, что делать? - Общие проблемы с компьютером

$
0
0
Купил год назад наушники под названием HyperX Cloud Stinger(проводные), знаю что хайперх плохая компания, но купил что было в наличии, спустя год использования со всеми дровами и зависимостями, во время просмотра видео резко пропал звук в левом ухе, сначала подумал что дрова слетели, но вставил в ноутбук и телефон, и нигде он не сработал, работал звук только в левом ухе.

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

1C 8.x Внешний отчет: вывод на печать макета в общую форму "Печать документов" - 1С: Типовые и стандартные решения

$
0
0
Приветствую, Форумчане!
ЕРП

Создал внешнюю обработку с макетом для печати.

:

&НаКлиенте
Процедура Сформировать(Команда)
        Отв = СформироватьНаСервере();
        Отв.Показать();
КонецПроцедуры

&НаСервере
Функция СформироватьНаСервере()
       
        ТабДок = Новый ТабличныйДокумент;
        Макет  = РеквизитФормыВЗначение("Объект").ПолучитьМакет("Макет");
************ и т.д.

Печатная форма формируется в таком виде таблицы, типа как Эксель, а хотелось бы результат разместить в общую форму "Печать документов", где красиво расположены всякие кнопки "Печать", сохранить, копии. предварительный просмотр.

Подскажите пожалуйста, как результат работы обработки (Табличный документ) разместить в эту общую форму?

Алгоритм разделения числа на два сомножителя - Алгебра, теория чисел

$
0
0
Не знаю правильно ли выбрал раздел. Если что - поправте.
Есть 32 разрядное беззнаковое число. Требуется наиболее приближённо разделить его на два 16 разрядных сомножителя так, чтобы отношение их было максимальным. Значение сомножителей не может быть меньше 2. Не могу сообразить как это алгоритмизировать - старый стал. Есть подпрограмма разложения чи сла на простые числа.

STM32F103 vs GD32F103. В чем отличия? - Микроконтроллеры ARM, Cortex, STM32

$
0
0
Попались в руки две платки а-ля BluePill с перемаркированными под STM32F103C8T6 китайскими подделками(ChipID 0x2ba01477).
Как подсказывают это видимо клоны от Giga Devices =/

Платы вроде бы работчие.
ST-Link и CubeProgrammer определяют их и могут прочитать память.
Но вот прошить что то не удается.

Собственно вопрос: как с ними работать и в чем отличия от STM32F1?

Зачем нужны схемы? - PostgreSQL

$
0
0
Доброго дня. Какой практический смысл схем?
В руководствах пишут, что они нужны, как папки, чтобы логически разделить наборы таблиц, процедур и пр. для удобства разграничения доступа разным приложениям/пользователям и пр.
О каком удобстве идёт речь?
Если людям или приложениям нужны разные таблицы - пусть работают в разных базах.
Если им нужны одинаковые таблицы, но с разными данными, то схемы эту задачу не решают - всё равно приходится создавать 2 одинаковые физические таблицы.
Поясните - какую реальную практическую задачу можно решить с помощью схем?

Как прервать Speak()? - C# для начинающих

$
0
0
Как сделать, чтобы при нажатии на кнопку button2 прекращалось озвучивание (не становилось на паузу, а прекращалось) и происходил возврат из Method()?.
:

using System.Speech.Synthesis;
namespace Examole
{
    public partial class Form1 : Form
    {
        volatile bool b = true;
        public Form1()
        {
            InitializeComponent();
        }

        SpeechSynthesizer speech = new SpeechSynthesizer();

        private async void button1_Click(object sender, EventArgs e)
        {
            await Method("представлены три сборки игровых системных блоков");//большой текст             
        }

        private async void button2_Click(object sender, EventArgs e)
        {
         
        }
       
        async Task Method(string s)
        {
            if (s.IndexOf("игровых") != -1)
                speech.Speak(s);
        }
    }
}

Нет интернета на GE0/1 - Cisco

$
0
0
Доброго времени суток форумчане! Подскажите пожалуйста, на интерфейсе GigabitEthernet0/1 не могу получить интернет. Сеть имеет диапазон 192.168.1.1 255.255.255.0 а внешняя сеть с интернетом 192.168.0.1 255.255.255.0 пинг с GigabitEthernet0/1 до роутера 192.168.0.1 проходит.
Вот мой конфиг
Кликните здесь для просмотра всего текста
:

Using 2366 out of 262136 bytes
!
! Last configuration change at 14:46:14 UTC Tue Feb 25 2025 by root
! NVRAM config last updated at 14:46:16 UTC Tue Feb 25 2025 by root
! NVRAM config last updated at 14:46:16 UTC Tue Feb 25 2025 by root
version 15.1
service timestamps debug datetime msec
service timestamps log datetime msec
service password-encryption
!
hostname RT1
!
boot-start-marker
boot-end-marker
!
!
enable secret 4 XGLthh.wTiNQCtPhrKAjaksZpWii89ZyDfvz11jmuBs
!
aaa new-model
!
!
!
!
!
!
!
aaa session-id common
!
!
no ipv6 cef
ip source-route
ip cef
!
!
!
ip dhcp excluded-address 192.168.0.1
!
ip dhcp pool LOCAL_NETWORK
 network 192.168.1.0 255.255.255.0
 default-router 192.168.1.1
 dns-server 8.8.8.8
 lease infinite
!
!
ip domain name domain.local
ip name-server 77.88.8.8
ip name-server 77.88.8.1
ip name-server 8.8.8.8
ip name-server 8.8.4.4
ip name-server 192.168.0.1
!
multilink bundle-name authenticated
!
crypto pki token default removal timeout 0
!
!
license udi pid CISCO1941/K9 sn FCZ1983920X
license boot module c1900 technology-package securityk9
!
!
username root privilege 15 secret 4 XGLthh.wTiNQCtPhrKAjaksZpWii89ZyDfvz11jmuBs
!
redundancy
!
!
!
!
!
!
!
!
!
!
!
interface Embedded-Service-Engine0/0
 no ip address
 shutdown
!
interface GigabitEthernet0/0
 no ip address
 shutdown
 duplex auto
 speed auto
!
interface GigabitEthernet0/1
 description LAN
 ip address 192.168.1.1 255.255.255.0
 ip nat inside
 no ip virtual-reassembly in
 duplex auto
 speed auto
!
interface GigabitEthernet0/0/0
 description WAN
 ip address 192.168.0.2 255.255.255.0
 ip nat outside
 no ip virtual-reassembly in
 duplex auto
 speed auto
!
ip default-gateway 192.168.0.1
ip forward-protocol nd
!
no ip http server
no ip http secure-server
!
ip dns server
ip nat inside source list 1 interface GigabitEthernet0/0/0 overload
ip route 0.0.0.0 0.0.0.0 GigabitEthernet0/0/0
!
access-list 1 permit 192.168.1.0 0.0.0.255
access-list 1 permit 192.168.0.0 0.0.0.255
!
!
!
!
!
!
!
!
control-plane
!
!
!
line con 0
line aux 0
line 2
 no activation-character
 no exec
 transport preferred none
 transport input all
 transport output pad telnet rlogin lapb-ta mop udptn v120 ssh
 stopbits 1
line vty 0 4
 access-class 23 in
 exec-timeout 60 0
 privilege level 15
 logging synchronous
 transport input ssh
!
scheduler allocate 20000 1000
ntp server ntp.corbina.net
ntp server ru.pool.ntp.org
end



show ip interface brief
:

Interface                  IP-Address      OK? Method Status                Protocol
Embedded-Service-Engine0/0 unassigned      YES NVRAM  administratively down down
GigabitEthernet0/0        unassigned      YES NVRAM  administratively down down
GigabitEthernet0/1        192.168.1.1    YES NVRAM  up                    up
GigabitEthernet0/0/0      192.168.0.2    YES NVRAM  up                    up
NVI0                      192.168.1.1    YES unset  up                    up

show ip route
:

Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
      D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
      N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
      E1 - OSPF external type 1, E2 - OSPF external type 2
      i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
      ia - IS-IS inter area, * - candidate default, U - per-user static route
      o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
      + - replicated route, % - next hop override

Gateway of last resort is 0.0.0.0 to network 0.0.0.0

S*    0.0.0.0/0 is directly connected, GigabitEthernet0/0/0
      192.168.0.0/24 is variably subnetted, 2 subnets, 2 masks
C        192.168.0.0/24 is directly connected, GigabitEthernet0/0/0
L        192.168.0.2/32 is directly connected, GigabitEthernet0/0/0
      192.168.1.0/24 is variably subnetted, 2 subnets, 2 masks
C        192.168.1.0/24 is directly connected, GigabitEthernet0/1
L        192.168.1.1/32 is directly connected, GigabitEthernet0/1

могу ошибаться но раньше вроде с таким конфигом все работало

Конвертация в pdf с пустыми скрытыми страницами - Офисные программы

$
0
0
Имеется некий документ pdf, где допустим к примеру имеется очень много страниц ... (неважно откуда он берется, из ворда или из конвертации картинок)
Нужно, чтобы при распечатке pdf файла в нужных местах пропечатывались некое количество пустых страниц или с неким определенным текстом... но, чтобы этих пустых (или с маркировкой) страниц не было видно при просмотре/чтении pdf файла!!!

Как это сделать???

КОФЕМАШИНЫ DELONGHI MAGNIFICA AUTOMATICA CAPPUCCINO ESAM 3500, плата управления - Ремонт кофемашин и кофеварок

$
0
0
Здравствуйте.
Очень нужна прошивка КОФЕМАШИНЫ DELONGHI MAGNIFICA AUTOMATICA CAPPUCCINO ESAM 3500.
ПЛАТА УПРАВЛЕНИЯ
Cod. Procond: 454110987
Cod .De Longhi: 5213212881
SW:31 EEPROM: 3
Op: 60458 DATA: 14/07/10

Не работает клавиатура - Общие проблемы с компьютером

$
0
0
Купил клавиатуру, а она при подключении не работает. Подсветка мигает, все норм, но не реагирует на нажатие.
Подключил к ноуту - работает, все норм, но при этом на пк не хочет. Обновлял драйвера, качал всё что можно, но реакции ноль. С чем может быть проблема и как её решить, не переустанавливая винду?

Фильтр задач, которые связаны между собой - MS Office Project

$
0
0
Всем добрый вечер!
Кто знает как настроить фильтр, чтобы отфильтровал таким образом, чтобы оставил все задачи которые являются предшественниками к конечной задаче (либо наоборот последователей).
В инете наткнулся , что такой запрос существует на формах других иностранных,
Там предлагают запустить какой то макрос(он не скачивается).

Есть конечно возможность отобразить предшественников, либо последователей на диаграмме Ганта, но это не то.
Помогите плиз!

1C 8.x Программное создание набора данных в скд - 1С: Собственные программы

$
0
0
при формировании отчета выдает данную ошибку "Ошибка при вызове метода контекста (Выполнить)
{Отчет.ИзделияСКомплектующими.МодульОбъекта(81)}: МКМ=КМ.Выполнить(СКД,НК);
по причине:
Ошибка компоновки макета
по причине:
Поле не найдено "Комплектующие"
Ошибка компоновки макета
по причине:
Поле не найдено "Комплектующие"
"
и как это решить?

Код:
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)

СКД=Новый СхемаКомпоновкиДанных;

ИД = СКД.ИсточникиДанных.Добавить();
ИД.Имя = "СхемаСКД";
ИД.ТипИсточникаДанных = "Local";

НД=СКД.НаборыДанных.Добавить(Тип("НаборДанныхОбъектСхемыКомпоновкиДанных"));
НД.Имя="НД1";
НД.ИмяОбъекта="НД1";
НД.ИсточникДанных="СхемаСКД";

ПНД = НД.Поля.Добавить(Тип("ПолеНабораДанныхСхемыКомпоновкиДанных"));
ПНД.Поле = "Наименование";
ПНД.ПутьКДанным = "Наименование";
ПНД.Заголовок = "Наименование";

ПНД2 = НД.Поля.Добавить(Тип("ПолеНабораДанныхСхемыКомпоновкиДанных"));
ПНД2.Поле = "Комплектующие";
ПНД2.ПутьКДанным = "Состав.Комплектующие";
ПНД2.Заголовок = "Комплектующие";

НК=КомпоновщикНастроек.Настройки;

Если нк.Структура.Количество()=0 Тогда

Таб=НК.Структура.Добавить(Тип("ТаблицаКомпоновкиДанных"));

ГКД1 = Таб.Строки.Добавить();
ГКД1.Использование = Истина;
ПГКД1 = ГКД1.ПоляГруппировки.Элементы.Добавить(Тип("ПолеГруппировкиКомпоновкиДанных"));
ПГКД1.Использование = Истина;
ПГКД1.Поле = Новый ПолеКомпоновкиДанных("Наименование");

ВП1=ГКД1.Выбор.Элементы.Добавить(Тип("АвтоВыбранноеПолеКомпоновкиДанных"));
ВП1.Использование=Истина;

ГКД2 = ГКД1.Структура.Добавить();
ГКД2 = Таб.Колонки.Добавить();
ГКД2.Использование = Истина;
ПГКД2 = ГКД2.ПоляГруппировки.Элементы.Добавить(Тип("ПолеГруппировкиКомпоновкиДанных"));
ПГКД2.Использование = Истина;
ПГКД2.Поле = Новый ПолеКомпоновкиДанных("Комплектующие");

ВП2=ГКД2.Выбор.Элементы.Добавить(Тип("АвтоВыбранноеПолеКомпоновкиДанных"));
ВП2.Использование=Истина;

КонецЕсли;


Запр=Новый Запрос;
Запр.Текст="ВЫБРАТЬ
| Изделие.Наименование КАК Наименование,
| Изделие.Состав.(
| Комплектующие КАК Комплектующие
| ) КАК Состав
|ИЗ
| Справочник.Изделие КАК Изделие
| ПОЛНОЕ СОЕДИНЕНИЕ Справочник.Комплектующее КАК Комплектующее
| ПО Изделие.Состав.Комплектующие = Комплектующее.Наименование
|ГДЕ
| Изделие.Состав.Комплектующие = &Комплектующие";

Запр.УстановитьПараметр("Комплектующие",Справочники.Комплектующее.НайтиПоНаимено ванию("а"));
РезЗап=Запр.Выполнить().Выгрузить();
ВнешНаб=Новый Структура("НД1",РезЗап);
КМ=Новый КомпоновщикМакетаКомпоновкиДанных;
МКМ=КМ.Выполнить(СКД,НК);

ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать(МКМ,ВнешНаб);

ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
ПроцессорВывода.Вывести(ПроцессорКомпоновки);
КонецПроцедуры

Наименование - наименование справочника "Изделие", Комплектующие - Данные из табличной части ранее названного справочника.

Как прервать Speak()? - C# Windows Forms

$
0
0
Как сделать, чтобы при нажатии на кнопку button2 прекращалось озвучивание (не становилось на паузу, а прекращалось) и происходил возврат из Method()?.
:

using System.Speech.Synthesis;
namespace Examole
{
    public partial class Form1 : Form
    {
        volatile bool b = true;
        public Form1()
        {
            InitializeComponent();
        }

        SpeechSynthesizer speech = new SpeechSynthesizer();

        private async void button1_Click(object sender, EventArgs e)
        {
            await Method("представлены три сборки игровых системных блоков");//большой текст             
        }

        private async void button2_Click(object sender, EventArgs e)
        {
         
        }
       
        async Task Method(string s)
        {
            if (s.IndexOf("игровых") != -1)
                speech.Speak(s);
        }
    }
}

Соедините пожалуйста два кода html правильно - HTML, CSS

$
0
0
:

<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Рамки для фото</title>
    <link href="https://fonts.googleapis.com/css2?family=Days+One&display=swap" rel="stylesheet">
    <style>
        body {
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            background-color: #f0f0f0;
            margin: 0;
            font-family: 'Days One', sans-serif;
        }
        .container {
            display: flex;
            justify-content: center;
            align-items: center;
            margin-bottom: 20px;
            gap: 30px;
        }
        .frame-container {
            display: flex;
            flex-direction: column;
            align-items: center;
            margin: 10px;
        }
        .photo-frame {
            width: 300px;
            height: 400px;
            border: 5px solid #AF191A;
            border-radius: 10px;
            display: flex;
            justify-content: center;
            align-items: center;
            background-color: rgba(255, 255, 255, 0.8);
            position: relative;
            overflow: hidden;
            cursor: pointer;
        }
        img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            cursor: grab;
            transition: transform 0.2s ease;
        }
        .add-photo-btn {
            width: 40px;
            height: 40px;
            background-color: #AF191A;
            border-radius: 50%;
            color: white;
            font-size: 24px;
            font-weight: bold;
            display: flex;
            justify-content: center;
            align-items: center;
            cursor: pointer;
            position: absolute;
            z-index: 10;
        }
        .remove-photo-btn {
            display: none;
            position: absolute;
            top: 10px;
            right: 10px;
            background-color: white;
            width: 30px;
            height: 30px;
            border-radius: 50%;
            border: 3px solid #AF191A;
            color: #AF191A;
            font-size: 20px;
            font-weight: bold;
            display: flex;
            justify-content: center;
            align-items: center;
            cursor: pointer;
        }
        .remove-photo-btn.show {
            display: flex;
        }
        .info {
            text-align: center;
            font-size: 16px;
            color: #1E1E1E;
            font-weight: bold;
            cursor: pointer;
            margin-top: 5px;
        }
        .info span {
            display: block;
        }

        /* Стили для модального окна */
        .modal-overlay {
            display: none;
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: rgba(0, 0, 0, 0.5);
            z-index: 999;
        }
        .modal {
            display: none;
            position: fixed;
            top: 50%;
            left: 50%;
            width: 343px;
            background-color: #F8F3F3;
            border-radius: 16px;
            padding: 16px;
            box-shadow: 0 24px 42px -16px rgba(0, 0, 0, 0.2);
            gap: 24px;
            z-index: 1000;
            text-align: center;
            transform: translate(-50%, -50%);
        }
        .modal h2 {
            font-size: 18px;
            color: #1E1E1E;
            margin-bottom: 15px;
        }
        .input-container {
            width: 311px;
            margin: 12px auto;
            text-align: left;
        }
        .input-label {
            display: block;
            font-size: 16px;
            font-weight: 400;
            color: #8A8690;
            margin-bottom: 4px;
            line-height: 20px;
        }
        .modal input {
            width: 311px;
            height: 40px;
            border: 1px solid #ccc;
            border-radius: 12px;
            padding-left: 10px;
            font-size: 16px;
            font-family: 'Days One', sans-serif;
            background: #FFFFFF;
            box-shadow: 0px 4px 24px 0px rgba(0, 0, 0, 0.15);
            color: #8A8690;
        }
        .modal input::placeholder {
            font-size: 14px;
            color: #8A8690;
            font-weight: 400;
            line-height: 16px;
        }
        .modal button {
            width: 100%;
            height: 40px;
            background: #AF191A;
            color: white;
            border: none;
            border-radius: 5px;
            font-size: 16px;
            font-weight: bold;
            cursor: pointer;
            margin-top: 10px;
        }
        .modal button:hover {
            background: #900F0F;
        }
        .error {
            color: red;
            font-size: 12px;
            margin-top: 5px;
        }

    </style>
</head>
<body>

    <div class="container">
        <div class="frame-container">
            <div class="photo-frame" id="frame1">
                <input type="file" accept="image/*" onchange="loadImage(event, this)" style="display: none;" id="fileInput1">
                <img id="image1" src="" alt="" onwheel="zoomImage(event, 1)" onmousedown="startRotate(event, 1)">
                <div class="add-photo-btn" onclick="triggerFileInput(1)">+</div>
                <div class="remove-photo-btn" id="removeBtn1" onclick="removeImage(1)">×</div>
            </div>
            <div class="info" onclick="openModal(1)">
                <span id="fio1">ФИО</span>
                <span id="dob1">Дата рождения</span>
            </div>
        </div>

        <div class="frame-container">
            <div class="photo-frame" id="frame2">
                <input type="file" accept="image/*" onchange="loadImage(event, this)" style="display: none;" id="fileInput2">
                <img id="image2" src="" alt="" onwheel="zoomImage(event, 2)" onmousedown="startRotate(event, 2)">
                <div class="add-photo-btn" onclick="triggerFileInput(2)">+</div>
                <div class="remove-photo-btn" id="removeBtn2" onclick="removeImage(2)">×</div>
            </div>
            <div class="info" onclick="openModal(2)">
                <span id="fio2">ФИО</span>
                <span id="dob2">Дата рождения</span>
            </div>
        </div>
    </div>

    <!-- Модальное окно -->
    <div class="modal-overlay" id="modalOverlay" onclick="closeModal()"></div>
    <div class="modal" id="modal">
        <h2>Добавление информации</h2>
        <div class="input-container">
            <label class="input-label">Введите ФИО ветерана *</label>
            <input type="text" id="inputFio" placeholder="ФИО" oninput="validateFio(this)">
            <div id="fioError" class="error"></div>
        </div>
        <div class="input-container">
            <label class="input-label">Введите дату рождения ветерана</label>
            <input type="text" id="inputDob" placeholder="Дата рождения" maxlength="10" oninput="formatDate(this)">
            <div id="dobError" class="error"></div>
        </div>
        <button onclick="saveInfo()">Применить</button>
    </div>

    <script>
        let currentFrame = null;
        let rotation = 0;
        let scale = 1;

        function loadImage(event, input) {
            const file = input.files[0];
            const img = input.parentNode.querySelector('img');
            const removeBtn = input.parentNode.querySelector('.remove-photo-btn');
            const addBtn = input.parentNode.querySelector('.add-photo-btn');
            if (file) {
                const reader = new FileReader();
                reader.onload = function() {
                    img.src = reader.result;
                    img.style.transform = "scale(1) rotate(0deg)";
                    scale = 1;
                    rotation = 0;
                    removeBtn.classList.add('show');
                    addBtn.style.display = 'none';
                }
                reader.readAsDataURL(file);
            }
        }

        function openModal(frameNumber) {
            currentFrame = frameNumber;
            const fio = document.getElementById(`fio${frameNumber}`).textContent;
            const dob = document.getElementById(`dob${frameNumber}`).textContent;
            document.getElementById('inputFio').value = fio;
            document.getElementById('inputDob').value = dob;
            document.getElementById('modal').style.display = 'block';
            document.getElementById('modalOverlay').style.display = 'block';
        }

        function closeModal() {
            document.getElementById('modal').style.display = 'none';
            document.getElementById('modalOverlay').style.display = 'none';
        }

        function saveInfo() {
            const fio = document.getElementById('inputFio').value;
            const dob = document.getElementById('inputDob').value;
            if (validateFio(fio)) {
                document.getElementById(`fio${currentFrame}`).textContent = fio;
                document.getElementById(`dob${currentFrame}`).textContent = dob;
                closeModal();
            }
        }

        function validateFio(fio) {
            const errorElement = document.getElementById('fioError');
            if (!fio.trim()) {
                errorElement.textContent = 'ФИО не может быть пустым';
                return false;
            }
            errorElement.textContent = '';
            return true;
        }

        function formatDate(input) {
            let value = input.value.replace(/\D/g, '');
            if (value.length > 2) value = value.slice(0, 2) + '.' + value.slice(2);
            if (value.length > 5) value = value.slice(0, 5) + '.' + value.slice(5, 10);
            input.value = value;
        }

        function removeImage(frameNumber) {
            const frame = document.getElementById(`frame${frameNumber}`);
            const img = frame.querySelector('img');
            const input = frame.querySelector('input');
            const removeBtn = frame.querySelector('.remove-photo-btn');
            const addBtn = frame.querySelector('.add-photo-btn');
            img.src = '';
            input.value = '';
            removeBtn.classList.remove('show');
            addBtn.style.display = 'block';
        }

        function triggerFileInput(frameNumber) {
            const input = document.getElementById(`fileInput${frameNumber}`);
            input.click();
        }

        function zoomImage(event, frameNumber) {
            if (event.deltaY > 0) {
                scale *= 0.9;
            } else {
                scale *= 1.1;
            }
            document.getElementById(`image${frameNumber}`).style.transform = `scale(${scale}) rotate(${rotation}deg)`;
        }

        function startRotate(event, frameNumber) {
            event.preventDefault();
            let lastX = event.clientX;
            let lastY = event.clientY;

            function onMouseMove(e) {
                const dx = e.clientX - lastX;
                const dy = e.clientY - lastY;
                rotation += dx * 0.1;
                document.getElementById(`image${frameNumber}`).style.transform = `scale(${scale}) rotate(${rotation}deg)`;
                lastX = e.clientX;
                lastY = e.clientY;
            }

            function onMouseUp() {
                document.removeEventListener('mousemove', onMouseMove);
                document.removeEventListener('mouseup', onMouseUp);
            }

            document.addEventListener('mousemove', onMouseMove);
            document.addEventListener('mouseup', onMouseUp);
        }
    </script>

</body>
</html>

:

<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Красная Платформа с Иконками и Кнопками</title>
    <link href="https://fonts.googleapis.com/css2?family=Days+One&display=swap" rel="stylesheet">
    <style>
        body {
            margin: 0;
            height: 100vh;
            display: flex;
            flex-direction: column;
            justify-content: flex-end;
            align-items: center;
            background-color: #f0f0f0;
        }

        /* Контейнер для рамки на экране */
        .frame-container {
            position: absolute;
            top: 50px; /* Располагаем рамку чуть выше кнопок */
            display: none; /* Скрыто по умолчанию */
            justify-content: center;
            align-items: center;
        }

        .red-platform {
            width: 394px;
            height: 95px;
            background-color: #AF191A;
            border-top-left-radius: 12px;
            border-top-right-radius: 12px;
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;
            padding: 10px 20px;
            margin-bottom: 20px;
        }

        .button-container {
            display: flex;
            justify-content: center;
            gap: 40px;
            align-items: center;
        }

        .button {
            width: 87px;
            height: 30px;
            font-family: 'Days One', sans-serif;
            font-weight: 400;
            font-size: 14px;
            line-height: 16px;
            text-align: center;
            color: #FFFFFF;
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;
            background-color: transparent;
            border: none;
            position: relative;
            cursor: pointer;
        }

        .icon {
            width: 24px;
            height: 24px;
            position: absolute;
            top: -30px;
        }

        /* Модальное окно для выбора рамки */
        .frame-modal {
            display: none; /* Окно скрыто по умолчанию */
            position: fixed;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            width: 360px;
            height: auto;
            background-color: #F8F3F3;
            border-radius: 16px;
            box-shadow: 0px 24px 42px -16px rgba(0, 0, 0, 0.2);
            padding: 24px;
            display: flex;
            flex-direction: column;
            gap: 16px;
            align-items: center;
        }

        .frame-images {
            display: grid;
            grid-template-columns: repeat(2, 1fr);
            gap: 15px;
            margin-bottom: 20px;
            justify-items: center;
            width: 100%;
        }

        .frame-image {
            cursor: pointer;
            width: 120px;
            height: auto;
            display: flex;
            flex-direction: column;
            align-items: center;
            position: relative;
        }

        .frame-image img {
            width: 100%;
            border-radius: 8px;
            transition: transform 0.3s ease;
        }

        .frame-image:hover img {
            transform: scale(1.05);
        }

        .selected {
            border: 3px solid #AF191A;
        }

        .checkmark {
            position: absolute;
            top: 5px;
            left: 5px;
            width: 30px;
            height: 30px;
            background-color: #AF191A;
            border-radius: 50%;
            display: flex;
            justify-content: center;
            align-items: center;
        }

        .checkmark::after {
            content: '✔';
            color: white;
            font-size: 20px;
        }

        .frame-modal button {
            width: 100%;
            height: 40px;
            background-color: #AF191A;
            border: none;
            border-radius: 8px;
            color: white;
            font-family: 'Days One', sans-serif;
            font-weight: 400;
            font-size: 16px;
            cursor: pointer;
            transition: background-color 0.3s ease;
        }

        .frame-modal button:hover {
            background-color: #9f1616;
        }

        /* Модальное окно для обратной связи */
        .feedback-modal {
            display: none; /* Окно скрыто по умолчанию */
            position: fixed;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            width: 343px;
            height: 234px;
            background-color: #F8F3F3;
            border-radius: 16px;
            padding: 16px;
            gap: 24px;
            display: flex;
            flex-direction: column;
            align-items: center;
        }

        /* Заголовок модального окна */
        .modal-title {
            width: 311px;
            height: 13px;
            font-family: 'Days One', sans-serif;
            font-weight: 400;
            font-size: 18px;
            line-height: 32px;
            text-align: center;
            color: #1E1E1E;
        }

        /* Подзаголовок */
        .modal-subtitle {
            width: 311px;
            height: 11px;
            font-family: 'Days One', sans-serif;
            font-weight: 400;
            font-size: 16px;
            line-height: 20px;
            text-align: center;
            color: #8A8690;
        }

        /* Поле для ввода текста */
        .textarea-container {
            width: 311px;
            height: 76px;
            padding: 8px;
            border-radius: 12px;
            border: 1px solid #CCCCCC;
            display: flex;
            flex-direction: column;
            gap: 8px;
        }

        .textarea-label {
            width: 140px;
            height: 16px;
            font-family: 'Days One', sans-serif;
            font-weight: 400;
            font-size: 14px;
            line-height: 16px;
            color: #8A8690;
        }

        .textarea {
            width: 100%;
            height: 100%;
            font-family: 'Days One', sans-serif;
            font-size: 14px;
            line-height: 16px;
            border: none;
            resize: none;
            padding: 8px;
        }

        /* Кнопка отправки */
        .send-button {
            width: 311px;
            height: 46px;
            background-color: #AF191A;
            border-radius: 10px;
            color: white;
            font-family: 'Days One', sans-serif;
            font-weight: 400;
            font-size: 16px;
            cursor: pointer;
            transition: background-color 0.3s ease;
            display: flex;
            justify-content: center;
            align-items: center;
        }

        .send-button:hover {
            background-color: #9f1616;
        }

        /* Текстовое поле для ввода "Ваше мнение" */
        .feedback-textarea {
            width: 311px;
            height: 60px;
            font-family: 'Days One', sans-serif;
            font-size: 14px;
            line-height: 16px;
            border: 1px solid #CCCCCC;
            border-radius: 12px;
            padding: 8px;
            resize: none;
            overflow: auto;
        }

    </style>
</head>
<body>
    <div class="frame-container" id="frameContainer">
        <img id="selectedFrame" src="" alt="Выбранная рамка">
    </div>

    <div class="red-platform">
        <div class="button-container">
            <!-- Кнопка для открытия модального окна с рамками -->
            <div class="button" onclick="openFrameModal()">
                <img class="icon" src="иконка1.png" alt="Иконка 1">
                Выбрать рамку
            </div>
            <div class="button" onclick="downloadImage()">
                <img class="icon" src="иконка2.png" alt="Иконка 2">
                Скачать фото
            </div>
            <div class="button" onclick="openFeedbackModal()">
                <img class="icon" src="иконка3.png" alt="Иконка 3">
                Обратная связь
            </div>
        </div>
    </div>

    <!-- Модальное окно для выбора рамки -->
    <div class="frame-modal" id="frameModal">
        <div class="modal-title">Выберите рамку</div>
        <p class="modal-text">Выберите одну из рамок ниже:</p>
        <div class="frame-images">
            <div class="frame-image" onclick="selectFrame(this, 'vertical')">
                <img src="Рамка вертикальная.png" alt="Рамка вертикальная">
                <p>Рамка вертикальная</p>
                <div class="checkmark" style="display: none;"></div>
            </div>
            <div class="frame-image" onclick="selectFrame(this, 'horizontal')">
                <img src="Рамка горизонтальная.jpg" alt="Рамка горизонтальная">
                <p>Рамка горизонтальная</p>
                <div class="checkmark" style="display: none;"></div>
            </div>
        </div>
        <button onclick="closeFrameModal()">Выбрать</button>
    </div>

    <!-- Модальное окно для обратной связи -->
    <div class="feedback-modal" id="feedbackModal">
        <div class="modal-title">Обратная связь</div>
        <div class="modal-subtitle">Напишите ваше мнение</div>
        <textarea class="feedback-textarea" placeholder="Введите ваше мнение здесь"></textarea>
        <button class="send-button">Отправить</button>
    </div>

    <script>
        // Открытие модального окна для выбора рамки
        function openFrameModal() {
            console.log("Функция openFrameModal вызвана");
            document.getElementById("frameModal").style.display = "flex";
        }

        // Закрытие модального окна для выбора рамки
        function closeFrameModal() {
            document.getElementById("frameModal").style.display = "none";
        }

        // Выбор рамки и отображение её на экране
        function selectFrame(frame, type) {
            const frames = document.querySelectorAll('.frame-image');
            frames.forEach(item => {
                item.classList.remove('selected');
                item.querySelector('.checkmark').style.display = 'none';
            });

            frame.classList.add('selected');
            frame.querySelector('.checkmark').style.display = 'flex';

            const frameContainer = document.getElementById("frameContainer");
            const selectedFrame = document.getElementById("selectedFrame");
            frameContainer.style.display = "flex";  // Показываем контейнер с рамкой

            if (type === 'vertical') {
                selectedFrame.src = "Рамка вертикальная.png";
                selectedFrame.style.width = "500px";
                selectedFrame.style.height = "709px";
            } else if (type === 'horizontal') {
                selectedFrame.src = "Рамка горизонтальная.jpg";
                selectedFrame.style.width = "700px";
                selectedFrame.style.height = "500px";
            }
        }

        // Открытие модального окна для обратной связи
        function openFeedbackModal() {
            document.getElementById("feedbackModal").style.display = "flex";
        }

        // Закрытие модального окна для обратной связи
        function closeFeedbackModal() {
            document.getElementById("feedbackModal").style.display = "none";
        }

        // Скачивание изображения (пока что пустая функция)
        function downloadImage() {
            alert("Функция скачивания изображения еще не реализована.");
        }

        // Убедитесь, что модальные окна скрыты при загрузке страницы
        window.onload = function() {
            document.getElementById("frameModal").style.display = "none";  // Скрываем модальное окно рамки
            document.getElementById("feedbackModal").style.display = "none";  // Скрываем модальное окно обратной связи
        };
    </script>
</body>
</html>

Проблема с подсчётом и выводом числа - Python: Tkinter

$
0
0
Создал программу - калькулятор семейного бюджета. С помощью tkinter'a рисуется окно, в котором пользователь вводит траты и доходы семейные, а программа должна вывести общий заработок, общие затраты и т.д.
Но приложение ни в какую не хочет выводить всё это. Очень долго пытался понять, что же не так, но так ни к чему и не пришёл. Если что, на питоне начал писать совсем недавно и с tkinter'ом работаю впервые, за основу программы взял кредитный калькулятор с интернета, чутка его поменял. В консоли никаких ошибок не отображается, но подсчёт всё равно не идёт.
:

from tkinter import *

class LoanCalculator:

    def __init__(self):
        root=Tk()
        root.geometry("1000x800")
        root.title("Калькулятор семейного бюджета")
        root.config(bg='#a39ea0')
        Label(root,text="Коммунальные платежи", font=('Arial,15,bold'),bg='#a39ea0').place(x=10,y=10)
        Label(root, text="Платежи за связь и интернет", font=('Arial,15,bold'),bg='#a39ea0').place(x=10,y=50)
        Label(root, text="Налоговые платежи", font=('Arial,15,bold'),bg='#a39ea0').place(x=10,y=90)
        Label(root, text="Затраты на еду", font=('Arial,15,bold'),bg='#a39ea0').place(x=10,y=130)
        Label(root, text="Затраты на долги/ипотеку", font=('Arial,15,bold'),bg='#a39ea0').place(x=10,y=170)
        Label(root, text="Затраты на транспорт/бензин", font=('Arial,15,bold'), bg='#a39ea0').place(x=10, y=210)
        Label(root, text="Затраты на образование", font=('Arial,15,bold'), bg='#a39ea0').place(x=10, y=250)
        Label(root, text="Затраты на отдых", font=('Arial,15,bold'), bg='#a39ea0').place(x=10, y=290)
        Label(root, text="Затраты на спорт и здоровье", font=('Arial,15,bold'), bg='#a39ea0').place(x=10, y=330)
        Label(root, text="Затраты на домашних животных", font=('Arial,15,bold'), bg='#a39ea0').place(x=10, y=370)
        Label(root, text="Затраты на одежду", font=('Arial,15,bold'), bg='#a39ea0').place(x=10, y=410)
        Label(root, text="Затраты на дом", font=('Arial,15,bold'), bg='#a39ea0').place(x=10, y=450)
        Label(root, text="Прочие расходы", font=('Arial,15,bold'), bg='#a39ea0').place(x=10, y=490)
        Label(root, text="Зарплата отца", font=('Arial,15,bold'), bg='#a39ea0').place(x=550, y=10)
        Label(root, text="Зарплата матери", font=('Arial,15,bold'), bg='#a39ea0').place(x=550, y=50)
        Label(root, text="Полученные пенсии", font=('Arial,15,bold'), bg='#a39ea0').place(x=550, y=90)
        Label(root, text="Полученные пособия", font=('Arial,15,bold'), bg='#a39ea0').place(x=550, y=130)
        Label(root, text="Прочие поступления", font=('Arial,15,bold'), bg='#a39ea0').place(x=550, y=170)
        self.kp=IntVar()
        Entry(root, textvariable=self.kp,font=('Arial,15,bold')).place(x=280,y=10)
        self.pzzii=IntVar()
        Entry(root, textvariable=self.pzzii,font=('Arial,15,bold')).place(x=280,y=50)
        self.np=IntVar()
        Entry(root, textvariable=self.np,font=('Arial,15,bold')).place(x=280,y=90)
        self.zne=IntVar()
        Entry(root, textvariable=self.zne,font=('Arial,15,bold')).place(x=280,y=130)
        self.zndi=IntVar()
        Entry(root, textvariable=self.zndi, font=('Arial,15,bold')).place(x=280, y=170)
        self.zntb = IntVar()
        Entry(root, textvariable=self.zntb, font=('Arial,15,bold')).place(x=280, y=210)
        self.zno = IntVar()
        Entry(root, textvariable=self.zno, font=('Arial,15,bold')).place(x=280, y=250)
        self.znot = IntVar()
        Entry(root, textvariable=self.znot, font=('Arial,15,bold')).place(x=280, y=290)
        self.znsiz = IntVar()
        Entry(root, textvariable=self.znsiz, font=('Arial,15,bold')).place(x=280, y=330)
        self.zndj = IntVar()
        Entry(root, textvariable=self.zndj, font=('Arial,15,bold')).place(x=280, y=370)
        self.znclo = IntVar()
        Entry(root, textvariable=self.znclo, font=('Arial,15,bold')).place(x=280, y=410)
        self.znd = IntVar()
        Entry(root, textvariable=self.znd, font=('Arial,15,bold')).place(x=280, y=450)
        self.pr = IntVar()
        Entry(root, textvariable=self.pr, font=('Arial,15,bold')).place(x=280, y=490)

        self.zo = StringVar()
        Entry(root, textvariable=self.zo, font=('Arial,15,bold')).place(x=730, y=10)
        self.zm = StringVar()
        Entry(root, textvariable=self.zm, font=('Arial,15,bold')).place(x=730, y=50)
        self.ppe = StringVar()
        Entry(root, textvariable=self.ppe, font=('Arial,15,bold')).place(x=730, y=90)
        self.ppo = StringVar()
        Entry(root, textvariable=self.ppo, font=('Arial,15,bold')).place(x=730, y=130)
        self.ppos = StringVar()
        Entry(root, textvariable=self.ppos, font=('Arial,15,bold')).place(x=730, y=170)
        Label(root, text="Общий заработок:", font=('Arial,15,bold'), bg='#a39ea0').place(x=10, y=570)
        Label(root, text="Общие затраты:", font=('Arial,15,bold'), bg='#a39ea0').place(x=10, y=610)
        Label(root, text="Накопления за месяц:", font=('Arial,15,bold'), bg='#a39ea0').place(x=10, y=650)
        Label(root, text="Самая большая категория трат:", font=('Arial,15,bold'), bg='#a39ea0').place(x=10, y=690)
        self.obzp = StringVar()
        Label(root, textvariable=self.obzp, font=('Arial,15,bold'), bg='#a39ea0').place(x=150, y=570)
        self.obzat = IntVar()
        Label(root, textvariable=self.obzat, font=('Arial,15,bold'), bg='#a39ea0').place(x=135, y=610)
        self.nak = IntVar()
        Label(root, textvariable=self.nak, font=('Arial,15,bold'), bg='#a39ea0').place(x=175, y=650)
        self.most = IntVar()
        Label(root, textvariable=self.most, font=('Arial,15,bold'), bg='#a39ea0').place(x=250, y=690)
        Button(root, text="Рассчитать", font=('Arial,15,bold'), command=self.calculateloan).place(x=180, y=750)
        root.mainloop()

    def calculateloan(self):
        self.zo2 = int(self.zo.get())
        self.zm2 = int(self.zm.get())
        self.ppe2 = int(self.ppe.get())
        self.ppo2 = int(self.ppo.get())
        self.ppos2 = int(self.ppos.get())

        self.obzp = self.zo2 + self.zm2 + self.ppe2 + self.ppo2 + self.ppos2
        #self.obzat = self.kp + self.pzzii + self.np + self.zne + self.zndi + self.zntb + self.zno + self.znot + self.znsiz + self.zndj + self.znclo + self.znd + self.pr
        #self.nak = self.obzat - self.obzp
        #self.most = max(self.kp, self.pzzii, self.np, self.zne, self.zndi, self.zntb, self.zno, self.znot, self.znsiz,
                        #self.zndj, self.znclo, self.znd, self.pr)
        return self.obzp, #self.obzat, self.nak, self.most
LoanCalculator()

В конце закомментировал подсчёт общих затрат и всего прочего, кроме общего заработка, на время устранения бага, чтобы в случае чего не надо было менять все переменные(вдруг дело в них). Извините, если что-то непонятно написал, впервые на форуме вопрос какой-то пишу.

Оживить Pentium II - Компьютерное железо

$
0
0
Захотелось оживить свой древний 2-й пень (300 МГц, Deschutes). На плате с процом отколот один элемент, комп не стартует. Вот та самая плата (нашёл на вики): https://ru.wikipedia.org/wiki/... d-4671.jpg

Чёрный маленький SMD прямоугольник с 8 выводами, на картинке такие справа внизу (у меня они синие, но остальное всё такое же). Сверху надпись - то ли 560, то ли 095 (смотря как повернуть). Искал, ничего внятного не нашлось. Откопал родные спеки на проц - там тоже глухо. Если бы был такой - можно было бы запаять аккуратно. Неужели только другой проц искать?

Рандомно перемещать блоки в течение 5 секунд на чистом js - JavaScript

$
0
0
Здравствуйте есть код на jquery, который по клику перемешивает блоки. Нужно его доделать
1. перемешивать блоки нужно 5 секунд (то есть по кнопки делать не один цикл (перемешивание), а несколько циклов перемешивание в течение 5 секунд
2. желательно перевести код из jquery в js

:

<body class="body">
    <input id="example" type="submit" value="shuffle">

    <ul id="numberlist">
        <li  class="content1" data-pos="1">1</li>
        <li class="content2" data-pos="2">2</li>
        <li class="content3" data-pos="3">3</li>
    </ul>
</body>
<style>
  ul {
        list-style: none;
        position: relative;
    }

    li {
        width: 100px;
        line-height: 2em;
        text-align: center;
        transition: all 0.9s ease-out;
        position: absolute;

        left: 0;
    }




    [data-pos="1"] {
        top: 0;
    }

    [data-pos="2"] {
        top: 30px;
    }

    [data-pos="3"] {
        top: 60px;
    }

 
</style >
<script src='https://code.jquery.com/jquery-2.2.4.min.js'></script>
<script type="text/javascript">
        shuffle = function ($list) {
            var i = $list.children().length,
                $tempValueI,
                $tempValueRandomI,
                randomI,
                iPos,
                randomIPos;
            while (i > 1) {

                // Pick a remaining element…
                randomI = Math.ceil(Math.random() * i--);

                iPos = $list.children('li:nth-child(' + i + ')').attr('data-pos');
                randomIPos = $list.children('li:nth-child(' + randomI + ')').attr('data-pos');

                $list.children('li:nth-child(' + i + ')').attr('data-pos', randomIPos);
                $list.children('li:nth-child(' + randomI + ')').attr('data-pos', iPos);

            }

            return $list;
        }[S][/S]

    $(function a() {
    document.querySelector('[value="shuffle"]').addEventListener('click', function () {
           
            shuffle($('#numberlist'));
        });

    });
</script>

Viewing all 518803 articles
Browse latest View live