Форум программистов, компьютерный форум, киберфорум
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.78/18: Рейтинг темы: голосов - 18, средняя оценка - 4.78
1 / 1 / 0
Регистрация: 15.12.2018
Сообщений: 260

Как изменить свойство ComboBox?

09.05.2021, 15:16. Показов 4278. Ответов 33
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Имеется такая панелька:
XML
1
2
3
4
5
            <StackPanel>
                <ComboBox ItemsSource="{Binding Types}" SelectedItem="{Binding SelectedPolyline.Type}" IsReadOnly="True" />
                <TextBox Text="{Binding SelectedPolyline}"/>
                <TextBox Text="{Binding SelectedPolyline.Polyline.NeighPolylines.Count, Mode=OneWay}"/>
            </StackPanel>
Помимо неё есть основная часть, где расположены шестиугольники в ListBox'е - не знаю, нужно ли их здесь описывать.

Основная VM:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
    public class GraphicCivVM : BaseInpc
    {
        private PolylineVM selectedPolyline;
        public PolylineVM SelectedPolyline { get => selectedPolyline; set => Set(ref selectedPolyline, value); }
        public PolylinesVM dataPolylines = new PolylinesVM();
        public PolylinesVM DataPolylines { get => dataPolylines; set => Set(ref dataPolylines, value); }
 
        private ObservableCollection<string> types = new ObservableCollection<string> { "Кампус", "Центр коммерции", 
            "Правительственная площадь", "Промышленная зона", "Театральная площадь", "Акведук", "Священное место" };
        public ObservableCollection<string> Types
        { get => types; set => Set(ref types, value); }
 
 
    }
PolylinesVM:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public class PolylinesVM : BaseInpc
    {
        public PolylinesData polylinesData { get; } = new PolylinesData();
        public ObservableCollection<PolylineVM> Polylines { get; } = new ObservableCollection<PolylineVM>();
 
 
        public PolylinesVM()
        {
 
            foreach (PolylineData itemPolyline in polylinesData.Polylines)
            {
                Polylines.Add(new PolylineVM(itemPolyline, "", ""));
            }
 
        }
     
    }
PolylineVM:
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
    public class PolylineVM : BaseInpc
    {
        private PolylineData polyline;
 
 
        public PolylineVM(PolylineData p, string type, string value)
        {
            polyline = p;
            this.type = type;
            typeValue = value;
        }
 
        public double Top
        {
            get { return polyline.Top; }
            set
            {
                polyline.Top = value;
            }
        }
 
        public double Left
        {
            get { return polyline.Left; }
            set
            {
                polyline.Left = value;
            }
        }
 
        public PointCollection Points
        {
            get { return polyline.Points; }
            set
            {
                polyline.Points = value;
            }
        }
 
        public PolylineData Polyline { get => polyline; set => Set(ref polyline, value); }
 
        private string typeValue;
        public string TypeValue { get => typeValue; set => Set(ref typeValue, value); }
 
        private string type;
        public string Type { get => type; set => Set(ref type, value); }
    }
Ситуация такая: пока не выбран ни один шестиугольник (просто item в ListBox'e), ToggleButton ComboBox'a имеет пустой текст. После выбора конкретного значения из списка, текст ToggleButton'a меняется. Как сделать так, чтобы при выборе другого шестиугольника текст у ToggleButton "сбрасывался"?
И ещё вопрос: как сделать так, чтобы при выборе из ComboBox'a определенного элемента текст TextBox'а менялся сразу же, а не после того, как я переключился на другой шестиугольник и обратно?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.05.2021, 15:16
Ответы с готовыми решениями:

Как изменить свойство программно
Столкнулся с одной трудностью: делаю шахматы, у меня есть 32 обьекта класса Image. Есть метод который я не могу реализовать - ...

Как изменить свойство background у Page через код VB
Всем привет! Появилась необходимость изменить фоновый рисунок page, но как через код VB сделать я не знаю. Я пробовал сделать Image...

Как изменить положение выпадающего меню у ComboBox?
Господа, подскажите пожалуйста такую вещь: как изменить точку от которой отрисовывается выпадающий список элементов комбобокса? У меня...

33
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16166 / 11286 / 2892
Регистрация: 21.04.2018
Сообщений: 33,176
Записей в блоге: 2
16.05.2021, 20:45
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Ziltoid Townsen Посмотреть сообщение
Я правильно понимаю, что мне нужно по сути убрать set из этих свойств? Собственно, можно, как я думаю, и в классе PolylineData эти свойства сделать подобным образом.
Давайте начнём с самой задачи.

1) Вы собираете коллекцию шестиугольников на которые разбита некая область.
Это именно одинаковые правильные шестиугольники или любой многоугольник?

2) Какие параметры многоугольника динамичны? А какие "только для чтения" и задаются один раз при его создании?
0
1 / 1 / 0
Регистрация: 15.12.2018
Сообщений: 260
17.05.2021, 01:48  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
1) Вы собираете коллекцию шестиугольников на которые разбита некая область.
Это именно одинаковые правильные шестиугольники или любой многоугольник?
Одинаковые
Цитата Сообщение от Элд Хасп Посмотреть сообщение
2) Какие параметры многоугольника динамичны? А какие "только для чтения" и задаются один раз при его создании?
Динамичные только Type, и TypeValue. Все остальные "только для чтения"
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16166 / 11286 / 2892
Регистрация: 21.04.2018
Сообщений: 33,176
Записей в блоге: 2
17.05.2021, 09:59
Цитата Сообщение от Ziltoid Townsen Посмотреть сообщение
Одинаковые
Следовательно это одинаковые шестиугольники отличающиеся только смещением центра?

Тогда коллекция шестиугольников должна выглядеть примерно так:
C#
1
2
3
public Geometry Hexagon {get;}
 
public IEnumerable<Point> Centers {get;}
Цитата Сообщение от Ziltoid Townsen Посмотреть сообщение
Динамичные только Type, и TypeValue. Все остальные "только для чтения"
Type и TypeValue задаются "извне"?
Или вычисляются внутри шестиугольника?
Вы же писали о каком-то зависмом от соседей значении - это одно из них?
0
1 / 1 / 0
Регистрация: 15.12.2018
Сообщений: 260
18.05.2021, 01:21  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Тогда коллекция шестиугольников должна выглядеть примерно так:
Да, наверное, так логичнее. Но это не самое важное в моём коде.
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Type и TypeValue задаются "извне"?
Type задаётся посредством ComboBox'а, TypeValue в конечном итоге должно рассчитываться в зависимости от:
Цитата Сообщение от Ziltoid Townsen Посмотреть сообщение
1) Количества соседних шестиугольников
2) Типа соседних шестиугольников
3) Типа самого шестиугольника
То есть, имеем четыре шестиугольника, один имеет тип "Кампус" и в соседях у него "Акведук", "Промышленная зона" и "Центр коммерции". Результирующим числом конкретно этого шестиугольника будет 1.5 у.е., т.к. каждый шестиугольник(район) даёт бонус за соседство +0.5. В то время как шестиугольник с типом "Промышленная зона" из этой же четвёрки будет уже давать не 1.5 у.е., а 3.5 у.е., т.к. "Акведук" даёт промышленной зоне ещё сверху +2.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16166 / 11286 / 2892
Регистрация: 21.04.2018
Сообщений: 33,176
Записей в блоге: 2
18.05.2021, 08:46
Цитата Сообщение от Ziltoid Townsen Посмотреть сообщение
Но это не самое важное в моём коде.
Дело не в "важно".
Мне надо просто понять логику реализации.

Добавлено через 1 минуту
Цитата Сообщение от Ziltoid Townsen Посмотреть сообщение
Type задаётся посредством ComboBox'а,
Это точно ошибка архитектуры.
Шестиугольники - это объекты Модели.
А ComboBox - элемент GUI.
GUI зависит от Модели, но вот Модель никоим образом не должна зависеть от GUI.

Добавлено через 1 минуту
Возможно вам стоит задать перечисление со всеми возможными типами и задавать одно из его значений.
Это так же облегчит создание ComboBox в GUI.

Добавлено через 2 минуты
Цитата Сообщение от Ziltoid Townsen Посмотреть сообщение
TypeValue в конечном итоге должно рассчитываться в зависимости от:
Если шестиугольник имеет коллекцию соседей на него влияющих и знает когда у соседей изменяется тип, то значение TypeValue может быть рассчитано в самом шестиугольнике?
Правильно понял?
0
1 / 1 / 0
Регистрация: 15.12.2018
Сообщений: 260
18.05.2021, 11:14  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Возможно вам стоит задать перечисление со всеми возможными типами и задавать одно из его значений.
Это так же облегчит создание ComboBox в GUI.
У меня есть коллекция, которую я задаю как ItemsSource к ComboBox'у. И связываю этот ComboBox со свойством Type. Я не совсем понимаю, как должно быть по-другому?
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Если шестиугольник имеет коллекцию соседей на него влияющих и знает когда у соседей изменяется тип, то значение TypeValue может быть рассчитано в самом шестиугольнике?
Да. Только я вот не знаю как раз, как сделать так, чтобы шестиугольник "узнавал", когда у соседей меняется тип.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16166 / 11286 / 2892
Регистрация: 21.04.2018
Сообщений: 33,176
Записей в блоге: 2
18.05.2021, 13:31
Цитата Сообщение от Ziltoid Townsen Посмотреть сообщение
У меня есть коллекция, которую я задаю как ItemsSource к ComboBox'у. И связываю этот ComboBox со свойством Type. Я не совсем понимаю, как должно быть по-другому?
Тип (Type) же - это не произвольная строка?
Есть определённый список допустимых значений этой строки.
Приведите этот список.
0
1 / 1 / 0
Регистрация: 15.12.2018
Сообщений: 260
18.05.2021, 14:01  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Приведите этот список.
Центр города, Священное место, Кампус, Правительственная площадь, Заповедник, Театральная площадь, Военный лагерь, Промышленная площадь, Акведук, Дамба и т.д. Не вижу смысла полностью оглашать список, что это в данный момент даёт?
А, я понял. Нужно сделать так, чтобы в свойство Type можно было заносить только конкретные значения.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16166 / 11286 / 2892
Регистрация: 21.04.2018
Сообщений: 33,176
Записей в блоге: 2
18.05.2021, 14:09
Цитата Сообщение от Ziltoid Townsen Посмотреть сообщение
Нужно сделать так, чтобы в свойство Type можно было заносить только конкретные значения.
ВО!


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

Добавлено через 1 минуту
Если список неизменяем в принципе (а он таковой поскольку на него завязана логика значения другого свойства), то лучше всего использовать перечисление.

Добавлено через 3 минуты
Цитата Сообщение от Ziltoid Townsen Посмотреть сообщение
Да. Только я вот не знаю как раз, как сделать так, чтобы шестиугольник "узнавал", когда у соседей меняется тип.
Сегодня скину сокращённый пример шестиугольника и его коллекции.
Задачу по расчёту центров шестиугольников - решать не буду.
Вы сами с ней как-то разбираетесь.

Ещё вопрос по самой коллекции.
Она статичная (создаётся один раз и потом не меняется) или динамичная (шестиугольники добавляются-удаляются из неё)?
0
1 / 1 / 0
Регистрация: 15.12.2018
Сообщений: 260
18.05.2021, 14:15  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Она статичная (создаётся один раз и потом не меняется) или динамичная (шестиугольники добавляются-удаляются из неё)?
Пока не знаю как сделать. Хотелось бы конечно динамичную, но думаю на начальном этапе хватит и статичной.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16166 / 11286 / 2892
Регистрация: 21.04.2018
Сообщений: 33,176
Записей в блоге: 2
18.05.2021, 14:24
Ziltoid Townsen, почему TypeValue - это строка?
Не число, не перечисление?
0
1 / 1 / 0
Регистрация: 15.12.2018
Сообщений: 260
18.05.2021, 15:05  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
почему TypeValue - это строка?
Потому что на тот момент я думал, что мне необходимо поле, которое будет показывать тип производства, которого генерирует район. В дальнейшем я его не менял, потому как хотел сделать обновление этого поля в результате изменения свойства Type, при этом не углубляясь в сам алгоритм расчёта
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16166 / 11286 / 2892
Регистрация: 21.04.2018
Сообщений: 33,176
Записей в блоге: 2
18.05.2021, 15:49
Цитата Сообщение от Ziltoid Townsen Посмотреть сообщение
Потому что...
Но это сами уже реализуете.
Но строка, сразу скажу, это плохая идея.

Тип Шестиугольника:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
namespace Hexagons
{
    /// <summary>Перечисление возможных типов.
    /// Список расширьте как вам надо.
    /// Единственно для None надо оставить ноль.
    /// Остальным свойствам можете задать значение - можете оставить по умолчанию.</summary>
    public enum HexagonTypeEnum
    {
        None = 0,
        CityCenter,
        SacredSite,
        Campus,
        GovernmentSquare,
        NatureReserve,
        TheaterSquare,
        MilitaryCamp
    }
}
Сам Шестиугольник:
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
using Simplified;
using System.Collections.ObjectModel;
using System.Collections.Specialized;
using System.ComponentModel;
using System.Linq;
using System.Windows;
 
namespace Hexagons
{
    public class HexagonData : BaseInpc
    {
        private HexagonTypeEnum _type;
        private string _typeValue;
        private double angle;
 
        public Point Center { get; }
 
        protected HexagonData()
        {
            // Прослушка собственных свойств.
            PropertyChanged += OnNeighborChanged;
 
            // Прослушка изменения коллекции.
            Neighbors.CollectionChanged += OnNeighborsChanged;
        }
 
        public HexagonData(Point center)
            : this()
            => Center = center;
 
        public HexagonTypeEnum Type { get => _type; set => Set(ref _type, value); }
 
        public string TypeValue { get => _typeValue; private set => Set(ref _typeValue, value); }
 
        public ObservableCollection<HexagonData> Neighbors { get; }
            = new ObservableCollection<HexagonData>();
 
        // Прослушка изменений коллекции соседей.
        private void OnNeighborsChanged(object sender, NotifyCollectionChangedEventArgs e)
        {
            if (e.Action != NotifyCollectionChangedAction.Move)
            {
                // Отписка удаляемых соседей.
                if (e.OldItems != null)
                    foreach (var hexagon in e.OldItems.Cast<HexagonData>())
                    {
                        hexagon.PropertyChanged -= OnNeighborChanged;
                    }
 
                // Подписка на изменение свойств новых соседей.
                if (e.NewItems != null)
                    foreach (var hexagon in e.NewItems.Cast<HexagonData>())
                    {
                        hexagon.PropertyChanged += OnNeighborChanged;
                    }
            }
        }
 
        // Прослушка изменений свойств своих и соседей.
        private void OnNeighborChanged(object sender, PropertyChangedEventArgs e)
        {
            if (string.IsNullOrEmpty(e.PropertyName) || e.PropertyName == nameof(Type))
                ChangeTypeValue();
        }
 
        // Метод пересчёта TypeValu
        private void ChangeTypeValue()
        {
            // Здесь какой код
            TypeValue = "бла-бла-бла";
        }
 
        /// <summary>Угол поворота шестиугольника.
        /// 0 - сверху угол, 30 - сверху сторона.</summary>
        public double Angle { get => angle; set => angle = value; }
    }
}
Коллекция Шестиугольников:
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
using System;
using System.Collections.ObjectModel;
using System.Windows;
using System.Windows.Media;
 
namespace Hexagons
{
    public class HexagonsCollectionData : ObservableCollection<HexagonData>
    {
        public Geometry Hexagon { get; }
        public double Radius { get; }
 
        public HexagonsCollectionData(double radius)
        {
            if (radius <= 0)
                throw new ArgumentOutOfRangeException(nameof(radius), "Радиус должен быть положительным числом.");
            Radius = radius;
 
            double rSin = radius * Math.Sin(Math.PI / 3); // 0,86
            double rCos = radius * Math.Cos(Math.PI / 3); // 0.5
 
            PathFigure figure = new PathFigure
            (
                new Point(0, -radius),
                new LineSegment[]
                {
                    new LineSegment(new Point(rSin, -rCos), true),
                    new LineSegment(new Point(rSin, rCos), true),
                    new LineSegment(new Point(0, radius), true),
                    new LineSegment(new Point(-rSin, rCos), true),
                    new LineSegment(new Point(-rSin, -rCos), true)
                },
                true
            );
            figure.Freeze();
 
            Hexagon = new PathGeometry(new PathFigure[] { figure });
            Hexagon.Freeze();
        }
    }
}

Пример ViewModel:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
using System.Windows;
 
namespace Hexagons
{
    public class HexagonsViewModel
    {
        public HexagonsCollectionData Hexagons { get; }
            = new HexagonsCollectionData(100);
 
        public HexagonsViewModel()
        {
            Hexagons.Add(new HexagonData(new Point(0, -100)));
            Hexagons.Add(new HexagonData(new Point(86.6, 50)));
            Hexagons.Add(new HexagonData(new Point(-86.6, 50)));
 
            Hexagons[0].Neighbors.Add(Hexagons[1]);
            Hexagons[1].Neighbors.Add(Hexagons[2]);
            Hexagons[2].Neighbors.Add(Hexagons[0]);
        }
    }
}
Пример Окна:
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
25
26
27
28
29
30
31
32
33
34
<Window x:Class="Hexagons.HexagonsWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:Hexagons"
        mc:Ignorable="d"
        Title="HexagonsWindow" Height="450" Width="800"
        DataContext="{DynamicResource viewModel}">
    <FrameworkElement.Resources>
        <local:HexagonsViewModel x:Key="viewModel"/>
    </FrameworkElement.Resources>
    <Grid>
        <ItemsControl ItemsSource="{Binding Hexagons}">
            <ItemsControl.ItemTemplate>
                <DataTemplate DataType="{x:Type local:HexagonData}">
                    <Path Data="{Binding Hexagons.Hexagon, Mode=OneWay, Source={StaticResource viewModel}}"
                          Stroke="Red" StrokeThickness="2"/>
                </DataTemplate>
            </ItemsControl.ItemTemplate>
            <ItemsControl.ItemsPanel>
                <ItemsPanelTemplate>
                    <Canvas VerticalAlignment="Center" HorizontalAlignment="Center"/>
                </ItemsPanelTemplate>
            </ItemsControl.ItemsPanel>
            <ItemsControl.ItemContainerStyle>
                <Style TargetType="ContentPresenter">
                    <Setter Property="Canvas.Left" Value="{Binding Center.X}"/>
                    <Setter Property="Canvas.Top" Value="{Binding Center.Y}"/>
                </Style>
            </ItemsControl.ItemContainerStyle>
        </ItemsControl>
    </Grid>
</Window>
Исходные коды: Hexagons.7z
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16166 / 11286 / 2892
Регистрация: 21.04.2018
Сообщений: 33,176
Записей в блоге: 2
18.05.2021, 15:54
Ziltoid Townsen, проверил только вывод в окно.
С изменением шаблона элемента вы уже сами разобрались - думаю изменить под мою реализацию вам будет не трудно.
Свойство угол поставил, но не знаю насколько оно нужно.
Если нужно поворачивать каждый шестиугольник, то надо трансформацию Path привязать к этому углу.
Если нужно повернуть все шестиугольники, то можно добавить свойство-угол в коллекцию.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.05.2021, 15:54

Как убрать рамку и изменить цвет кнопки элемента combobox?
При написании приложения на WPF столкнулся с такой проблемой: как убрать рамку в combobox и изменить цвет кнопки выпадающего списка? Долго...

Как из ViewModel UserControl'a изменить свойство в ViewModel главного окна?
Недавно начал попытки создавать приложение WPF с применением MVVM, и у меня возник вопрос, который не даёт мне продвигаться в разработке...

Как программно изменить свойство "Angle"
Как программно изменить свойство &quot;Angle&quot;?

Реализация ComboBox MVVM свойство selectionchanged
Здравствуйте! Подскажите, пожалуйста, как реализовать ComboBox в рамках MVVM, а именно, как отловить свойство SelectionChanged? View: ...

Combobox, a точнее его свойство Selectedindex и SelectedValue выдает -1
Программа работают по принципу нажимаешь кнопку формируются данные с бд в лист типа стринг ,происходит сразу бинд этого листа в...


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

Или воспользуйтесь поиском по форуму:
34
Ответ Создать тему
Новые блоги и статьи
Новая последнея моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Nekobox - outbounds[0].transport: unknown transport type: raw
damix 01.10.2026
Фикс ошибки Правым кликом по серверу -> отладочная информация -> edit Заменить "net": "raw", на "net": "tcp", Нажать кнопку reload.
Программный домашний кинотеатр
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