Форум программистов, компьютерный форум, киберфорум
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.91/34: Рейтинг темы: голосов - 34, средняя оценка - 4.91
 Аватар для INexteR
17 / 16 / 1
Регистрация: 25.01.2023
Сообщений: 468

Приложение MVVM. Диалог добавления/редактирования товара: получение данных, вызов, взаимодействие с VM и прочее

09.03.2023, 14:42. Показов 9351. Ответов 207
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В этой теме обсуждается только вопросы по реализации Диалога редактирования товара и связанных с этим действиях .
Основная тема: Приложение MVVM. VMs и навигация
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Я изначально предлагал другой вариант, гораздо проще реализуемый:
Просто в одном варианте задания были требования по реализации редактирования с помощью контекстного меню. Вот поэтому я и заинтересовался. К тому же хотелось получить какой-то опыт работы с ним

Добавлено через 3 минуты
Меня интересует маппер. Он инициализирует свойства составного типа такие как Manufacturer?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.03.2023, 14:42
Ответы с готовыми решениями:

Приложение MVVM. Контекстное меню (удаление, редактирование) для элемента (Товара) в ListBox
Да, для добавления будет отдельная кнопка где-то сверху. А для редактирования давайте создадим контекстное меню для каждого элемента. Хотя...

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

Взаимодействие с базой данных в MVVM
У меня есть класс, в котором реализована логика взаимодействия с БД, все таблицы хранятся в этой структуре в памяти. Этот класс...

207
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16165 / 11285 / 2891
Регистрация: 21.04.2018
Сообщений: 33,174
Записей в блоге: 2
15.03.2023, 21:58
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от INexteR Посмотреть сообщение
Имею в виду Background. Мне нужно окрасить фон. BorderBrush, возможно, шаблон подхватывает, но не он нужен
C#
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
        {
            InitializeComponent();
 
            cBox.LayoutUpdated += OnLayoutUpdated;
            backgroundBinding = new Binding()
            {
                Path = new(Control.BackgroundProperty),
                Source = cBox
            };
 
        }
 
        private readonly Binding backgroundBinding;
        private void OnLayoutUpdated(object? sender, EventArgs e)
        {
            var tBtn = (Control)cBox.Template.FindName("toggleButton", cBox);
            var border = (FrameworkElement)tBtn.Template.FindName("templateRoot", tBtn);
            border.SetBinding(Control.BackgroundProperty, backgroundBinding);
        }
0
 Аватар для INexteR
17 / 16 / 1
Регистрация: 25.01.2023
Сообщений: 468
15.03.2023, 23:15  [ТС]
Элд Хасп, ага, значит Вы элементы шаблона находите и их окрашиваете. Ну, как вариант. А вам самим раньше не приходилось менять фон ComboBox?

Добавлено через 5 минут
По поводу самой программы. Мне нужно как-то в зависимости от роли пользователя менять компоновку кнопок и пунктов меню. Как это сделать с функциональной точки зрения? Задавать Visibility?
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16165 / 11285 / 2891
Регистрация: 21.04.2018
Сообщений: 33,174
Записей в блоге: 2
15.03.2023, 23:21
Цитата Сообщение от INexteR Посмотреть сообщение
А вам самим раньше не приходилось менять фон ComboBox?
Нет.
Цитата Сообщение от INexteR Посмотреть сообщение
элементы шаблона находите и их окрашиваете.
Задаю привязку к свойству ComboBox. И уже можно через это свойство менять.
Честно говоря, не понимаю почему так не сделано в дефолтном шаблоне.

Добавлено через 1 минуту
Цитата Сообщение от INexteR Посмотреть сообщение
Как это сделать с функциональной точки зрения? Задавать Visibility?
Этот вариант. Или менять представления.
0
 Аватар для INexteR
17 / 16 / 1
Регистрация: 25.01.2023
Сообщений: 468
16.03.2023, 09:42  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Или менять представления.
А как это?

Добавлено через 24 минуты
Элд Хасп, ваше решение работает, но только вот я не указал, что в моем случае для ComboBox задан режим IsEditable. От этого у него меняется шаблон. Ну ладно, тут я сам разберусь
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16165 / 11285 / 2891
Регистрация: 21.04.2018
Сообщений: 33,174
Записей в блоге: 2
16.03.2023, 11:27
Цитата Сообщение от INexteR Посмотреть сообщение
что в моем случае для ComboBox задан режим IsEditable. От этого у него меняется шаблон.
Ну, по аналогии найдите TextBox с именем PART_EditableTextBox и привяжите его фон.

Добавлено через 2 минуты
Цитата Сообщение от INexteR Посмотреть сообщение
А как это?
Через триггеры менять Шаблоны или Шаблоны Данных, в которых задана разная визуализация.
По аналогии как мы меняем страницы в Основном Окне.
Так же можно сделать в любом Регионе.
0
 Аватар для INexteR
17 / 16 / 1
Регистрация: 25.01.2023
Сообщений: 468
16.03.2023, 12:11  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Ну, по аналогии найдите TextBox с именем PART_EditableTextBox и привяжите его фон.
Вот сидел и разбирался в этом шаблоне полтора часа. Фон-то я быстро сменил, но в дополнение я захотел сузить белую границу вокруг поля ввода. Перебирал все элементы подряд и считал, что нужно повлиять именно на свойство BorderThickness. В этиге это вообще Margin оказалось
C#
1
2
3
4
5
var PART_EditableTextBox = (TextBox)cBox.Template.FindName("PART_EditableTextBox", cBox);
PART_EditableTextBox.Margin = new(1);
 
var PART_ContentHost = (ScrollViewer)PART_EditableTextBox.Template.FindName("PART_ContentHost", PART_EditableTextBox);
PART_ContentHost.Background = cBox.Background;
Добавлено через 2 минуты
Очень ужасный шаблон у ComboBox. Куча ненужных условий в триггерах. К тому же стили и шаблоны разрознены друг от друга

Добавлено через 3 минуты
Кстати, установка Background именно для PART_EditableTextBox не дает эффекта. Так как в его стиле задан шаблон, в котором присутствует лишь ScrollViewer PART_ContentHost, у которого Background="Transparent", а не "{TemplateBinding Background}"
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16165 / 11285 / 2891
Регистрация: 21.04.2018
Сообщений: 33,174
Записей в блоге: 2
16.03.2023, 15:59
Цитата Сообщение от INexteR Посмотреть сообщение
Очень ужасный шаблон у ComboBox. Куча ненужных условий в триггерах. К тому же стили и шаблоны разрознены друг от друга
У него много разных режимов.
Для каждого режима активируется своя часть шаблона.
Шаблон, действительно, очень сложный, если сравнивать с ItemsControl, ListBox.
Но сравните с DataGrid, например.

Цитата Сообщение от INexteR Посмотреть сообщение
Кстати, установка Background именно для PART_EditableTextBox не дает эффекта. Так как в его стиле задан шаблон, в котором присутствует лишь ScrollViewer PART_ContentHost, у которого Background="Transparent"
Значит надо "поймать" элемент на фоне которого показывается PART_EditableTextBox и менять его фон.
0
 Аватар для INexteR
17 / 16 / 1
Регистрация: 25.01.2023
Сообщений: 468
16.03.2023, 16:49  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Но сравните с DataGrid, например.
Спасибо, пожалуй откажусь. Знаю, что там действительно можно заблудиться.
Цитата Сообщение от Элд Хасп Посмотреть сообщение
начит надо "поймать" элемент на фоне которого показывается PART_EditableTextBox и менять его фон.
Сейчас тогда попробую выудить этот элемент

Добавлено через 5 минут
А Вы вот этот вариант одобряете? Или у Andrey-MSK лучше
Цитата Сообщение от INexteR Посмотреть сообщение
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
private readonly ItemContainerGenerator generator;
public ProductsView()
{
    InitializeComponent();
    generator = list.ItemContainerGenerator;
    generator.ItemsChanged += Generator_ItemsChanged;
}
private void Generator_ItemsChanged(object sender, ItemsChangedEventArgs e)
{
    if (e.Action is NotifyCollectionChangedAction.Add)
    {
        var container = (ListBoxItem)generator.ContainerFromIndex(e.Position.Index);
        container.BringIntoView();
    }
}
0
 Аватар для Andrey-MSK
3390 / 2276 / 388
Регистрация: 14.08.2018
Сообщений: 7,696
Записей в блоге: 4
16.03.2023, 17:20
Цитата Сообщение от INexteR Посмотреть сообщение
Или у Andrey-MSK лучше
В моём варианте нет ни строчки в CB
0
 Аватар для INexteR
17 / 16 / 1
Регистрация: 25.01.2023
Сообщений: 468
16.03.2023, 17:59  [ТС]
Andrey-MSK, я не считаю cb чем-то плохим. В данном случае код оказывает эффект чисто на элементы управления и он не в курсе о каких-то конкретных данных

Добавлено через 58 секунд
По-моему куда хуже будет для каждого действия плодить классы поведений

Добавлено через 5 минут
Элд Хасп, смотрите. Ниже приведена часть кода шаблона ComboBox. Это именно шаблон ComboBoxEditableTemplate
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<Grid x:Name="templateRoot" SnapsToDevicePixels="true">
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="*"/>
        <ColumnDefinition MinWidth="{DynamicResource {x:Static SystemParameters.VerticalScrollBarWidthKey}}" Width="0"/>
    </Grid.ColumnDefinitions>
    <Popup x:Name="PART_Popup" AllowsTransparency="true" Grid.ColumnSpan="2" IsOpen="{Binding IsDropDownOpen, RelativeSource={RelativeSource TemplatedParent}}" Placement="Bottom" PopupAnimation="{DynamicResource {x:Static SystemParameters.ComboBoxPopupAnimationKey}}">
        <theme:SystemDropShadowChrome x:Name="shadow" Color="Transparent" MinWidth="{Binding ActualWidth, ElementName=templateRoot}" MaxHeight="{TemplateBinding MaxDropDownHeight}">
            <Border x:Name="dropDownBorder" Background="{DynamicResource {x:Static SystemColors.WindowBrushKey}}" BorderBrush="{DynamicResource {x:Static SystemColors.WindowFrameBrushKey}}" BorderThickness="1">
                <ScrollViewer x:Name="DropDownScrollViewer">
                    <Grid x:Name="grid" RenderOptions.ClearTypeHint="Enabled">
                        <Canvas x:Name="canvas" HorizontalAlignment="Left" Height="0" VerticalAlignment="Top" Width="0">
                            <Rectangle x:Name="opaqueRect" Fill="{Binding Background, ElementName=dropDownBorder}" Height="{Binding ActualHeight, ElementName=dropDownBorder}" Width="{Binding ActualWidth, ElementName=dropDownBorder}"/>
                        </Canvas>
                        <ItemsPresenter x:Name="ItemsPresenter" KeyboardNavigation.DirectionalNavigation="Contained" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
                    </Grid>
                </ScrollViewer>
            </Border>
        </theme:SystemDropShadowChrome>
    </Popup>
    <ToggleButton x:Name="toggleButton" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Grid.ColumnSpan="2" IsChecked="{Binding IsDropDownOpen, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}" Style="{StaticResource ComboBoxToggleButton}"/>
    <Border x:Name="border" Background="{StaticResource TextBox.Static.Background}" Margin="{TemplateBinding BorderThickness}">
        <TextBox x:Name="PART_EditableTextBox" HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}" IsReadOnly="{Binding IsReadOnly, RelativeSource={RelativeSource TemplatedParent}}" Margin="{TemplateBinding Padding}" Style="{StaticResource ComboBoxEditableTextBox}" VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"/>
    </Border>
</Grid>
Так вот. Видите в самом низу элемент Border c x:Name="border". Эта рамка загадочная в том, что я не могу получить на нее ссылку по имени. То есть код cBox.Template.FindName("border", cBox) выдает null. В то же время, TextBox x:Name="PART_EditableTextBox" внутри рамки находится с помощью данного метода без проблем. Как это понимать?
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16165 / 11285 / 2891
Регистрация: 21.04.2018
Сообщений: 33,174
Записей в блоге: 2
16.03.2023, 20:07
Цитата Сообщение от INexteR Посмотреть сообщение
А Вы вот этот вариант одобряете? Или у Andrey-MSK лучше
Если правильно понял, разница только в реализации в CB или в Behavior. Вы за это?

И по функционалу, конечно, отличаются. У вас проматывает до нового добавленного. У него до выделенного.
Но это разница только в разных ТЗ, а не по существу.

Добавлено через 3 минуты
Цитата Сообщение от INexteR Посмотреть сообщение
я не считаю cb чем-то плохим.
Помните я вам уже писал (по другому поводу) "Если хотите расти, то обосновывайте свою точку зрения, а не просто высказывайте свои выводы". Не зная как вы пришли к таким выводам, невозможно подсказать где вы ошибаетесь, ну, или напротив правы.

В данном случае:
- по каким критериям вы оцениваете плохо-хорошо?
- насколько это соответствует общим принципам ООП, SOLID?
- с каким другими реализациями вы сравнивали?
- в чём плюсы и минусы?
Ну, и т.д.
0
 Аватар для INexteR
17 / 16 / 1
Регистрация: 25.01.2023
Сообщений: 468
16.03.2023, 20:09  [ТС]
Элд Хасп, я не могу как-то взять и подправить шаблон DataTemplate? Не для какого-то отдельного элемента его модифицировать, а сам шаблон. Чтобы позже его применить к элементам. Не получится ли с помощью свойства VisualTree как-то сделать это? И Вы не знаете, почему эти шаблоны так неудобно сделаны в том плане, что динамически в них можно добавить элемент какого-то типа с помощью метода AppendChild, а удалить нельзя?
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16165 / 11285 / 2891
Регистрация: 21.04.2018
Сообщений: 33,174
Записей в блоге: 2
16.03.2023, 20:21
Цитата Сообщение от INexteR Посмотреть сообщение
Эта рамка загадочная в том, что я не могу получить на нее ссылку по имени. То есть код cBox.Template.FindName("border", cBox) выдает null. В то же время, TextBox x:Name="PART_EditableTextBox" внутри рамки находится с помощью данного метода без проблем. Как это понимать?
У меня вроде без проблем срабатывает:
C#
1
2
3
4
5
6
7
8
        private void OnLayoutUpdated(object? sender, EventArgs e)
        {
            var tBord = (FrameworkElement)cBox.Template.FindName("border", cBox);
            var tBox = (FrameworkElement)cBox.Template.FindName("PART_EditableTextBox", cBox);
            var border = (FrameworkElement?) tBox?.Parent;
            Debug.WriteLine(ReferenceEquals(tBord, border)); // Выводит True
            border?.SetBinding(Control.BackgroundProperty, backgroundBinding);
        }
Добавлено через 2 минуты
Цитата Сообщение от INexteR Посмотреть сообщение
я не могу как-то взять и подправить шаблон DataTemplate?
Нет.
Перед первым применением Стили и Шаблоны замораживаются.
Более точно не замораживаются, а блокируются от изменений IsSealed=true.
0
 Аватар для INexteR
17 / 16 / 1
Регистрация: 25.01.2023
Сообщений: 468
16.03.2023, 20:23  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
по каким критериям вы оцениваете плохо-хорошо?
Плохо тогда, когда внешний вид приложения знает о данных и вмешивается в работу с ними. Тут такого нет. Внешний вид оказывает влияние сам на себя.
Цитата Сообщение от Элд Хасп Посмотреть сообщение
насколько это соответствует общим принципам ООП, SOLID?
Тут я пока в ступоре
Цитата Сообщение от Элд Хасп Посмотреть сообщение
- с каким другими реализациями вы сравнивали?
Не сравнивал. Как мне кажется, будет трудно найти пример с похожим замыслом.
Цитата Сообщение от Элд Хасп Посмотреть сообщение
- в чём плюсы и минусы?
Плюс в том, что добавленный элемент появляется на виду. А минус, возможно, в том, что помимо добавления могут быть совершены другие действия, и обработчику приходится выяснять что это было именно добавление

Добавлено через 1 минуту
Цитата Сообщение от Элд Хасп Посмотреть сообщение
У меня вроде без проблем срабатывает:
Я вызываю этот метод в обработчике Loaded. Там TextBox находится, а родительская рамка нет
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16165 / 11285 / 2891
Регистрация: 21.04.2018
Сообщений: 33,174
Записей в блоге: 2
16.03.2023, 20:30
Цитата Сообщение от INexteR Посмотреть сообщение
И Вы не знаете, почему эти шаблоны так неудобно сделаны в том плане,
Шаблоны, стили - это "полна ж@па огурцов ...."
Есть официальная рекомендация от MS что с ними не нужно на Шарпе работать. Использовать только в XAML.

Добавлено через 53 секунды
Там есть очень много internal членов, которые недоступны стороннему коду.

Добавлено через 6 минут
Там есть очень много internal членов, которые недоступны стороннему коду.
Цитата Сообщение от Элд Хасп Посмотреть сообщение
- насколько это соответствует общим принципам ООП, SOLID?
А это ПЕРВОЕ с чего нужно начинать оценку любой реализации.
По сути, если вам не нужен ООП, то вам и Шарп не нужен.

В данном случае есть принцип единственной ответственности.
Ответственность Окна - создать компоновку Представления.
А что делает ваш (или Andrey-MSK) код?
В нём реализована автопрокрутка до нового элемента.
Относится ли это к компоновке Окна?
Нет. Это относится к изменению поведения отдельного элемента Окна.

Вот теперь сами ответьте как правильнее с точки зрения реализовывать изменение поведения в CB Окна или в Behavior?
0
 Аватар для INexteR
17 / 16 / 1
Регистрация: 25.01.2023
Сообщений: 468
16.03.2023, 20:33  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
с ними не нужно на Шарпе работать.
Да, я знаю, что при работе с ними в процедурном коде есть ограничения. Но мне вот хотелось подправить шаблон и это как раз до его первого применения. Просто, считаю, не есть рационально для каждого элемента в шаблоне создавать триггер, когда он даже не будет менять состояние и притом для всех элементов триггер будет в одном и том же состоянии. Здесь вообще не нужен триггер
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16165 / 11285 / 2891
Регистрация: 21.04.2018
Сообщений: 33,174
Записей в блоге: 2
16.03.2023, 20:41
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Есть официальная рекомендация от MS
FrameworkElementFactory Класс:
Комментарии

Этот класс является устаревшим способом программного создания шаблонов, которые являются подклассами FrameworkTemplate таких, как ControlTemplate или DataTemplate; не все функциональные возможности шаблона доступны при создании шаблона с помощью этого класса. Рекомендуемый способ программного создания шаблона — загрузить XAML из строки или потока памяти с помощью Load метода XamlReader класса.
Добавлено через 1 минуту
Цитата Сообщение от INexteR Посмотреть сообщение
Но мне вот хотелось подправить шаблон и это как раз до его первого применения.
Это ОЧЕНЬ сложно.
Внутри Шаблона не то визуальное дерево которое вы видите при запуске приложения.
Там визуальное дерево ФАБРИКИ элементов, и работать надо с ним совсем по иному.

Добавлено через 4 минуты
Цитата Сообщение от INexteR Посмотреть сообщение
Я вызываю этот метод в обработчике Loaded. Там TextBox находится, а родительская рамка нет
Ну, наверное, неспроста я использовал другое событие?

Добавлено через 43 секунды
Изменение Шаблона производится без перегрузки загруженного элемента.
0
 Аватар для INexteR
17 / 16 / 1
Регистрация: 25.01.2023
Сообщений: 468
16.03.2023, 20:41  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Относится ли это к компоновке Окна?
Нет.
Хорошо, я вполне согласен, что не относится. Но тогда при каждом подобном действии придется писать новый класс. Не избыточно ли это?
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16165 / 11285 / 2891
Регистрация: 21.04.2018
Сообщений: 33,174
Записей в блоге: 2
16.03.2023, 20:42
Изменение Шаблона производится без перегрузки загруженного элемента.
Цитата Сообщение от INexteR Посмотреть сообщение
Плюс в том, что добавленный элемент появляется на виду.
Я не за рабочий-нерабочий код.
Мы же сравниваем разные реализации, а не разные задачи.
0
 Аватар для INexteR
17 / 16 / 1
Регистрация: 25.01.2023
Сообщений: 468
16.03.2023, 20:44  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Внутри Шаблона не то визуальное дерево которое вы видите
Да, я понимаю, что там не конкретные элементы, а просто структура того, как это будет скомпоновано

Добавлено через 42 секунды
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Я не за рабочий-нерабочий код.
Другого плюса я не смог придумать
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.03.2023, 20:44

Создание базы данных с функциями ввода, вывода, редактирования, удаления или добавления данных
Задание заключается в создании базы данных с функциями ввода, вывода, редактирования, удаления или добавления данных. Написал программу и...

Формы редактирования, добавления данных
Добрый вечер, такой вопрос, мне нужно сделать для кнопок Редактировать и Добавить записи форму, но я немного не понимаю как это...

Форма для добавления, редактирования, удаления данных
Уважаемые форумчане, подскажите, как лучше сделать и правильнее! В форме &quot;Органы исполнительной власти&quot; в данной &quot;БД&quot;...

Пример добавления, удаления и редактирования данных в БД *.mbd
нужен пример добавления, удаления и редактирования данных в БД *.mbd через классы OleDbDataAdapter, OleDbConnection, DataSet. ...

Использование возможностей добавления, редактирования и удаления необходимых записей в базы данных
помогите дополнить код пожалуйста public partial class Form1 : Form { // здесь отмечаются переменные и методы внутри класса формы...


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

Или воспользуйтесь поиском по форуму:
100
Ответ Создать тему
Новые блоги и статьи
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru