Форум программистов, компьютерный форум, киберфорум
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/29: Рейтинг темы: голосов - 29, средняя оценка - 4.86
2 / 2 / 2
Регистрация: 14.03.2017
Сообщений: 124

Изменить значения из текстового поля нажатием кнопки

01.08.2019, 10:59. Показов 5897. Ответов 17

Студворк — интернет-сервис помощи студентам
Нажав на кнопку Ok, длина и ширина должны измениться, помогите понять, как написать функцию для кнопки Click_Ok. Когда я выбираю View1, текстовое поле автоматически отображает информацию об этом View1. Мне нужно, если я хочу изменить значение, введя новое в текстовое поле, нажав кнопку, чтобы сохранить его

ViewModel

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
class CameraViewModel : ViewModelBase
    {   
        private ObservableCollection<CameraModel> camera = new ObservableCollection<CameraModel>
        {
            new CameraModel { View = "View1", Width = 100, Height = 100 },
            new CameraModel { View = "View2", Width = 200, Height = 200 },
            new CameraModel { View = "View3", Width = 300, Height = 300 }
        };
 
        public ObservableCollection<CameraModel> Camera
        {
            get { return camera; }
            set { camera = value; }
        }
 
        private CameraModel selectedCamera;    
 
        public CameraModel SelectedCamera
        {
            get { return selectedCamera; }
            set
            {
                selectedCamera = value;
                OnPropertyChanged("SelectedCamera");
            }
        }
 
        #region Constructor
 
        /// <summary>
        /// Constructor.
        /// </summary>
        public CameraViewModel()
        {         
            ClickOk = new BaseCommand(() => Click_Ok()); 
        }               
 
        #endregion
 
               
        #region Commands
 
        /// <summary>
        /// Get or set commands 
        /// </summary>
        public ICommand ClickOk { get; set; }
 
        #endregion
 
        #region Methods
 
        /// <summary>
        /// Click methods.
        /// </summary>
        private void Click_Ok()
        {
            OnPropertyChanged("SelectedCamera");
            MessageBox.Show("Changes saved.");            
        }        
 
        #endregion        
    }
View

XML
1
2
3
4
5
6
7
8
9
<TextBox x:Name="txtWidth" Width="150" Height="30" Text="{Binding SelectedCamera.Width, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
                                    <CheckBox HorizontalAlignment="Left" Margin="10 0 0 0" FontSize="14" Width="135">
                                        <CheckBox.Content>
                                            <TextBlock TextWrapping="Wrap" Width="87">Preserve aspect ratio</TextBlock>
                                        </CheckBox.Content>
                                    </CheckBox>
 <TextBox x:Name="txtHeight" Width="150" Height="30" Text="{Binding SelectedCamera.Height, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
<Button Grid.Column="0" Content="Ok" Margin="10 10 10 10" Height="30" Width="75" Command="{Binding ClickOk}"/>
                <Button Grid.Column="1" Content="Cancel" Margin="10 10 10 10" Height="30" Width="75" Click="Cancel_Click" />
Model

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
class CameraModel : ViewModelBase
    {      
        public string View { get; set; }
 
        private int width;
        public int Width
        {
            get { return width; }
            set
            {
                width = value;
                OnPropertyChanged("SelectedCamera");                
            }
        }
 
        private int height;
        public int Height
        {
            get { return height; }
            set
            {
                height = value;
                OnPropertyChanged("SelectedCamera");
            }
        }
    }
Класс ViewModelBase наследует интерфейс INotifyPropertyChanged
Помогите пожалуйста разобраться правильно ли я все сделали вообще правильно ли у меня написана программа по паттерну MVVM, а то я не уверен в её правильности(
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
01.08.2019, 10:59
Ответы с готовыми решениями:

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

Как изменить фон окна (WPF) нажатием кнопки на картинку?
Как изменить фон окна (WPF) нажатием кнопки на картинку?

Как для кнопки и текстового поля задать ширину в процентах?
Есть грид: &lt;Grid&gt; &lt;Grid.RowDefinitions&gt; &lt;RowDefinition Height=&quot;*&quot; /&gt; ...

17
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16115 / 11236 / 2887
Регистрация: 21.04.2018
Сообщений: 33,037
Записей в блоге: 2
01.08.2019, 18:13
Цитата Сообщение от Кирилл2017 Посмотреть сообщение
Нажав на кнопку Ok, длина и ширина должны измениться, помогите понять,
Длина и ширина чего?

Цитата Сообщение от Кирилл2017 Посмотреть сообщение
Мне нужно, если я хочу изменить значение, введя новое в текстовое поле, нажав кнопку, чтобы сохранить его
В какое?

Из вашего кода нет полного понимая чего у вас уже реализовано и чего ещё надобно.

Если правильно понял.
У вас есть какой-то списочный элемент (ListBox или ListView), который отображает список камер Camera. Кстати, почему Camera, а не Cameras? Выделенный элемент биндится к свойству SelectedCamera.

Если я правильно понял, то у вас и так автоматически будут изменяться значения выделенной камеры., так как для TextBox установлен режим Mode=TwoWay. Никакого специального метода для этого не надо.
1
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16115 / 11236 / 2887
Регистрация: 21.04.2018
Сообщений: 33,037
Записей в блоге: 2
01.08.2019, 18:18
P,S. Кирилл2017, в паттерне MVVM создаёт/изменяет/сохраняет данные Модель. У ViewModel нет на это полномочий.
У Вас коллекция Camera создаётся в VM - так, конечно, будет работать. Но такое является ошибкой для MVVM. Такая ошибка чревата в дальнейшем (по мере расширения решения, в процессе его модернизации, использовании подобного в других решениях) - появлением багов и нестыковкой с другими проектами.
1
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16115 / 11236 / 2887
Регистрация: 21.04.2018
Сообщений: 33,037
Записей в блоге: 2
01.08.2019, 18:47
Цитата Сообщение от Кирилл2017 Посмотреть сообщение
Model
А причём здесь SelectedCamera?
1
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16115 / 11236 / 2887
Регистрация: 21.04.2018
Сообщений: 33,037
Записей в блоге: 2
01.08.2019, 20:32
Лучший ответ Сообщение было отмечено Кирилл2017 как решение

Решение

Цитата Сообщение от Кирилл2017 Посмотреть сообщение
введя новое в текстовое поле, нажав кнопку, чтобы сохранить его
Классы данных, Модели и Модели Представления
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
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
    public class CameraClass : OnPropertyChangedClass
    {
        private uint _width;
        private uint _height;
        private string _view;
 
        public string View { get => _view; private set { _view = value; OnPropertyChanged(); } }
        public uint Width { get => _width; set { _width = value; OnPropertyChanged(); } }
        public uint Height { get => _height; set { _height = value; OnPropertyChanged(); } }
 
        public CameraClass(string view) => View = view;
 
    }
 
    public class CamerasModel : OnPropertyChangedClass
    {
        private ObservableCollection<CameraClass> _cameras;
 
        public ObservableCollection<CameraClass> Cameras { get => _cameras; private set { _cameras = value; OnPropertyChanged(); } }
 
        public void Load() => Cameras = new ObservableCollection<CameraClass>
                {
                    new CameraClass ("View1"){ Width = 100, Height = 100 },
                    new CameraClass ("View2"){  Width = 200, Height = 200 },
                    new CameraClass ("View3"){ Width = 300, Height = 300 }
                };
    }
 
    public class CamerasViewModel : OnPropertyChangedClass
    {
        private CamerasModel model;
        private CameraClass _selectedCamera;
        private bool? _isRatio = false;
        private bool isCorrect = false;
        private uint? _cameraWidth;
        private uint? _cameraHeight;
        private RelayCommand _saveCommand;
 
        public CamerasViewModel()
        {
            model = new CamerasModel();
            model.PropertyChanged += Model_PropertyChanged;
            model.Load();
        }
 
        private void Model_PropertyChanged(object sender, PropertyChangedEventArgs e)
        {
            if (string.IsNullOrEmpty(e.PropertyName) || e.PropertyName == nameof(CamerasModel.Cameras))
                OnPropertyChanged(e.PropertyName);
        }
 
        public ObservableCollection<CameraClass> Cameras => model?.Cameras;
 
        public uint? CameraWidth
        {
            get => _cameraWidth;
            set
            {
                _cameraWidth = value;
                OnPropertyChanged();
                if (!isCorrect && IsSelectedCamera && IsRatio==true)
                {
                    isCorrect = true;
                    CameraHeight = (uint)((double)CameraWidth * (double)SelectedCamera.Height /(double) SelectedCamera.Width);
                    isCorrect = false;
                }
            }
        }
        public uint? CameraHeight
        {
            get => _cameraHeight;
            set
            {
                _cameraHeight = value;
                OnPropertyChanged();
                if (!isCorrect && IsSelectedCamera && IsRatio == true)
                {
                    isCorrect = true;
                    CameraWidth= (uint)((double)CameraHeight* (double)SelectedCamera.Width/ (double)SelectedCamera.Height);
                    isCorrect = false;
                }
            }
        }
 
        public CameraClass SelectedCamera
        {
            get => _selectedCamera;
            set
            {
                if (_selectedCamera != value)
                {
                    _selectedCamera = value;
                    OnPropertyChanged();
                    OnPropertyChanged(nameof(IsSelectedCamera));
                    CameraWidth = SelectedCamera?.Width;
                    CameraHeight = SelectedCamera?.Height;
                }
            }
        }
 
        public bool IsSelectedCamera => SelectedCamera != null;
 
        public bool? IsRatio
        {
            get => _isRatio;
            set
            {
                _isRatio = value;
                OnPropertyChanged();
            }
        }
 
        public RelayCommand SaveCommand => _saveCommand ?? (_saveCommand= new RelayCommand(SaveMetod, SaveCanMetod));
 
        private bool SaveCanMetod(object parameter) => IsSelectedCamera && (SelectedCamera.Height != CameraHeight || SelectedCamera.Width != CameraWidth);
 
        private void SaveMetod(object parameter)
        {
            if (SaveCanMetod(parameter))
            {
                SelectedCamera.Height = CameraHeight.Value;
                SelectedCamera.Width = CameraWidth.Value;
            }
        }
    }
View
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
35
36
37
38
39
40
41
42
43
44
45
46
    <Window.Resources>
        <BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter"/>
    </Window.Resources>
    <Window.DataContext>
        <local:CamerasViewModel/>
    </Window.DataContext>
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition/>
            <ColumnDefinition/>
        </Grid.ColumnDefinitions>
        <ListBox ItemsSource="{Binding Cameras}" SelectedItem="{Binding SelectedCamera}">
            <ListBox.ItemTemplate>
                <DataTemplate DataType="{x:Type local:CameraClass}">
                    <StackPanel>
                        <TextBlock Text="{Binding View, Mode=OneWay}" TextAlignment="Center"/>
                        <TextBlock>
                            <Run Text="Width:"/>
                            <Run Text="{Binding Width, Mode=OneWay}"/>
                            <Run Text=", Height"/>
                            <Run Text="{Binding Height, Mode=OneWay}"/>
                        </TextBlock>
                    </StackPanel>
                </DataTemplate>
            </ListBox.ItemTemplate>
        </ListBox>
        <StackPanel Grid.Column="1" Visibility="{Binding IsSelectedCamera, Converter={StaticResource BooleanToVisibilityConverter}, Mode=OneWay}">
            <TextBlock Text="Выделенная камера"/>
            <StackPanel>
               <TextBlock DataContext="{Binding SelectedCamera}">
                    <Run Text="View: "/>
                    <Run Text="{Binding View, Mode=OneWay}"/>
                </TextBlock>
                <StackPanel Orientation="Horizontal">
                    <TextBlock Text="Width: "/>
                    <TextBox Text="{Binding CameraWidth}"/>
                </StackPanel>
                <StackPanel Orientation="Horizontal">
                    <TextBlock Text="Height: "/>
                    <TextBox Text="{Binding CameraHeight}"/>
                </StackPanel>
            </StackPanel>
            <CheckBox IsChecked="{Binding IsRatio}" Content="Preserve aspect ratio"/>
            <Button Content="Сохранить изменения" Command="{Binding SaveCommand}"/>
        </StackPanel>
    </Grid>
1
2 / 2 / 2
Регистрация: 14.03.2017
Сообщений: 124
02.08.2019, 10:42  [ТС]
Элд Хасп, когда вставляю код то OnPropertyChanged(); подчеркивает, хотя я и наследую от OnPropertyChangedClass, он у меня реализован следующим образом
C#
1
2
3
4
5
6
7
8
9
public class OnPropertyChangedClass : INotifyPropertyChanged
    {
        public event PropertyChangedEventHandler PropertyChanged;
 
        protected void OnPropertyChanged(string propertyName)
        {
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
        }
    }
и еще подчеркивает RelayCommand
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16115 / 11236 / 2887
Регистрация: 21.04.2018
Сообщений: 33,037
Записей в блоге: 2
02.08.2019, 10:51
Цитата Сообщение от Кирилл2017 Посмотреть сообщение
OnPropertyChangedClass, он у меня реализован следующим образом
Лучше сделайте проект типа Библиотека FW классов и там создайте реализации всех типов которые могут быть использованы в различных решениях: OnPropertyChangedClass, RelayCommand, WPF-конвертеры и т.д. И потом подключайте к решениям эту библиотеку.

Реализации OnPropertyChangedClass и RelayCommand возьмите из тем Готовые решения, примеры и рекомендации начинающим на WPF [Элд Хасп]
Я, в основном, использую реализации из постов Новая реализация RelayCommand и Новая реализация OnPropertyChangedClass

Цитата Сообщение от Кирилл2017 Посмотреть сообщение
OnPropertyChanged(); подчеркивает
......
и еще подчеркивает RelayCommand
Скорее всего нет каких-то юсингов.
Скиньте текст ошибок.
1
2 / 2 / 2
Регистрация: 14.03.2017
Сообщений: 124
02.08.2019, 11:05  [ТС]
Элд Хасп, calls property changed event
This is no argument given that corresponds to the required formal parameter 'propertyName' of 'OnPropertyCangedClass.OnPropertyChanged (string)'

я вставил вашу реализацию и теперь не выдает ошибку

Добавлено через 3 минуты
Элд Хасп, но выдает ошибку
в этой части кода
XML
1
2
3
<Window.DataContext>
        <local:CamerasViewModel/>
    </Window.DataContext>
the name "CamerasViewModel" does not exist in the namespace "clr-namespace:Cameras"
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16115 / 11236 / 2887
Регистрация: 21.04.2018
Сообщений: 33,037
Записей в блоге: 2
02.08.2019, 11:20
Цитата Сообщение от Кирилл2017 Посмотреть сообщение
the name "CamerasViewModel" does not exist in the namespace "clr-namespace:Cameras"
Одно из двух либо вы не сделали сборку и, соотоветсвенно, в пространстве clr-namespace:Cameras ещё нет типа CamerasViewModel.
Либо вы определили тип CamerasViewModel в другом пространстве.
1
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16115 / 11236 / 2887
Регистрация: 21.04.2018
Сообщений: 33,037
Записей в блоге: 2
02.08.2019, 11:28
Лучший ответ Сообщение было отмечено Кирилл2017 как решение

Решение

Цитата Сообщение от Кирилл2017 Посмотреть сообщение
когда вставляю код то OnPropertyChanged(); подчеркивает, хотя я и наследую от OnPropertyChangedClass, он у меня реализован следующим образом
В вашей реализации пропущен атрибут [CallerMemberName]. И лучше OnPropertyChanged сделать публичным - иногда бывает необходимость вызова извне класса.

Простая реализация:
C#
1
2
3
4
5
6
7
8
9
10
11
    /// <summary>Базовый класс с реализацией INPC </summary>
    public abstract class OnPropertyChangedClass : INotifyPropertyChanged
    {
        /// <summary>Событие для извещения об изменения свойства</summary>
        public event PropertyChangedEventHandler PropertyChanged;
        /// <summary>Метод для вызова события извещения об изменении свойства</summary>
        /// <param name="propertyName">Изменившееся свойство. 
        /// По умолчанию используется имя вызвавшего метода</param>
        public void OnPropertyChanged([CallerMemberName]string propertyName = "") =>
                    PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
    }
1
2 / 2 / 2
Регистрация: 14.03.2017
Сообщений: 124
02.08.2019, 15:32  [ТС]
Элд Хасп, спасибо вам огромное!!!

Добавлено через 3 часа 56 минут
Элд Хасп, я хотел кое-что уточнить, что означает параметр
C#
1
isCorrect
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16115 / 11236 / 2887
Регистрация: 21.04.2018
Сообщений: 33,037
Записей в блоге: 2
02.08.2019, 18:13
Лучший ответ Сообщение было отмечено Кирилл2017 как решение

Решение

Цитата Сообщение от Кирилл2017 Посмотреть сообщение
я хотел кое-что уточнить, что означает параметр
Это флаг программной установки значения. Нужен для избежания зацикливания приложения.

При изменении одного значений Width или Height может измениться второй из них.
А из него опять первый, опять второй и т.д.
Поэтому перед установкой нового второго значения для коррекции пропорции экрана устанавливается флаг isCorrect. Теперь если когда из-за изменения второго значения опять вызывается изменение первого, то сначала проверяется флаг и так как он установлен, то происходит выход без установки нового значения.
1
2 / 2 / 2
Регистрация: 14.03.2017
Сообщений: 124
08.08.2019, 11:53  [ТС]
Элд Хасп, я хотел уточнить, можете пожалуйста объяснить что происходит в этой строке, а то я что-то туплю
C#
1
                  public CameraClass(string view) => View = view;
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16115 / 11236 / 2887
Регистрация: 21.04.2018
Сообщений: 33,037
Записей в блоге: 2
08.08.2019, 12:00
Цитата Сообщение от Кирилл2017 Посмотреть сообщение
я хотел уточнить, можете пожалуйста объяснить что происходит в этой строке, а то я что-то туплю
Это конструктор с заданием значения View.
В другом виде можно записать так
C#
1
2
3
4
                  public CameraClass(string view) 
                  {
                          View = view;
                  }
В этом варианте я сделал свойство View неизменяемым и задать его можно только в конструкторе при создании экземпляра.
1
2 / 2 / 2
Регистрация: 14.03.2017
Сообщений: 124
16.08.2019, 10:26  [ТС]
Элд Хасп, а чем является CameraClass? если я правильно понимаю это ViewModel, а модель не должна знать о ViewModel
C#
1
2
3
4
5
6
7
8
9
10
private ObservableCollection<CameraClass> _cameras;
 
        public ObservableCollection<CameraClass> Cameras { get => _cameras; private set { _cameras = value; OnPropertyChanged(); } }
 
        public void Load() => Cameras = new ObservableCollection<CameraClass>
                {
                    new CameraClass ("View1"){ Width = 100, Height = 100 },
                    new CameraClass ("View2"){  Width = 200, Height = 200 },
                    new CameraClass ("View3"){ Width = 300, Height = 300 }
                };
и тут получается она знает о ней
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16115 / 11236 / 2887
Регистрация: 21.04.2018
Сообщений: 33,037
Записей в блоге: 2
16.08.2019, 11:16
Цитата Сообщение от Кирилл2017 Посмотреть сообщение
чем является CameraClass
В данном случае этот класс носит несколько функций:
  • Как часть Модель он хранит данные.
  • Но в тоже время он используется как контейнер для информации при передачи информации между Model <-> VM <-> View

Такое возможно в однопользовательском локальном приложении. Класс CameraClass не содержит ни какой бизнес-логики. Для более глобальных проектов для данных в Model и их представления в View будут использоваться два разных класса. А для передачи информации между Model <-> View будут использоваться или дефолтные типы данных (string, int, double и т.д.), или поток с сериализуемыми данными (чаще всего в формате JSON).
1
2 / 2 / 2
Регистрация: 14.03.2017
Сообщений: 124
16.08.2019, 11:46  [ТС]
Элд Хасп, а можно это сделать без такого класса?
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16115 / 11236 / 2887
Регистрация: 21.04.2018
Сообщений: 33,037
Записей в блоге: 2
16.08.2019, 13:50
Цитата Сообщение от Кирилл2017 Посмотреть сообщение
можно это сделать без такого класса?
"Это" - что именно?

Это же ваша решение, вы задали этот класс.
Я только поменял его название с CameraModel на CameraClass. Так как этот класс не является моделью. Он нужен для хранения данных и используется всюду, в том числе для представления данных.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.08.2019, 13:50
Помогаю со студенческими работами здесь

При нажатии кнопки изменить текст и цвет текстового поля
Помогите, не работал с этим языком, а нужно срочно сделать один элемент для проги. В общем, при нажатии кнопки должен меняться текст и цвет...

Открытие текстового редактора нажатием кнопки
Добрый день форумчане.Я новичок в Java, ищу ответ на такой вопрос: можно ли нажатием на JButton открыть определенный текстовый файл, так...

Как нажатием кнопки изменить запись?
Подскажите плиз как сделать так чтоб нажав на кнопку в форме у меня из таблицы в соответствующей строке удалялось одно поле(1) и...

Как изменить код нажатием кнопки?
Как изменить адрес при нажатии кнопки &quot;C:\Users\Michael\Desktop\1\System\Sounds\FIP.mp3&quot; &lt;MediaElement Height=&quot;106&quot;...

Очищение поля ввода нажатием кнопки Esc
Здравствуйте. Подскажите как сделать чтобы нажатием кнопки Esc содержимое логина очищалось package p600; import javax.swing.*; ...


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru