Форум программистов, компьютерный форум, киберфорум
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.57/21: Рейтинг темы: голосов - 21, средняя оценка - 4.57
 Аватар для Alexandr_7
87 / 22 / 6
Регистрация: 29.12.2015
Сообщений: 1,904
WPF

Модальное Окно для выбора операции с файлами без зависаний при выполнении цикла

30.03.2021, 15:31. Показов 4959. Ответов 61
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
К слову и весь вопрос. Как можно передать окну которое будет находятся в другом потоке главное окно.
Окно будет запускать через отдельный класс который и будет создавать второстепенное окно в другом потоке.
Хотя вот функция которая вызывает окно:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
private CheckBox templateCheckBox(string text)
        {
            return new CheckBox
            {
                Margin = new Thickness(8),
                VerticalAlignment = VerticalAlignment.Top,
                HorizontalContentAlignment = HorizontalAlignment.Center,
                VerticalContentAlignment = VerticalAlignment.Center,
                Style = (Style)Resources["StyleCheckBox"],
                Content = text
            };
        }
 
        public bool? ShowDialogControlSave(MainWindow mainWindow, string caption, int selectIndexSave = 0, int selectIndexOperation = 0)
        {
            this.Owner = mainWindow;
 
            this.Title = caption;
 
            this.Width = mainWindow.Width - 10;
            this.Height = mainWindow.Height - 10;
 
            this.WindowStartupLocation = WindowStartupLocation.CenterOwner;
 
            System.IO.Directory.GetFiles(SGeneral.settings.pathSaves, "*.map").ToList().ForEach(x =>
            {
                listSaves.Items.Add(templateCheckBox(System.IO.Path.GetFileName(x)));
            });
 
            if (selectIndexSave < listSaves.Items.Count)
                listSaves.SelectedIndex = selectIndexSave;
 
            switch (selectIndexOperation)
            {
                case 0:
                    rbtnOpenInSaveEditor.IsChecked = true;
                    break;
                case 1:
                    rbtnOpenInHexEditor.IsChecked = true;
                    break;
                case 2:
                    rbtnUncompressingSaves.IsChecked = true;
                    break;
                case 3:
                    rbtnCreateArchive.IsChecked = true;
                    break;
            }
 
            return this.ShowDialog();
        }
Но создание этого окна будет происходить в другом потоке.
Хотя не знаю как сделать грамотно. Само окно подразумивает выбор файлов и выбор операции что с ними делать.
Но сама функция System.IO.Directory.GetFiles и ForEach может продлится весьма долгое время а это не должно приводить к зависанию программы.
С другой стороны это окно модальное а значит когда оно отобразится переключатся на главное должно быть невозможным что уже говорит о том что модальное окно должно быть в потоке где и главное окно.
Подскажите как быть?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.03.2021, 15:31
Ответы с готовыми решениями:

Длительные операции без зависаний
У меня есть участки кода, которые выполняются длительное время. Я хочу вывести пользователю отдельное окошко, в котором написать...

Как реализовать экран загрузки (без фризов) при выполнении программой долгого цикла?
3) Как реализовать экран загрузки (без фризов) при выполнении программой долгого цикла? Delphi XE5

Модальное окно Query с кнопками выбора
Добрый день, товарищи. Нужно получить диалоговое окно по клику на кнопке, внутри окна текст и две кнопки. В зависимости от выбора...

61
 Аватар для Alexandr_7
87 / 22 / 6
Регистрация: 29.12.2015
Сообщений: 1,904
07.04.2021, 15:34  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Я же дел вам конвертер и показал как им пользоваться.
Он возвращает имя без расширения.
C#
1
public class FileInfoToNameConverter : IValueConverter
Так это же класс. Не понятно как он работает.
Но в любом случае список с файлами у меня глобальный. Кстати можно простой List<FileInfo>. Сам список прекрасно с ним работает и вообще похоже список работает с любым набором данных будь то список или массив.

Добавлено через 2 минуты
Цитата Сообщение от Элд Хасп Посмотреть сообщение
В принципе да, но это очень кривое решение, которое может в дальнейшем породить массу проблем.
Ещё раз пишу, в WPF Решении не должно быть обращения к UI элементам на Шарпе.
А я говорю что в глобальном списке с файлами не должно быть лишних свойств которые работают конкрено с модальным окном тоесть их испольует только одно окно и никто другой. К томуже сам список файлов я все равно через Шарп указываю так как через xaml указать его нельзя. Уж не знаю с чем это связано.

Добавлено через 1 минуту
Вот полный код окна:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
/// <summary>
    /// Логика взаимодействия для WindowArchive.xaml
    /// </summary>
    public partial class WindowArchive : Window
    {
 
        private CheckBox templateCheckBox(string text)
        {
            return new CheckBox
            {
                Margin = new Thickness(8),
                VerticalAlignment = VerticalAlignment.Top,
                HorizontalContentAlignment = HorizontalAlignment.Center,
                VerticalContentAlignment = VerticalAlignment.Center,
                Style = (Style)Resources["StyleCheckBox"],
                Content = text
            };
        }
 
        public int ShowDialogControlSave(MainWindow mainWindow, string caption, int selectIndexSave = 0, int selectIndexOperation = 0)
        {
            this.Owner = mainWindow;
 
            this.Title = caption;
 
            this.Width = mainWindow.Width - 20;
            this.Height = mainWindow.Height - 80;
 
            this.WindowStartupLocation = WindowStartupLocation.CenterOwner;
 
            listSaves.ItemsSource = SGeneral.saveFiles;
 
            if (selectIndexSave < listSaves.Items.Count)
                listSaves.SelectedIndex = selectIndexSave;
 
            switch (selectIndexOperation)
            {
                case 0:
                    rbtnOpenInSaveEditor.IsChecked = true;
                    break;
                case 1:
                    rbtnOpenInHexEditor.IsChecked = true;
                    break;
                case 2:
                    rbtnUncompressingSaves.IsChecked = true;
                    break;
                case 3:
                    rbtnCreateArchive.IsChecked = true;
                    break;
            }
 
            listSaves.Focus();
 
            var result = this.ShowDialog();
 
            if (result == true)
            {
                return (rbtnOpenInSaveEditor.IsChecked == true) ? 1 :
                  (rbtnOpenInHexEditor.IsChecked == true) ? 2 :
                  (rbtnUncompressingSaves.IsChecked == true) ? 3 :
                  (rbtnCreateArchive.IsChecked == true) ? 4 : 5;
            }
            else if (result == false)
                return 0;
            else
                return -1;
        }
 
        public WindowArchive()
        {
            InitializeComponent();
        }
 
        private void btnOk_Click(object sender, RoutedEventArgs e)
        {
            DialogResult = true;
        }
 
        private void btnCancel_Click(object sender, RoutedEventArgs e)
        {
            DialogResult = false;
        }
 
        public List<System.IO.FileInfo> idSelectsCheck
        {
            get 
            {
                var list = new List<System.IO.FileInfo>();
                for (var i= 0; i < listSaves.Items.Count; i++)
                {
                    var grd = (Grid)listSaves.Items[i];
                    var chBox = (CheckBox)grd.ColumnDefinitions[0].Parent;
                    if (chBox.IsChecked == true)
                        list.Add(SGeneral.saveFiles[i]);
                }
                return list;
            }
        }
 
        public int idSelect
        {
            get { return listSaves.SelectedIndex; }
        }
    }
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16166 / 11286 / 2892
Регистрация: 21.04.2018
Сообщений: 33,176
Записей в блоге: 2
07.04.2021, 15:39
Цитата Сообщение от Alexandr_7 Посмотреть сообщение
Так это же класс. Не понятно как он работает.
Я же показывал как ...="{Binding Converter={x:Static local:FileInfoToNameConverter.Instance}}"
Вместо locаl - ваше пространство имён.

Добавлено через 3 минуты
Цитата Сообщение от Alexandr_7 Посмотреть сообщение
Вот полный код окна:
Я уже понял, что у вас за код.
И ещё раз пишу, для WPF он НЕВЕРНЫЙ !!!
В Code Behind Окна ничего быть не должно.
Только инициализация XAML:
C#
4
5
6
7
    public partial class WindowArchive : Window
    {
        public WindowArchive() => InitializeComponent();
    }
Вообще, даже не открывайте файлы "*.xaml.cs"!
0
 Аватар для Alexandr_7
87 / 22 / 6
Регистрация: 29.12.2015
Сообщений: 1,904
07.04.2021, 15:48  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Я уже понял, что у вас за код.
И ещё раз пишу, для WPF он НЕВЕРНЫЙ !!!
В Code Behind Окна ничего быть не должно.
Только инициализация XAML:
Да без разницы. Я XAML не знаю на уровне разработки в нем кода. Только на уровне использования его для дизайнав. К слову я и собираюсь использовать XAML только для дизайна программы а не для писания в нем кода вызова окна, возврат значений. Я вообще без понятия как можно xaml использовать для написания полноценного кода.

Добавлено через 4 минуты
А вообще было бы интересно посмотренть как вы чисто в XAML создадите КОПИЮ РАБОТЫ Моего кода. Повторяю копию работы. Как уже сказал создавать свой элемент списка файлов не катит ибо список файлов должен быть глобальный и ему нафиг не сдались свойства которые конкретно должны использоваться в модальном окне.

Добавлено через 1 минуту
Выход только создать 2 списка с файлами. 1 глобальный другой в модальном окне но нафига дублировать одну и туже информацию?
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16166 / 11286 / 2892
Регистрация: 21.04.2018
Сообщений: 33,176
Записей в блоге: 2
07.04.2021, 15:52
Цитата Сообщение от Alexandr_7 Посмотреть сообщение
Я вообще без понятия как можно xaml использовать для написания полноценного кода.
Ну, так учить надо, а не игнорировать.
XAML - это основной язык WPF.
Но WPF - это инструмент создания GUI, а не всего приложения.
Вы же в это GUI пихаете всё подряд.
Из-за этого возникают задачи на которые WPF в принципе не рассчитан.
Да, их можно решить через гору дурно пахнущих костылей - что вы и делаете.
Но это костыли и работать они будут через раз.
Вам каждый раз придётся искать свой уникальный костыль к уникальной проблеме вами же созданной.

Цитата Сообщение от Alexandr_7 Посмотреть сообщение
Да без разницы.
Разница ОГРОМНАЯ.
Та задача на решение которой вы тратите несколько дней, решается типовым для WPF способом за полчаса.
Если вам пофигу на свой труд - тогда действительно без разницы.
0
управление сложностью
 Аватар для Почтальон
1693 / 1306 / 259
Регистрация: 22.03.2015
Сообщений: 7,545
Записей в блоге: 5
07.04.2021, 15:54

Не по теме:

Цитата Сообщение от Alexandr_7 Посмотреть сообщение
А вообще было бы интересно посмотренть как вы чисто в XAML создадите КОПИЮ РАБОТЫ Моего кода.
еще один :D со своим велосипедом



Цитата Сообщение от Alexandr_7 Посмотреть сообщение
список файлов должен быть глобальный и ему нафиг не сдались свойства которые конкретно должны использоваться в модальном окне
Вы не различаете данные и представление данных, отсюда и велосипед аля winForms в коде.

Добавлено через 47 секунд
Цитата Сообщение от Alexandr_7 Посмотреть сообщение
Выход только создать 2 списка с файлами. 1 глобальный другой в модальном окне но нафига дублировать одну и туже информацию?
ну да, лишний раз это подтверждает
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16166 / 11286 / 2892
Регистрация: 21.04.2018
Сообщений: 33,176
Записей в блоге: 2
07.04.2021, 15:59
Цитата Сообщение от Alexandr_7 Посмотреть сообщение
А вообще было бы интересно посмотренть как вы чисто в XAML создадите КОПИЮ РАБОТЫ Моего кода. Повторяю копию работы. Как уже сказал создавать свой элемент списка файлов не катит ибо список файлов должен быть глобальный и ему нафиг не сдались свойства которые конкретно должны использоваться в модальном окне.
Я не собираюсь для вашего любопытства что-либо делать.
Я могу попробовать помочь вам в изучении WPF, но только если вы сами проявите в этом желание.
И проблемы в вашем образовании не только в WPF, судя по вашему коду вы плохо знаете вообще ООП.
Поэтому пробелы в знаниях придётся сначала устранять вне привязывании к WPF.
Сначала надо нормально изучить ООП и Шарп.

Добавлено через 1 минуту
Цитата Сообщение от Alexandr_7 Посмотреть сообщение
ак уже сказал создавать свой элемент списка файлов не катит ибо список файлов должен быть глобальный
Он НЕ ДОЛЖЕН быть глобальным.
Таковым его сделали вы поскольку миз-за недостатка знаний не знаете как сделать по иному.

Добавлено через 1 минуту
Цитата Сообщение от Alexandr_7 Посмотреть сообщение
ак уже сказал создавать свой элемент списка файлов не катит ибо список файлов должен быть глобальный
Он НЕ ДОЛЖЕН быть глобальным.
Таковым его сделали вы поскольку миз-за недостатка знаний не знаете как сделать по иному.
0
 Аватар для Alexandr_7
87 / 22 / 6
Регистрация: 29.12.2015
Сообщений: 1,904
07.04.2021, 17:19  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Он НЕ ДОЛЖЕН быть глобальным.
Таковым его сделали вы поскольку миз-за недостатка знаний не знаете как сделать по иному.
Знаю я про делегаты но мне так легче чтобы к списку можно было обращаться из любого места я его сделал глобальным и поместил в статический класс. Я его еще использую в классе файлового менеджера в котором уже описаны методы работы с файлами.

Добавлено через 4 минуты
Что еще за BaseInps не нашел описания по шарпу?

Добавлено через 28 минут
Опишу суть. Есть статический класс для данных которые могут использоваться в любом окне и в любом классе.
Этими данными является такие как папка программы, и данные с игрой + список файлов:
C#
1
public static List<FileInfo> saveFiles;
Эти данные используются не кокретно в 1 месте а везде. Например файловый менеджер использует эти данные, главное окно и другие окна. Например окно для выбора файцлов и операции которые с файлами должно производить должно взять имена файлов из списка файлов и вернуть выбранный номер файла в списке и список выбранных файлов а также номер операции. В главном окне в зависимости от выбранной операции запускается то или иное действие.
Код по выполнению всех действий конечно же в классе файлового менеджера написан. но конкретно Файловый менеджер используется через главное кно и уже через события выводит информацию.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16166 / 11286 / 2892
Регистрация: 21.04.2018
Сообщений: 33,176
Записей в блоге: 2
07.04.2021, 17:52
Цитата Сообщение от Alexandr_7 Посмотреть сообщение
Знаю я про делегаты но мне так легче
Делегаты здесь совсем не причём.
В WPF они напрямую не используются вовсе.

Добавлено через 2 минуты
Цитата Сообщение от Alexandr_7 Посмотреть сообщение
Что еще за BaseInps не нашел описания по шарпу?
Базовая реализация INPC.
Вроде давал вам ссылку - хотя может и ошибаюсь.
Простые реализации для тем на форуме

Добавлено через 12 минут
Цитата Сообщение от Alexandr_7 Посмотреть сообщение
Опишу суть. Есть статический класс для данных которые могут использоваться в любом окне и в любом классе.
Использование подобной архитектуры нетипично в целом для Net платформы.
В Net принята иерархическая структура приложения, в которой вышележащие слои получают информацию от нижележащих.
И это относится ко ВСЕМ типам приложений: WPF, Формы, Консоль и др.
Статический класс он лежит ВНЕ иерархической структуры.
Поэтому в Net статические классы принято использовать только для иммутабельных свойств и полей (Colors, Brushes, все Enum и т.д.) или для статических методов работающих ТОЛЬКО СО СВОИМИ ПАРАМЕТРАМИ (Math, например).

Я поэтому вам и пишу, проблема не в том, что вы плохо знаете WPF.
Вы плохо знаете ООП, Net, Шарп.
И даже создавая Формы или Консоль, как вам кажется, правильно, в действительности вы игнорируете все принципы и правила ООП.
По сути вы создаёте Фортран программу используя синтаксис Шарпа.

По этой причине и нет никакого смысла показывать вам образец правильного решения.
Из-за больших пробелов в знаниях, вы просто не сможете его понять.
Для вас огромные трудности представляет даже просто использование элементарного конвертера в WPF.
Вы не знаете, что такое пространства имён, как их задавать и как на них ссылаться.
А это самые азы - первые 10 часов курса Шарпа И WPF.
0
 Аватар для Alexandr_7
87 / 22 / 6
Регистрация: 29.12.2015
Сообщений: 1,904
07.04.2021, 19:09  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
По этой причине и нет никакого смысла показывать вам образец правильного решения.
Из-за больших пробелов в знаниях, вы просто не сможете его понять.
Для вас огромные трудности представляет даже просто использование элементарного конвертера в WPF.
Вы не знаете, что такое пространства имён, как их задавать и как на них ссылаться.
А это самые азы - первые 10 часов курса Шарпа И WPF.
Пространство имен вроде бы автоматически задается при создании приложения или библиотеки.
Да я незнаю шарп до сканально и пишу уж как привык и как мне удобно. Поробуй помнить обсалютно все в шарпе. И так кое что не могу зпомнить приходится частенько лезть в гугл. Но всеже пишу исключительно как хоби. Для меня это не работа. К томуже в техникуме не изучали Шарп со стороны ООП.

Добавлено через 4 минуты
Про пространсво имен я вкурсе. Это namespace. Но как оно относится к делу не понятно. Повторюсь что я использую статический класс для глобальных данных только потому что мне так удобно. Я в курсе что скорее всего правильнее создать данные в 1 классе и передавать его другим классам если на то пошло. Но зачемхранить данные в главной форме чтобы передавать ихже другим когда как можно хранить данные в статическом классе и использовать везде?

Добавлено через 2 минуты
И WPF я использую как WinForms и мне так удобно. Ябы и не брал WPF если бы WinForms был такимже гибким для реализации дизайна. WPF я только из за гибкости к дизайну выбрал. Все.

Добавлено через 2 минуты
К томуже не я 1 использую WPF также как и WinForms да и они взамозаменяемые. Тоесть wpf можно использовать в WinForms как и на оборот WinForms можно использовать в WPF и я не вижу не 1 причины почему я должен делать по стандарту когда как Visual Studio позволяет мне это делать иначе.

Добавлено через 14 минут
И вообще я знаю отличия класса от статического класса. Мне и нужен класс на подобие Math тоесть класс который не надо создавать и к которому можно обращаться из любого места. Я также знаю что в таком классе обычно используются методы вычислений и т.п но что мешает в нем хранить данные чтобы к ним также можно было получать доступ нежели заниматься гемороем и передавать эти данные другим объектам. Хотя наверное 2ое даже будет более правильным.

Добавлено через 3 минуты
Как уже сказал список файлолв используется не только в модальном окне а значит если он будет в обычном классе то объект этого класса както нужно будет передать модальному окну тоесть делать это при вызове модального окна. И это уже говорит о том что в xaml прописать объекта клдасса невозможно так как этот объект класса будет находится не модальном окне а в коде главного окна.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16166 / 11286 / 2892
Регистрация: 21.04.2018
Сообщений: 33,176
Записей в блоге: 2
07.04.2021, 19:25
Alexandr_7, если вы не хотите изучать как создаются правильно приложения на Шарпе - это ваше личное дело.
Вот только такие пространные разглагольствования ни к чему.
Сами себя ими что ли убеждаете?

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

Но это ваше личное дело - делайте как вам угодно.
0
 Аватар для Alexandr_7
87 / 22 / 6
Регистрация: 29.12.2015
Сообщений: 1,904
07.04.2021, 19:39  [ТС]
Ну объясните если есть другие способы. Про расширения я тоже в курсе но они в данном контексте не уместны.
Вот для меня совсем не выгадно писать киломатры кода в 1 клссе. Это марока целая а когда ты создаешь в отдельном классе код но экземпляр этого класса помещаешь в главный класс (В данном случае класс главной формы / окна) то смысл. Да это кратко получается но все равно передача этих данных другим окнам или классам ну такое себе. К томуже опятьже xaml модального окна не должен никак взаимодействыовать с данными главного окна. Как вы себе это представляете вот не понимаю. Мордальному окну эти данные все равно нужно передать.

Добавлено через 1 минуту
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Но это ваше личное дело - делайте как вам угодно.
Ага. И смысл если мне помогать никто тогда не станет. Уж простите но лучшу я разбирусь как правильно чем буду тратить годы на то чтобы гдето выискивать то что мне нужно.

Добавлено через 2 минуты
Да и мне самому интересно как это в XAML пишется код что к cs вообще не прибигать но XAML терепеть не могу мне его синтаксис его код вот вообще никаким местом не понятны. Всеже я привык к шарпу а не к XAML

Добавлено через 1 минуту
Получается и вызывать окна и передавать им данные все через XAML можно. Это какойто бред. И тогда и искать данные и прочие тоже через XAML?

Добавлено через 7 минут
И вообще я думал XAML в WPF только для дизайна сделан но никак не писать полноценный код темболее речь не о калькуляторе идет речь идет о поиске и взаимодействии с файлами другой игры. В данном случае чтобы к этим файлам можно было легко обратится а также провести быстренько операции с ними. Это можно сделать и обычными батниками только зачем 10 батников если можно сделать красивый интерфейс и работать через него.

Добавлено через 4 минуты
Короче я конешно скину:
Eador_M_of_the_B_W_Launcher.7z
Но предупреждаю что WPF в данном случае используется как гибкий шаблон диизайна точно также как и WinForms но WinForms такой гибкости не дает.
Более того я и из WinForms переносил но допиливал чтобы более естественно это смотрелось.

Добавлено через 10 минут
И вот кстати предыдущая версия на WinForms:
Eador_M_of_the_B_W_Launcher.7z
Еще даже думал может просто элемент списка из WPF в WinForms добавить но так как WPF для дизайна гибкий то решил перенести под WPF и както я особо не встречал чтобы использовали только xaml в wpf но я смотрел с ютуба уроки.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16166 / 11286 / 2892
Регистрация: 21.04.2018
Сообщений: 33,176
Записей в блоге: 2
07.04.2021, 20:44
Цитата Сообщение от Alexandr_7 Посмотреть сообщение
Ага. И смысл если мне помогать никто тогда не станет.
Я вам сразу написал: если хотите НАУЧИТЬСЯ - то по возможности помогу.
А вот писать готовые примеры - не вижу смысла.

У вас ошибки в АРХИТЕКТУРЕ приложения.
И ошибки очень существенные, не касаемые собственно WPF.
Шарп приложения в принципе рассчитаны на другую архитектуру.
Даже больше не Шарп, а ООП приложения.

Чтобы исправить эти ошибки необходимо ПОЛНОСТЬЮ С НУЛЯ пересоздать всё приложение совершенно по иной методологии.
И от готового примера для вас не будет никакого толку.
И какой смысл мне тогда тратить на него время?

Добавлено через 3 минуты
Цитата Сообщение от Alexandr_7 Посмотреть сообщение
Короче я конешно скину:
Архив я посмотрю.
Но на будущее: намного удобнее было бы загрузить на GitHub. Там сразу я мог бы внести правки, и вы бы видели какие внесены изменения.
0
 Аватар для Alexandr_7
87 / 22 / 6
Регистрация: 29.12.2015
Сообщений: 1,904
07.04.2021, 23:31  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Я вам сразу написал: если хотите НАУЧИТЬСЯ - то по возможности помогу.
А вот писать готовые примеры - не вижу смысла.
У вас ошибки в АРХИТЕКТУРЕ приложения.
И ошибки очень существенные, не касаемые собственно WPF.
Шарп приложения в принципе рассчитаны на другую архитектуру.
Даже больше не Шарп, а ООП приложения.
Чтобы исправить эти ошибки необходимо ПОЛНОСТЬЮ С НУЛЯ пересоздать всё приложение совершенно по иной методологии.
И от готового примера для вас не будет никакого толку.
И какой смысл мне тогда тратить на него время?
Ну как уже сказал я пишу как мне удобно но кое что могу и не знать. Про классы, расширение, делегаты и наследование я в курсе. Правдо не использую расширение так как не нахожу где но вещь весьма полезное если нужно к объектам добавить методы. Кстати наследника FileInfo нельзя чтоли создать?

Добавлено через 5 минут
И не я один использую статичные классы для глобальных данных
https://www.youtube.com/watch?v=9Fp-w9EApLc
Правдо да можно у меня немного оптмизировать. Класс он и в африке класс следовательно и у статичных классов должны быть конструкторы.
0
 Аватар для Midian
610 / 392 / 198
Регистрация: 31.03.2013
Сообщений: 2,715
07.04.2021, 23:40
Цитата Сообщение от Alexandr_7 Посмотреть сообщение
Как можно передать окну которое будет находятся в другом потоке главное окно.
Окно будет запускать через отдельный класс который и будет создавать второстепенное окно в другом потоке.
Бегло прочитал всю ветку, в целом изначально идея бредовая, все окна создаются в основном потоке UI, инициализация "внутрянки" окна может быть в разных потоках, причем асинхронных, но окно, которое создается, всегда создается в главном потоке.

Добавлено через 1 минуту
Все остальные ваши идеи будут не верные, есть общий принцип проектирования WPF приложений с паттерном MVVM и взаимодействия UI элементов с их VM
1
 Аватар для Alexandr_7
87 / 22 / 6
Регистрация: 29.12.2015
Сообщений: 1,904
08.04.2021, 00:25  [ТС]
Про интерфейсы вылетело из головы. Конечно можно использовать но по сути интерфейсы имеют лишь заготовки методов а их реализацию нужно все равно делать в классе. Это удобно если нужно сделать 2 класса с одинаковыми методами чтобы не описывать каждый раз методы то в интерфейсе описываешь 1 раз. Только все равно без понятия как их применять в моем случае.

Добавлено через 3 минуты
Цитата Сообщение от Midian Посмотреть сообщение
Бегло прочитал всю ветку, в целом изначально идея бредовая, все окна создаются в основном потоке UI, инициализация "внутрянки" окна может быть в разных потоках, причем асинхронных, но окно, которое создается, всегда создается в главном потоке.
Добавлено через 1 минуту
Все остальные ваши идеи будут не верные, есть общий принцип проектирования WPF приложений с паттерном MVVM и взаимодействия UI элементов с их VM
Да надо отдельную тему создать. С идей вынести окно в другой поток я уже отказался. Я уже убедился что полукчения списка файлов процесс довольно таки быстрый так что в принципе можно и в томже потоке.
Другое дело что операции неад файлами все равно происходят в другом потоке и через события выводится процесс операций.

Добавлено через 9 минут
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Чтобы исправить эти ошибки необходимо ПОЛНОСТЬЮ С НУЛЯ пересоздать всё приложение совершенно по иной методологии.
Повторяю я вообще не знаю использования XAML и написания в нем полноценного кода а если писать по аналогии с WinForms то я бы и не сказал что у меня прям большие косяки. XAML я думал использовать для написания в нем дизайна. Но не полноценного кода таких как поиск файлов, работа с файлами, открытие других окон. К томуже на ютубе я вообще не нашел того ктоб этим занимался раз есть для кода cs.

Добавлено через 22 минуты
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
using Simplified;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Windows.Forms;
 
namespace SelectFilesDialog
{
    /// <summary>Это не совсем правильная реализация - нужно разнести по разным классам.
    /// Но для упрощения примера всё сделано в одном.</summary>
    public class SelectFilesMVM : BaseInpc
    {
        private static readonly IEnumerable<FileInfo> emptyFiles = Enumerable.Empty<FileInfo>();
        private DirectoryInfo _selectedDirectory;
        private IEnumerable<FileInfo> _files = emptyFiles;
        private IEnumerable<FileInfo> _selectedFiles = emptyFiles;
 
        public DirectoryInfo SelectedDirectory { get => _selectedDirectory; set => Set(ref _selectedDirectory, value); }
 
        public IEnumerable<FileInfo> Files { get => _files; private set => Set(ref _files, value); }
        public IEnumerable<FileInfo> SelectedFiles { get => _selectedFiles; private set => Set(ref _selectedFiles, value); }
        private RelayCommand _selectDirectoryCommand;
        public RelayCommand SelectDirectoryCommand => _selectDirectoryCommand
           ?? (_selectDirectoryCommand = new RelayCommand(SelectDirectoryExecute));
 
        private void SelectDirectoryExecute()
        {
            FolderBrowserDialog folderBrowserDialog = new FolderBrowserDialog();
            folderBrowserDialog.SelectedPath = SelectedDirectory?.FullName;
 
            var result = folderBrowserDialog.ShowDialog();
            if (result == DialogResult.OK || result == DialogResult.Yes)
            {
                string directory = folderBrowserDialog.SelectedPath;
                SelectedDirectory = new DirectoryInfo(directory);
                Files = Array.AsReadOnly(SelectedDirectory.GetFiles());
                SelectedFiles = emptyFiles;
            }
        }
 
        private RelayCommand _selectFilesCommand;
 
        public RelayCommand SelectFilesCommand => _selectFilesCommand
            ?? (_selectFilesCommand = new RelayCommand<IEnumerable<object>>(SelectFilesExecute, SelectFilesCanExecute));
 
        private bool SelectFilesCanExecute(IEnumerable<object> files)
            => files != null && files.OfType<FileInfo>().Any();
 
        private void SelectFilesExecute(IEnumerable<object> files)
        {
            SelectedFiles = files.OfType<FileInfo>().ToList().AsReadOnly();
        }
    }
}
Мне это не подхолдит тем что сам список с файлами это лишь малая часть всего.
Итак. Что я делаю в своей программе. Ну во первых я пытаюсь читать глобальные данные из json и если получилось то все. Данные загружены. Если нет то я запрашиваю чтобы пользователь укеазал эти данные вручную. Под данными я подразумиваю:
Игра (Полный путь и имя эккзешника)
Папка с сохранениями
Сохранения Астрала
Сохранение Осколка
(Эти сохранения в игре разные. Лично у меня для Астрала и Осколка определенны 2 сохранения которыми я пользуюсь.)
Ну и также hex редактор (Полный путь и имя эккзешника)
Вот эти данные должны быть глобальными. И храню я их в статическом классе чтобы не передавать класс другим окнам. (Возможно есть другой способ. Я не в курсе)
И именно после загрузки этих данных список с файлами сохранений должен создаваться. Более того должна быть возможность его обновить и список также должен быть глобальным ну не обязательно но файловому менеджеру нужно передавать этот спиок. Файловый менеджер все равно использует GetFiles чтобы получить теже самые данные так зачем лишний раз это делать если ему можно дать список.
Так что даже если создавать для списка с файлами отдельный класс и гдето его реализовывать то в любом случае этот список нужно дать не только модальному окну но и файловому менеджеру.
В вашем коде определенно нужно избавится от SelectDirectoryExecute() так как данные уже известны на момент создания списка с файлами.
0
управление сложностью
 Аватар для Почтальон
1693 / 1306 / 259
Регистрация: 22.03.2015
Сообщений: 7,545
Записей в блоге: 5
08.04.2021, 07:19
Цитата Сообщение от Alexandr_7 Посмотреть сообщение
Это удобно если нужно сделать 2 класса с одинаковыми методами чтобы не описывать каждый раз методы то в интерфейсе описываешь 1 раз.
нет, интерфейс позволяет избавиться от зависимости, а не тупо "потому что описать 1 раз", это еще один факт, подтверждающий незнание ООП
Цитата Сообщение от Alexandr_7 Посмотреть сообщение
Вот эти данные должны быть глобальными. И храню я их в статическом классе чтобы не передавать класс другим окнам. (Возможно есть другой способ. Я не в курсе)
Использовать модель, к которой будут обращаться клиенты при необходимости, плюс подписка клиентов об изменении модели. А чтобы управлять окнами, должен быть один диспетчер, который на основании модели представления будет вызывать определенное окно (он же про все окна знает).
Цитата Сообщение от Alexandr_7 Посмотреть сообщение
Ага. И смысл если мне помогать никто тогда не станет.
А смысл помогать делать неправильно? У интернета очень хорошая память (пока не наступил 1984, если понимаете о чем я), поэтому этот пост возможно кому-то пригодится (хотя читать 50+ постов не очень хочется). Выше уже дали ссылку на статью по архитектуре, читайте.
1
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16166 / 11286 / 2892
Регистрация: 21.04.2018
Сообщений: 33,176
Записей в блоге: 2
08.04.2021, 11:09
Цитата Сообщение от Alexandr_7 Посмотреть сообщение
И не я один использую статичные классы для глобальных данных
https://www.youtube.com/watch?v=9Fp-w9EApLc
Это костыль для неумех.
По простому - говнокод.
С него не следует брать пример.
Где и для чего используются в Net статичные классы я вам уже объяснил.
Если вам моих слово мало, может посмотреть все Net библиотеки - десятки или сотни тысяч типов.

Добавлено через 2 минуты
Цитата Сообщение от Alexandr_7 Посмотреть сообщение
Ну как уже сказал я пишу как мне удобно но кое что могу и не знать.
Вот в этом и проблема - что вы не кое-что не знаете, а не знает очень много начиная с самих азов, базиса ООП и Шарпа.
Как я вам уже писал, у вас пробелы по сути уже для первых 10 часов учебного курса.

Поэтому пишите не "как вам удобно", а "как умеете".
А умеете вы очень плохо из-за огромных пробелов в знаниях.

Добавлено через 10 минут
Цитата Сообщение от Alexandr_7 Посмотреть сообщение
Повторяю я вообще не знаю использования XAML и написания в нем полноценного кода а если писать по аналогии с WinForms то я бы и не сказал что у меня прям большие косяки.
Я вам вроде давал ссылку на тему от Storm23: Архитектура ПО в WinForms (FAQ & HowTo)
Эта статья полностью применением и к Консольным приложениям.
И если у вас не подобная архитектура в Формах или Консоли, то у вас БОЛЬШИЕ косяки в реализации Решения.

Подобная же архитектура, с учётом особенностей, была разработана и для WPF - паттерн MVVM.
В исключительно редких случаях, в решении каких-то ультрамелких, обособленных задач реализация WPF Решения вне MVVM может быть оправдана.

При этом заметьте - я не слова не пишу за XAML.
Вы можете задавать эти же Привязки и Контекст Данных на Шарпе, но XAML этого гораздо удобнее и нагляднее.
А вот то, что вы вообще не используете Привязки и Контекст Данных - это действительно большой косяк.
Там где можно сделать одной строкой XAML кода - вы будете наворачивать десяток или более строк неочевидного Шарп кода.

Кстати, Привязки можно было использовать ещё с Форм.
Но уверен на 100%, что ни в одном приложении вы их не использовали.

Добавлено через 4 минуты
Цитата Сообщение от Alexandr_7 Посмотреть сообщение
Мне это не подхолдит тем что сам список с файлами это лишь малая часть всего.
Я это понимаю.
Поэтому вам и написал, что пример правильной реализации отдельного куска - бессмыслен.

У вас неправильная архитектура Решения не для WPF.
Она вообще для Шарпа в целом неправильная.

И в таком Решении, сделанном "через ж@пу", никакого лоска не наведёшь.
Его надо целиком отправлять в унитаз и писать заново.
И без разницы какой UI будет у него - хоть даже Консоль.
0
 Аватар для Alexandr_7
87 / 22 / 6
Регистрация: 29.12.2015
Сообщений: 1,904
09.04.2021, 18:09  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Это костыль для неумех.
По простому - говнокод.
С него не следует брать пример.
Где и для чего используются в Net статичные классы я вам уже объяснил.
Если вам моих слово мало, может посмотреть все Net библиотеки - десятки или сотни тысяч типов.
Ну окей тогда посредством чего делаются глобальные данные. Но в принципе не сложно переделать.
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Вот в этом и проблема - что вы не кое-что не знаете, а не знает очень много начиная с самих азов, базиса ООП и Шарпа.
Как я вам уже писал, у вас пробелы по сути уже для первых 10 часов учебного курса.
Поэтому пишите не "как вам удобно", а "как умеете".
А умеете вы очень плохо из-за огромных пробелов в знаниях.
Ну и чего я не знаю. Да я незнаю многих сокуращений а иногда и восек их не использую чтобы код мне было удобно читать. Яже не только пишу код но и чатаю его.
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Эта статья полностью применением и к Консольным приложениям.

И если у вас не подобная архитектура в Формах или Консоли, то у вас БОЛЬШИЕ косяки в реализации Решения.
У меня не консольное приложение. Считайте что у меня приложение Win Forms. Я уже сказал что WPF выбрал тупо по гибкости дизайна а не его XAML. Более. Терпеть не могу XAML и если бы c# давала другой выход то с удовольствием бы воспользовался. Но нет. Есть WinForms есть WPF есть UWP и есть Win UI новый. UWP и Win UI отпадают по причинам отсуствия возможности создания полноценного переносного проекта и запарной установкой с их сертификатами. Остается только WinForms и WPF тут преимуществом сыграла роль что WPF гибкий для дизайна когда как в Win Forms пиши компонент с нуля но я профан в плане написания компонентов на WinForms.

Цитата Сообщение от Элд Хасп Посмотреть сообщение
Я вам вроде давал ссылку на тему от Storm23: Архитектура ПО в WinForms (FAQ & HowTo)
Я больше учусь по примерам. Я очень сильно не люблю читать длинные монотонные научные теории и все равно не понимаю. Больше понятно когда написано кратко и с примерами.
Опятьже про интерфейсы я в курсе но без понятия где мне у себя применять интерфейс?
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Вы можете задавать эти же Привязки и Контекст Данных на Шарпе, но XAML этого гораздо удобнее и нагляднее.
Ну кому как честно говоря. Учитывая что я до сих пор не могу освоить такой простой язык как http и css то для меня xaml очень трудный язык хотя синтаксис в нем простой но вот команды вот это для меня сложно.
Цитата Сообщение от Элд Хасп Посмотреть сообщение
А вот то, что вы вообще не используете Привязки и Контекст Данных - это действительно большой косяк.
Там где можно сделать одной строкой XAML кода - вы будете наворачивать десяток или более строк неочевидного Шарп кода.
Вы имеете в виду про ItemsSource?
C#
1
2
3
4
listSaves.ItemsSource = SGeneral.saveFiles;
 
            if (selectIndexSave < listSaves.Items.Count)
                listSaves.SelectedIndex = selectIndexSave;
И чем это отличается от того что если бы я указывал это через XAML разве что только XAML не видит saveFiles видимо из за SGeneral который статический класс. Ладно я заменю SGeneral на просто General на обычный класс но мне тогда объявлять переменную этого класса (Я называю это объектом) и прийдется создавать этот объект в cs главного окна и передавать его уже другим окнам. или же cs самой программы но я вообще не люблю писать там что либо хотя наверное даже правильнее было бы чтото глобальное создавать прям там. Вот тут я вообще без понятия.
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Кстати, Привязки можно было использовать ещё с Форм.
Но уверен на 100%, что ни в одном приложении вы их не использовали.
Не особо вас понял. Ну да я знаю что из 1 формы можно получить доступ к другой если в другой формме эти элементы являются публичными но как говорицца я не люблю такой способ. Как минимум если ты хочешь связать 2 формы то используй посредника между ними. У меня это статичный класс но это неправильно. Как правильно не в курсе. Опятьжэже по ютубу по вашим словам правильных уроков нет от слова совсем.
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Я это понимаю.
Поэтому вам и написал, что пример правильной реализации отдельного куска - бессмыслен.
У вас неправильная архитектура Решения не для WPF.
Она вообще для Шарпа в целом неправильная.
И в таком Решении, сделанном "через ж@пу", никакого лоска не наведёшь.
Его надо целиком отправлять в унитаз и писать заново.
И без разницы какой UI будет у него - хоть даже Консоль.
Вы хотите сказать что в моем коде прям все неправильно?
Ладно про статический класс забили. Но файловый менеджер а он та каким местом неправильный. Да есть 1 косячек мне приходится в события окончания передавать какая операция завершилась и дело тут в том что я использую 1 объект файлового менеджера на множества операций. Только из за экономии памяти. Создавать для каждой операции свой объект конечно легче но тем не менее это и памяти тратится больше.
Мне все равно нужно было делать так чтобы 1 полоска могла использоваться для нескольких операций. Приоритетной является распаковка сохранений но все равно нужно было учитывать прям много моментов например если распаковка завершилась а игра все еще загружается или уже загружена то информацию об этом нужно отобразить так что условий пришлось делать кучу. Даже запутался сам в этом но добился рабочего результата.
Пример который я скинул полностью рабочий но конечно протестировать него без игры у вас не выйдет.

Добавлено через 3 минуты
Цитата Сообщение от Почтальон Посмотреть сообщение
нет, интерфейс позволяет избавиться от зависимости, а не тупо "потому что описать 1 раз", это еще один факт, подтверждающий незнание ООП
Ну да. Интерфейс нужен там где нужно наследовать много класов. Но я например изучал интерфейсы по этому уроку:
https://www.youtube.com/watch?v=FQf14kj8HwU&t=545s
И по этому уроку я вообще не понял как его можно применить в моем случае. Интерфейс не делает тебе данные глобальными.
Цитата Сообщение от Почтальон Посмотреть сообщение
Использовать модель, к которой будут обращаться клиенты при необходимости, плюс подписка клиентов об изменении модели. А чтобы управлять окнами, должен быть один диспетчер, который на основании модели представления будет вызывать определенное окно (он же про все окна знает).
Ох блин. Я по научнаму вот вообще не понимаю. Я могу это знать но представлять это по своему.

Добавлено через 4 минуты
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Я вам вроде давал ссылку на тему от Storm23: Архитектура ПО в WinForms (FAQ & HowTo)
Решил почитать пример и сразу:
Цитата Сообщение от Storm23 Посмотреть сообщение
Главное что вы должны знать об архитектуре ПО – это то, что пользовательский интерфейс и данные должны быть разделены.
Самое плохое что вы можете сделать – это разместить весь код программы в Form1.cs.
Я это в курсе и стараюсь так не делать.
Про модель данных я не очень понимаю слова. На сколько я понял это объявленные переменные, функции в классе?

Добавлено через 4 минуты
Цитата Сообщение от Storm23 Посмотреть сообщение
Нет, нельзя! Все данные должны храниться в классах модели данных. Не храните данные в DataGridView, TreeView и т.п. Эти контролы должны лишь отображать данные модели, но не хранить их.
Если у вас происходят изменения данных, то измените их сначала в модели данных, а затем ваш интерфейс сам должен отобразить изменившиеся данные из модели.
Я не храню данные в компонентах на подобие TextBox и тому подобное.
Я лишь использую события элементов для изменения этих данных но данные давно уже как храню в классе который обычно называю settings тем более серилизация и десерилизация целого класса вещь удобная поэтому храню данные там а в элементах отображаю эту информацию.

Добавлено через 9 минут
Еще поблема в том что я не могу продумать работу всеей программы зароанее целиком. Очень сильная проблемма особенно когда работаешь с моделью данных.

Добавлено через 3 минуты
Ладно. Тему можно реально закрывать. Начну с нуля. Для начало нужно разобраться с правильной работой Файлового менеджера. Ибо то что я там на куралесил меня все равно не устраивает. Создам отдельную тему.
0
управление сложностью
 Аватар для Почтальон
1693 / 1306 / 259
Регистрация: 22.03.2015
Сообщений: 7,545
Записей в блоге: 5
09.04.2021, 18:41
Цитата Сообщение от Alexandr_7 Посмотреть сообщение
И по этому уроку я вообще не понял как его можно применить в моем случае. Интерфейс не делает тебе данные глобальными.
Интерфейс еще можно передавать в качестве параметра, иногда это упрощает
Цитата Сообщение от Alexandr_7 Посмотреть сообщение
Начну с нуля. Для начало нужно разобраться с правильной работой Файлового менеджера.
вооо, очень мудное решение
0
 Аватар для Alexandr_7
87 / 22 / 6
Регистрация: 29.12.2015
Сообщений: 1,904
09.04.2021, 18:53  [ТС]
Цитата Сообщение от Почтальон Посмотреть сообщение
Интерфейс еще можно передавать в качестве параметра, иногда это упрощает
Этого не знал. Почему то юуберы не затрагивали этого. В любом случае вот тема:
Работа файлового менеджера и связанное с ним
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.04.2021, 18:53

Как сделать одно модальное окно для всех товаров без использования Джаваскрипта
Сейчас товары выводятся с модальным окном циклом http://wnero.esy.es/frontend/web/index.php?r=site/shop &lt;?php foreach...

Модальное окно без jQuery
Здравствуйте. Подскажите пожалуйста модальное окно без использования библиотек, таких как jQuery. Чтобы показать одно вспл. окно не гуд...

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

Верстка без адаптации и модальное окно (photoSwip)
При зуме сайта нужно что бы модальное окно приложения photoSwipe открывалось по размерам текущего видимого окна. Добавление viewport не...

Окно с тремя метками и модальное окно для изменения их текста
Главное окно (фиксированного размера) содержит три метки. При щелчке на одной из меток появляется модальное окно с полем ввода и кнопками...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
Новые блоги и статьи
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru