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

Как передать данные в динамически созданные ячейки статической datagrid?

16.04.2019, 18:36. Показов 4145. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день.

В проекте имеется datagrid

XML
1
 <DataGrid Height="219" x:Name="dataGrid"/>
Во время выполнения в неё добавляются ячейки

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
for (int i = 0; i < num_of_comps; i++)
{
      DataGridTextColumn dgtxrcolMassFrac = new DataGridTextColumn();
      dgtxrcolMassFrac.Binding = new Binding("mass_fraction1_part");
      dgtxrcolMassFrac.Width = column_width;
      dgtxrcolMassFrac.IsReadOnly = true;
      dataGrid.Columns.Add(dgtxrcolMassFrac);
 
      dgtxrcolMassFrac = new DataGridTextColumn();
      dgtxrcolMassFrac.Binding = new Binding("mass_fraction1_summ");
      dgtxrcolMassFrac.Width = column_width;
      dgtxrcolMassFrac.IsReadOnly = true;
      dataGrid.Columns.Add(dgtxrcolMassFrac);
}
При клике на ячейке вызывается диалоговое окно, в котором пользователь вводит данные.

C++
1
2
3
4
5
6
7
8
9
10
void MyGridOnMouseDoubleClick(object sender, MouseButtonEventArgs e)
{
       int index = this.dataGrid.CurrentColumn.DisplayIndex;
 
       Window1 window = new Window1();
       window.WindowStyle = WindowStyle.ToolWindow;
 
       window.InputWindowClosed += Input_WindowClosed;
            .................
}
Надо, чтобы при закрытии окна ввода данных данные передавались в столбцы dataGrid, на которых был сделан клик, для этого служит
C++
1
2
3
4
private void Input_WindowClosed(object sender, EventArgs e)
{
 
}
Подскажите, пожалуйста, как правильно это сделать?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.04.2019, 18:36
Ответы с готовыми решениями:

Получить данные с выбранной ячейки DataGrid и поместить их в другой DataGrid
Добрый вечер, кто может помочь, плииз, у меня на форме расположены 2 datagrida, связанных bindingsourse, после ввода данных в первый...

Как передать данные для динамически формирующейся страницы
Всех приветствую! Допустим мне нужно передать данные на обработчик php. Как мне сделать так, что данные были переданы и я оставался на этой...

WPF dataGrid Как получить данные из конкретной ячейки или строку в виде масива
Доброго времени суток пишу програмку в которой в dataGrid вносятся данные из XML файлов, пользователь должен редактировать данные в гриде...

20
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16129 / 11253 / 2888
Регистрация: 21.04.2018
Сообщений: 33,086
Записей в блоге: 2
16.04.2019, 19:31
Цитата Сообщение от Алексей ВМ Посмотреть сообщение
В проекте имеется datagrid
В View есть DataGrid. И WPF элемента очень не рекомендуется использовать явное задание размеров.
Прочитайте тему "INPC и получение данных из Модели" из Готовые решения, примеры и рекомендации начинающим на WPF [Элд Хасп]

Цитата Сообщение от Алексей ВМ Посмотреть сообщение
Во время выполнения в неё добавляются ячейки
Вы не должны в UI элементы явно в коде что-то добавлять. Вообще, забудьте об обращении к UI элементам из кода!
Вы должны создать коллекцию, привязать её её к DataGrid.ItemsSource, и потом все манипуляции производить над этой коллекцией, а не UI элементом.

Цитата Сообщение от Алексей ВМ Посмотреть сообщение
При клике на ячейке вызывается диалоговое окно, в котором пользователь вводит данные.
Для этого задаётся шаблон ячейки, а можно редактировать и в самой ячейке.

Цитата Сообщение от Алексей ВМ Посмотреть сообщение
Надо, чтобы при закрытии окна ввода данных данные передавались в столбцы dataGrid, на которых был сделан клик, для этого служит
Это очень сложно, так как Вы используете WPF не тем способом для которого он предназначен.
Сами себе создали труднорешаемую проблему.
0
0 / 0 / 0
Регистрация: 04.05.2018
Сообщений: 22
17.04.2019, 10:43  [ТС]
А как быть в случае, если количество столбцов в DataGrid зависит от некоторых условий, которые вводятся пользователем, скажем так, на предыдущем этапе?

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

Размер ячейки опять-таки не фиксированный, а зависит от вводимых пользователем данных.
0
Эксперт .NET
 Аватар для novikov.ea
1857 / 1363 / 429
Регистрация: 10.06.2011
Сообщений: 2,136
17.04.2019, 11:03
Для колонок можно задавать свойство Visibility, которое следует привязывать на bool-свойства ViewModel
XML
1
2
<DataGridColumn Visibility="{Binding IsFirstNameVisible, Mode=OneWay, Converter={StaticResource BoolToVisibilityConterter}}" />
<DataGridColumn Visibility="{Binding IsAgeVisible, Mode=OneWay, Converter={StaticResource BoolToVisibilityConterter}}" />
Цитата Сообщение от Алексей ВМ Посмотреть сообщение
Диалоговое окно для ввода данных - условие заказчика. Не хочет он, чтобы пользователь менял данные напрямую в ячейке
Управлять созданием и отображением диалоговых окон должен отдельный объект. Это будет проще, чем в code-behind создавать окна и передавать информацию во ViewModel из code-behind. Посмотрите, как это реализовано в данном примере.
0
880 / 559 / 291
Регистрация: 21.11.2012
Сообщений: 1,554
17.04.2019, 11:46
novikov.ea,

такая привязка работать не будет.. с привязкой visibility у колонок грида нужно использовать костыли
1
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16129 / 11253 / 2888
Регистрация: 21.04.2018
Сообщений: 33,086
Записей в блоге: 2
17.04.2019, 12:00
Алексей ВМ, ответить Вам в общем очень трудно, если вообще возможно.

Каждое из Ваших условий это отдельная задача и решается она средствами почти независящими от других условий.

Поэтому давайте все Ваши условия разобьём на отдельные задачи. И будем решать их последовательно.

Цитата Сообщение от Алексей ВМ Посмотреть сообщение
А как быть в случае, если количество столбцов в DataGrid зависит от некоторых условий, которые вводятся пользователем, скажем так, на предыдущем этапе?
WPF - это ОТОБРАЖЕНИЕ данных Модели. Для того чтобы понять как их надо отобразить надо хоть чуток понимать для чего эти данные.
Опишите что за условия, чем вызвана такая задача, как в Модели потом обрабатываются эти данные?
Типичным случаем для которого предназначен дефолтно DataGrid является отображение линейного списка и каждый столбец DataGrid отображает указанное свойство элемента списка.
Конечно, DataGrid (как и любой WPF элемент) позволяет очень широкие настройки. Но всё же изменение количества колонок - это очень редкий и нетипичный сценарий. Его надо точно настраивать пот требования задачи.
И просто разъяснения надо менять количество колонок для этого мало. Надо понимать для чего менять, от чего это зависит, как потом будут меняться данные.

Цитата Сообщение от Алексей ВМ Посмотреть сообщение
Диалоговое окно для ввода данных - условие заказчика. Не хочет он, чтобы пользователь менял данные напрямую в ячейке.
Это не проблема. Это даже проще сделать, чем настроить вид редактирования в ячейке.

Цитата Сообщение от Алексей ВМ Посмотреть сообщение
Размер ячейки опять-таки не фиксированный, а зависит от вводимых пользователем данных.
От каких данных? Каким образом зависит? Причины такой зависимости?

Добавлено через 5 минут
Цитата Сообщение от hamin Посмотреть сообщение
такая привязка работать не будет.. с привязкой visibility у колонок грида нужно использовать костыли
У DataGrid многие свойства (управления колонками, строками) в реале не поддерживаю изменения через привязки.
Они как бы есть, но срабатывают только один раз при инициализации. А настраивать их динамическое изменение это ещё та задача. Всё приходится делать на костылях.
0
Эксперт .NET
 Аватар для novikov.ea
1857 / 1363 / 429
Регистрация: 10.06.2011
Сообщений: 2,136
17.04.2019, 12:01
hamin, да, верно. Спасибо за подсказку. DataGridTextColumn не является частью визуального дерева, поэтому придётся привязываться, используя BindingProxy. BindingProxy - известное решение данной проблемы. Я его использовал, и проблем в поддержке не возникало. Поэтому не знаю, насколько можно назвать его костылём.
1
0 / 0 / 0
Регистрация: 04.05.2018
Сообщений: 22
17.04.2019, 12:48  [ТС]
Цитата Сообщение от Элд Хасп
От каких данных? Каким образом зависит? Причины такой зависимости?
Если вкратце, то задача следующая:

она состоит из двух этапов

1. Пользователь вводит начальные данные, в том числе количество операций и количество полезных компонентов;
Затем он производит химические опыты.

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

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

Собственно, хотелось бы понять, как решать такую задачу, от какой модели разработки отталкиваться - "Model first" или "View firtst".
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16129 / 11253 / 2888
Регистрация: 21.04.2018
Сообщений: 33,086
Записей в блоге: 2
17.04.2019, 14:27
Цитата Сообщение от Алексей ВМ Посмотреть сообщение
Если вкратце, то задача следующая:....
Давайте попробуем это сформулировать более близко к ООП.

Цитата Сообщение от Алексей ВМ Посмотреть сообщение
1. Пользователь вводит начальные данные, в том числе количество операций и количество полезных компонентов;
Затем он производит химические опыты.
  • Есть тип Experience - данные по определённому опыту.
  • В нём списочное свойство Оperations из экземпляров Оperation.
  • Тип Оperation - описание одной из операции опыта
  • В нём, в свою очередь, есть списочное поле Reagents из экземпляров Reagent.
  • Тип Reagent - это описание определённого химического реактива.
Я правильно понял?

Названия типов и свойств, естественно, условны.

Цитата Сообщение от Алексей ВМ Посмотреть сообщение
2. Результаты этих опытов должны быть оформлены в виде таблицы, количество строк в которой равно количеству операций, а к фиксированному количеству столбцов добавляются столбцы, количество которых пропорционально количеству полезных компонентов. Причем сначала формируется эта таблица, а затем пользователь её заполняет, кликая на определенные столбцы и вводя в появившемся диалоговом окне данные, которые по закрытию этого окна передаются в таблицу.
Подобное обычно оформляется несколько по иному.
Один из способов отображения:


Почему в Вашем случае выбран такой нетипичный способ отображения?
0
Эксперт .NET
 Аватар для novikov.ea
1857 / 1363 / 429
Регистрация: 10.06.2011
Сообщений: 2,136
17.04.2019, 15:14
Лучший ответ Сообщение было отмечено Элд Хасп как решение

Решение

Нам нужно генерировать столбцы в коде, и сделать всё это в рамках MVVM.
Делать это нужно примерно так:
Пусть имеется ViewModel для таблицы. У неё должен быть массив компонентов, по которым мы будет генерировать колонки, и коллекция ViewModel'ей операций
C#
1
2
3
4
5
6
public class TableViewModel
{
  public Component[] Components { get; set; } // Уведомляет о PropertyChanged
 
  public ObservableCollection<OperationViewModel> OperationVMs { get; } = new ObservableCollection<OperationViewModel>();
}
C#
1
2
3
4
public class OperationViewModel
{
  public double[] ComponentValues { get; set; } // Уведомляет о PropertyChanged
}
Этот массив компонентов будет привязываться к Behavior для таблицы.
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
public class GenerateColumnsForComponentsBehavior : Behavior<DataGrid>
{
    #region Components
 
    public static readonly DependencyProperty ComponentsProperty =
        DependencyProperty.Register("Components", typeof(Component[]), typeof(GenerateColumnsForComponentsBehavior),
                                    new PropertyMetadata(OnComponentsChanged));
 
    public Component[] Components
    {
        get { return (Component[]) GetValue(ComponentsProperty); }
        set { SetValue(ComponentsProperty, value); }
    }
 
    private static void OnComponentsChanged(DependencyObject sender, DependencyPropertyChangedEventArgs e)
    {
        var GenerateColumnsForComponentsBehavior = (GenerateColumnsForComponentsBehavior) sender;
        GenerateColumnsForComponentsBehavior.OnComponentsChanged();
    }
 
    private void OnComponentsChanged()
    {
        ResetColumns();
    }
 
    #endregion
    
    protected override void OnAttached()
    {
        ResetColumns();
    }
    
    protected override void OnDetaching()
    {
        RemoveColumns();
    }
    
    private void ResetColumns()
    {
        if (Components == null)
        {
            RemoveColumns();
        }
        else
        {
            GenerateColumns();
        }
    }
    
    private RemoveColumns()
    {
        //удалить все колонки
    }
    
    private GenerateColumns()
    {
        //сгенерировать колонки
    }
}
XML
1
2
3
4
5
<DataGrid>
    <i:Interaction.Behaviors>
        <GenerateColumnsForComponentsBehavior Components="{Binding Components, Mode=OneWay}" />
    </i:Interaction.Behaviors>
</DataGrid>
C#
1
2
3
4
5
6
7
8
9
public class ValueByComponentConverter : IValueConverter
{
    public object Convert(object value, ..., object parameter, ...)
    {
        double[] componentValues = (double[])value;
        int index = (int)parameter;
        return componentValues[index];
    }
}
В методе GenerateColumns нужно генерировать Binding для DataGridTextColumn.Binding, передавая индекс в ConverterParameter, примерно такой структуры
Code
1
"{Binding Path= Mode=OneWay, Converter={StaticResource ValueByComponentConverter}, ConverterParameter=0}"
Вместо ConverterParameter=0 для каждой колонки нужно подставлять её порядковый номер.

После изменения значений в дочернем окне нужно перезадать свойство ComponentValues в OperationViewModel, чтобы обновить значения в стоке таблицы.

P.S. это примерная реализация, как нужно сделать. В ней могут быть синтаксические ошибки. Я поведал лишь об идее реализации.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16129 / 11253 / 2888
Регистрация: 21.04.2018
Сообщений: 33,086
Записей в блоге: 2
17.04.2019, 15:34
Цитата Сообщение от novikov.ea Посмотреть сообщение
Нам нужно генерировать столбцы в коде, и сделать всё это в рамках MVVM.
Судя из описания ТЗ, для каждой операции будет использоваться только одна строка и много колонок.
Для этого не нужен DataGrid с изменяемым количеством колонок.
Достаточно горизонтального ListBox.
0
Эксперт .NET
 Аватар для novikov.ea
1857 / 1363 / 429
Регистрация: 10.06.2011
Сообщений: 2,136
17.04.2019, 15:38
Цитата Сообщение от Алексей ВМ Посмотреть сообщение
Результаты этих опытов должны быть оформлены в виде таблицы, количество строк в которой равно количеству операций, а к фиксированному количеству столбцов добавляются столбцы, количество которых пропорционально количеству полезных компонентов
Данное утверждение всё же свидетельствует о том, что данные по ТЗ необходимо оформлять в виде таблицы.
0
0 / 0 / 0
Регистрация: 04.05.2018
Сообщений: 22
17.04.2019, 15:39  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Давайте попробуем это сформулировать более близко к ООП.


  • Есть тип Experience - данные по определённому опыту.
  • В нём списочное свойство Оperations из экземпляров Оperation.
  • Тип Оperation - описание одной из операции опыта
  • В нём, в свою очередь, есть списочное поле Reagents из экземпляров Reagent.
  • Тип Reagent - это описание определённого химического реактива.
Я правильно понял?


Почему в Вашем случае выбран такой нетипичный способ отображения?

В результате должна сформироваться след . таблица



Продукт соответственно результат операции, количество полезных компонентов - цинк, медь, сера и тп, задаётся перед началом опыта. Бирюзовым отмечены ячейки, в которые забиваются данные после проведения всего опыта - то есть всех операций.

Люди привыкли забивать и анализировать данные в таблице в экселе, приходится под них подстраиваться.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16129 / 11253 / 2888
Регистрация: 21.04.2018
Сообщений: 33,086
Записей в блоге: 2
17.04.2019, 15:52
Цитата Сообщение от Алексей ВМ Посмотреть сообщение
В результате должна сформироваться след . таблица
Первые 5 колонок это обычные свойства.
Колонки под заголовками "Массовая доля" и "Извлечение" - это списочные свойства. А отображают их горизонтальные ListBox.

Можно, конечно, пойти и путём эмуляции таблицы в листе Excel с переменным количеством колонок, но, на мой взгляд, это создание самому себе сложностей. В том же Excel так не делается. Там постоянное количество колонок, просто их очень большое количество, а отображается часть из них.
0
0 / 0 / 0
Регистрация: 04.05.2018
Сообщений: 22
17.04.2019, 15:54  [ТС]
Нам нужно генерировать столбцы в коде, и сделать всё это в рамках MVVM.
Спасибо, попробую реализовать
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16129 / 11253 / 2888
Регистрация: 21.04.2018
Сообщений: 33,086
Записей в блоге: 2
17.04.2019, 15:59
Цитата Сообщение от Алексей ВМ Посмотреть сообщение
Люди привыкли забивать и анализировать данные в таблице в экселе, приходится под них подстраиваться.
Вполне возможно, что им так удобнее и нагляднее. Всё таки программа делается под людей, а не наоборот.

Но реализация работы с данными и их представлением (отображением) это разные вещи. Вы же пытаетесь подстроить первое под второе, а должно быть наоборот.

И ещё вопрос.
Количество различных ингредиентов в серии опытов (которые в одной таблице) одинаково или тоже может различаться?
Если может, то насколько существенно? В разы, или просто у какого-то ингредиента будет содержание 0% ?
0
0 / 0 / 0
Регистрация: 04.05.2018
Сообщений: 22
17.04.2019, 16:06  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Первые 5 колонок это обычные свойства.
Колонки под заголовками "Массовая доля" и "Извлечение" - это списочные свойства. А отображают их горизонтальные ListBox.

Можно, конечно, пойти и путём эмуляции таблицы в листе Excel с переменным количеством колонок, но, на мой взгляд, это создание самому себе сложностей. В том же Excel так не делается. Там постоянное количество колонок, просто их очень большое количество, а отображается часть из них.
То есть можно составить таблицу из горизонтальных ListBox'ов?

Добавлено через 6 минут
Цитата Сообщение от Элд Хасп Посмотреть сообщение

Но реализация работы с данными и их представлением (отображением) это разные вещи. Вы же пытаетесь подстроить первое под второе, а должно быть наоборот.
То есть мне надо танцевать от "Model first"?

Цитата Сообщение от Элд Хасп Посмотреть сообщение
И ещё вопрос.
Количество различных ингредиентов в серии опытов (которые в одной таблице) одинаково или тоже может различаться?
Если может, то насколько существенно? В разы, или просто у какого-то ингредиента будет содержание 0% ?
Данная таблице описывает один опыт, который состоит из нескольких операций (строчки столбца "Продукт"). Количество полезных компонентов - медь, цинк и т.п. для данного опыта всегда одинаково. Вы правильно поняли суть опыта, предложив тип данных Experience.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16129 / 11253 / 2888
Регистрация: 21.04.2018
Сообщений: 33,086
Записей в блоге: 2
17.04.2019, 16:13
Цитата Сообщение от Алексей ВМ Посмотреть сообщение
То есть можно составить таблицу из горизонтальных ListBox'ов?
Конечно. В шаблоне ячейки прописываете ListBoх, у него устанавливаете горизонтальное размещение элементов. ItemsSource привязываете к списочному свойству.
В самом ListBox тоже можете задать шаблон элемента.

Примеры разных ListBox есть в самом начале моей темы "WPF vs WinForms (для начинающих)" в цикле Готовые решения, примеры и рекомендации начинающим на WPF [Элд Хасп]
1
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16129 / 11253 / 2888
Регистрация: 21.04.2018
Сообщений: 33,086
Записей в блоге: 2
17.04.2019, 16:17
Цитата Сообщение от Алексей ВМ Посмотреть сообщение
То есть мне надо танцевать от "Model first"?
В любом WPF приложении сначала создаётся Model, потом ViewModel Data Designed (Модель представления времени разработки), потом View и на последнем этапе ViewModel (я её обычно делаю как производную от VMDD).
Это позволяет при создании View наглядно видеть в конструкторе всё что создаётся привязками.

Конечно, при достаточном опыте, когда себе чётко и безошибочно можешь в голове представить все этапы (особенно, то как они согласуются между собой) от этой схемы можно отойти.

Добавлено через 3 минуты
Цитата Сообщение от Алексей ВМ Посмотреть сообщение
Данная таблице описывает один опыт, который состоит из нескольких операций (строчки столбца "Продукт"). Количество полезных компонентов - медь, цинк и т.п. для данного опыта всегда одинаково. Вы правильно поняли суть опыта, предложив тип данных Experience.
Это упрощает дизайн таблицы DataGrid. Так как достаточно однократного при инициализации установки её размеров и размеров колонок.

Хотя колонки "Массовая доля" и "Извлечение" будут соответствовать одной колонке DataGrid, но её ширина должна меняться. И хорошо, что это не должно происходить динамически.
0
0 / 0 / 0
Регистрация: 04.05.2018
Сообщений: 22
17.04.2019, 16:35  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Это не проблема. Это даже проще сделать, чем настроить вид редактирования в ячейке.
По поводу добавления данных из диалогового окна в таблицу. Как проще реализовать?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.04.2019, 16:35
Помогаю со студенческими работами здесь

Как перед выводом DataGrid на экран прочитать данные из первой ячейки каждой строки?
Как перед выводом DataGrid на экран прочитать данные из первой ячейки каждой строки?

Как удалять динамически созданные компоненты?
Хедер #include &lt;Math.hpp&gt; #include &lt;math.h&gt; #include &lt;vcl.h&gt; #include &quot;PressedMatch.h&quot; class Client { AnsiString fio; ...

Как удалить динамически созданные компоненты?
Пробовал удалить так for i:= Form12.ComponentCount-1 downto 0 do begin Form12.Components.Free; end; Но удаляется только...

Как удалить динамически созданные PictureBox?
Добрый день. Написал прогу - хранилище мемов. Все работает - только есть утечка памяти. Не могу понять как от нее избавиться. Создал...

Как удалить динамически созданные объекты??
Проблема такова: требуется удалить динамически созданные компоненты label и image вот кусок их создания. procedure...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru