Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/21: Рейтинг темы: голосов - 21, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 08.12.2017
Сообщений: 206

На Form1 два Image1,Image2, как в них сделать реагирование на событие перетаскивание

05.03.2020, 21:03. Показов 4320. Ответов 18
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Может есть у кого пример и часть кода.

Предположим в компонент Image1 я перемещаю файл(ы) и мне надо взять имя файла, после я его положу другое место и запишу запись в БД. При перемещении в Image2 тоже взять имя файла и записать действие в другую таблицу.

Как отловить события в Image и понимать в каком произошло событие. Нашел на форуме только событие на форме, а не в компонентах.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.03.2020, 21:03
Ответы с готовыми решениями:

Как изображение с компонента image1 вставить в компонент image2?
Допустим есть компоненты image1 и image2. Выполняю фильтрацию фото компонента Image1. Как изображение с компонента image1 вставить в...

на кнопку кликаешь, Image1.Visible:=False; Image2.Visible:=True; Eще раз ликаешь, Image1.Visible:=True; Image2.Visible:=False.
на кнопку кликаешь, Image1.Visible:=False; Image2.Visible:=True; Eще раз ликаешь, Image1.Visible:=True; Image2.Visible:=False. ...

Как скопировать кусочек изображения из Image1->Image2 при помощи copyrect?
парни объясните как скопировать кусочек изображения из Image1->Image2 при помощи copyrect? или есть другие методы

18
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33195 / 21491 / 8233
Регистрация: 22.10.2011
Сообщений: 36,879
Записей в блоге: 12
05.03.2020, 21:26
Цитата Сообщение от SAnatoliy Посмотреть сообщение
Нашел на форуме только событие на форме
Какая разница? Главное - алгоритм. А он одинаков: пишешь класс-перехватчик для нужного компонента, который будет обрабатывать Drop файлов, в нем ловишь WM_DROPFILES, и делаешь то, что нужно. Пробуй, что не получится - обращайся.
0
0 / 0 / 0
Регистрация: 08.12.2017
Сообщений: 206
06.03.2020, 13:10  [ТС]
чтот не получается.. (часть кода повырезал...

Так нужно: //DragAcceptFiles(Image1->Handle,true); Выдает ошибку. //Handle' is not a member of 'TImage' Full parser context


// не вижу события DragAcceptFiles(Edit1->Handle, true);

//DragAcceptFiles(Handle, true); // работает

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
public:     // User declarations
void __fastcall WMDropFiles(TWMDropFiles msg);
    BEGIN_MESSAGE_MAP
    MESSAGE_HANDLER(WM_DROPFILES,TWMDropFiles,WMDropFiles);
    END_MESSAGE_MAP(TForm);
//-----------------------------------------------
void __fastcall TFMainTSBUser::FormCreate(TObject *Sender)
{
ChangeWindowMessageFilter(WM_DROPFILES,MSGFLT_ADD);
ChangeWindowMessageFilter(WM_COPYDATA,MSGFLT_ADD);
ChangeWindowMessageFilter(0x0049,MSGFLT_ADD);
 
//DragAcceptFiles(Image1->Handle,true);  //Handle' is not a member of 'TImage' Full parser context
DragAcceptFiles(Edit1->Handle, true); // не вижу события
DragAcceptFiles(Handle, true);  // работает
//-----------------------------------------------
 
 
//---------------------------------------------------------------------------
void __fastcall TFMainTSBUser::WMDropFiles(TWMDropFiles msg)
{
int filecount, length, i;
filecount = DragQueryFile((HDROP) msg.Drop, 0xFFFFFFFF, NULL, 0);
String filename;
 
        for (i = 0; i < filecount; i++) {
            filename.SetLength(MAX_PATH);
            length = DragQueryFile((HDROP)msg.Drop, i, filename.c_str(), filename.Length());
            filename.SetLength(length);
            if (FileExists(filename))
            { ShowMessage(filename); };
            Edit1->Text = filename;
        };
 
            Refresh();
            DragFinish((HDROP) msg.Drop);
}
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33195 / 21491 / 8233
Регистрация: 22.10.2011
Сообщений: 36,879
Записей в блоге: 12
06.03.2020, 14:48
Лучший ответ Сообщение было отмечено SAnatoliy как решение

Решение

Для того, чтобы компонент мог принимать файлы извне, у него должен быть хендл, так что нужен оконный, а не графический компонент. Сделал с TPanel:
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
// в h-файле перед описанием класса формы:
namespace Image_Drop
{
    class TPanel : public Extctrls::TPanel
    {
    protected:
        MESSAGE void __fastcall WMDropFiles(TWMDropFiles &message)
        {
            //
            int filecount = ::DragQueryFile((HDROP)message.Drop, 0xFFFFFFFF, NULL, 0);
            switch(this->Tag)
            {
            case 1:
                static_cast<TForm*>(Parent)->Caption = IntToStr(filecount);
                break;
            case 2:
                static_cast<TForm*>(Parent)->Caption = L"Тут любое другое действие";
                break;
            }
        }
    public:
        __fastcall virtual TPanel(Classes::TComponent *AOwner)
            : Extctrls::TPanel(AOwner) {}
        BEGIN_MESSAGE_MAP
            MESSAGE_HANDLER(WM_DROPFILES, TWMDropFiles, WMDropFiles);
        END_MESSAGE_MAP(Extctrls::TPanel);
    };
}
#define TPanel Image_Drop::TPanel
 
// дальше класс формы без изменений
Ну и в OnCreate формы :
C++
1
2
3
4
5
6
7
void __fastcall TForm1::FormCreate(TObject *Sender)
{
    Panel1->Tag = 1;
    Panel2->Tag = 2;
    DragAcceptFiles(Panel1->Handle, true);
    DragAcceptFiles(Panel2->Handle, true);
}
, а на панель уже можешь положить изображение, оно не будет мешать Drag-and-Drop-у.

Все работает. Что я опять не так делаю?
5
Модератор
 Аватар для D1973
9907 / 6444 / 2455
Регистрация: 21.01.2014
Сообщений: 27,354
Записей в блоге: 3
06.03.2020, 15:17
Цитата Сообщение от volvo Посмотреть сообщение
Что я опять не так делаю?
То, что Вы делаете - учителя в школах/институтах не понимают
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33195 / 21491 / 8233
Регистрация: 22.10.2011
Сообщений: 36,879
Записей в блоге: 12
06.03.2020, 15:48
Это проблемы учителей, пускай идут работать дворниками, если сами учиться не хотят...
0
0 / 0 / 0
Регистрация: 08.12.2017
Сообщений: 206
06.03.2020, 20:13  [ТС]
Спасибо. Заработал код.

Ток не пойму теперь как прикрутить к Вашему коду код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int filecount, length, i;
filecount = DragQueryFile((HDROP) message.Drop, 0xFFFFFFFF, NULL, 0);
String filename;
 
        for (i = 0; i < filecount; i++) {
            filename.SetLength(MAX_PATH);
            length = DragQueryFile((HDROP)message.Drop, i, filename.c_str(), filename.Length());
            filename.SetLength(length);
            if (FileExists(filename))
            { ShowMessage(filename); };
            Edit1->Text = filename;
        };
 
            Refresh();
            DragFinish((HDROP) message.Drop);
пробовал перед 15 строкой, компилятор в ошибку уходит
0
0 / 0 / 0
Регистрация: 08.12.2017
Сообщений: 206
07.03.2020, 22:08  [ТС]
Всем спасибо вопрос решен.


Кликните здесь для просмотра всего текста
может кому пригодится...
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
//---------------------------------------------------------------------------
//h.
 
namespace Image_Drop
{
 
    class TPanel : public Extctrls::TPanel
    {
    protected:
        MESSAGE void __fastcall WMDropFiles(TWMDropFiles &message)
        {
            int filecount = ::DragQueryFile((HDROP)message.Drop, 0xFFFFFFFF, NULL, 0);
            int length, i;
            String filename;
 
            switch(this->Tag)
            {
            case 1:
 
                //static_cast<TForm*>(Parent)->Caption = IntToStr(filecount);
 
            ShowMessage("Первый " + IntToStr(filecount));
            for (i = 0; i < filecount; i++) {
                filename.SetLength(MAX_PATH);
                length = DragQueryFile((HDROP)message.Drop, i, filename.c_str(), filename.Length());
                filename.SetLength(length);
                if (FileExists(filename)) { ShowMessage("Первый :" + filename); }
                };
 
            break;
            case 2:
 
                //static_cast<TForm*>(Parent)->Caption = L"Тут любое другое действие";
 
            ShowMessage("Второй " + IntToStr(filecount));
            for (i = 0; i < filecount; i++) {
                filename.SetLength(MAX_PATH);
                length = DragQueryFile((HDROP)message.Drop, i, filename.c_str(), filename.Length());
                filename.SetLength(length);
                if (FileExists(filename)) { ShowMessage("Второй :" + filename); }
                };
 
            break;
            case 3:
 
            ShowMessage("Третий " + IntToStr(filecount));
            for (i = 0; i < filecount; i++) {
                filename.SetLength(MAX_PATH);
                length = DragQueryFile((HDROP)message.Drop, i, filename.c_str(), filename.Length());
                filename.SetLength(length);
                if (FileExists(filename)) { ShowMessage("Третий :" + filename); }
                };
 
            break;
            case 4:
 
            ShowMessage("Четвертый " + IntToStr(filecount));
            for (i = 0; i < filecount; i++) {
                filename.SetLength(MAX_PATH);
                length = DragQueryFile((HDROP)message.Drop, i, filename.c_str(), filename.Length());
                filename.SetLength(length);
                if (FileExists(filename)) { ShowMessage("Четвертый :" + filename); }
                };
 
            break;
            }
        }
    public:
        __fastcall virtual TPanel(Classes::TComponent *AOwner)
            : Extctrls::TPanel(AOwner) {}
        BEGIN_MESSAGE_MAP
            MESSAGE_HANDLER(WM_DROPFILES, TWMDropFiles, WMDropFiles);
        END_MESSAGE_MAP(Extctrls::TPanel);
    };
}
#define TPanel Image_Drop::TPanel
//---------------------------------------------------------------------------
 
 
 
//cpp
//---------------------------------------------------------------------------
void __fastcall TFMainTSBUserCard::FormCreate(TObject *Sender)
{
    P_image1->Tag = 1;
    P_image2->Tag = 2;
    P_image3->Tag = 3;
    P_image4->Tag = 4;
    DragAcceptFiles(P_image1->Handle, true);
    DragAcceptFiles(P_image2->Handle, true);
    DragAcceptFiles(P_image3->Handle, true);
    DragAcceptFiles(P_image4->Handle, true);
0
0 / 0 / 0
Регистрация: 08.12.2017
Сообщений: 206
08.03.2020, 23:00  [ТС]
подскажите, как работать с содержимым переменной "filename".

что не пойму как передать данные в форму:
например как реализовать Edit1->Text = filename. при перемещении.
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33195 / 21491 / 8233
Регистрация: 22.10.2011
Сообщений: 36,879
Записей в блоге: 12
09.03.2020, 15:15
Ну, например, добавить в класс-перехватчик еще поле (со свойством) для приемника информации (ссылку на Edit, например), и потом в нужном месте обращаться к этому полю и передавать информацию, куда нужно.
0
0 / 0 / 0
Регистрация: 08.12.2017
Сообщений: 206
09.03.2020, 18:32  [ТС]
можно пример?
0
0 / 0 / 0
Регистрация: 08.12.2017
Сообщений: 206
28.10.2020, 08:57  [ТС]
Цитата Сообщение от volvo Посмотреть сообщение
добавить в класс-перехватчик еще поле (со свойством) для приемника информации (ссылку на Edit, например), и потом в нужном месте обращаться к этому полю
Можно Вас попросить привести пример.
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33195 / 21491 / 8233
Регистрация: 22.10.2011
Сообщений: 36,879
Записей в блоге: 12
28.10.2020, 09:06
Пример чего? Где именно нужно добавлять содержимое строки filename в Edit на форме, можно уточнить? Это будет один Edit, или опять для каждой панели - свой? Когда перемещаем несколько файлов - все имена должны заноситься в этот Edit, или только одно из них (если одно - то какое именно?). Для начала давайте полное ТЗ, потом просите примеры...
0
0 / 0 / 0
Регистрация: 08.12.2017
Сообщений: 206
29.10.2020, 11:02  [ТС]
edit для каждой панели свой (edit1,edit2,edit3,edit4).
Файлы переносятся только по одному.

При перетаскивании файла на Panel1 в едит1 должно поместиться полный путь файла из filename. При перетаскивании в другие панели по соответствию Panel2 в едит2.
Про множества файлов упустим)
0
0 / 0 / 0
Регистрация: 08.12.2017
Сообщений: 206
18.02.2021, 18:06  [ТС]
Уважаемый Volvo и форумчане, прошу помочь с кодом в спрашиваемой задаче.

Вы привели пример с панелями. Все работает но отображение выводится в ShowMessage, а как сделать чтоб содержимое filename помещалось в Edit.

Я положил на Panel1 компонент Edit1 и на Panel2 компонент Edit2. при перетаскивании файла на панель1 путь был в едит1, если перетаскиваем на панель2, то путь в едит2. Множество файлов не нужно.

Мне надо чтоб при перетаскивании на панель путь размещался в соответствующем Editee.
0
Модератор
 Аватар для D1973
9907 / 6444 / 2455
Регистрация: 21.01.2014
Сообщений: 27,354
Записей в блоге: 3
19.02.2021, 07:05
SAnatoliy, а может еще что-нибудь на этих панелях располагаться, кроме заветных эдитов, в том числе, еще какие-то Эдиты, в которые не надо путь записывать? И могут ли встретиться панели, которые не должны принимать файлы? Если ответ "ДА" в обоих случаях то надо проделать предварительные действия, а именно:
1. Установить свойство Tag для панелей, которые будут принимать файлы, отличным от нуля, по порядку: 1, 2, 3... (у меня в примере таких панелей 5...). Для панелей, которые файлы принимать не будут, Tag == 0
2. Установить свойство Tag для эдитов, которые будут принимать путь файла, в значение 9 для всех панелей.

Цитата Сообщение от SAnatoliy Посмотреть сообщение
Множество файлов не нужно
Тогда, даже если уцепить несколько, в эдит будет помещаться имя первого из выбранных...
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
#include <dir.h>
//---------------------------------------------------------------------------
namespace Image_Drop
{
    class TPanel : public Extctrls::TPanel
    {
    protected:
        MESSAGE void __fastcall WMDropFiles(TWMDropFiles &message)
        {
            //int filecount = ::DragQueryFile((HDROP)message.Drop, 0xFFFFFFFF, NULL, 0);
            String FN;
            FN.SetLength(MAXPATH);
            ::DragQueryFile((HDROP)message.Drop, 0, FN.c_str(), FN.Length());
            for(int i = 0; i < this->ControlCount; i++)
              if(this->Controls[i]->ClassNameIs("TEdit")) {
                TEdit *E = static_cast<TEdit*>(this->Controls[i]);
                if(E->Tag == 9) E->Text = FN;
              }
            /*String s;
            switch(this->Tag)
            {
               case 1: s = "первая"; break;
               case 2: s = "вторая"; break;
               case 3: s = "третья"; break;
               case 4: s = "четвертая"; break;
               case 5: s = "пятая";
            } */
            String A[5] = {"первая","вторая","третья","четвертая","пятая"};
            static_cast<TForm*>(Parent)->Caption = String().sprintf(L"Сработала %s панель", A[this->Tag - 1]);
        }
    public:
        __fastcall virtual TPanel(Classes::TComponent *AOwner)
            : Extctrls::TPanel(AOwner) {}
        BEGIN_MESSAGE_MAP
            MESSAGE_HANDLER(WM_DROPFILES, TWMDropFiles, WMDropFiles);
        END_MESSAGE_MAP(Extctrls::TPanel);
    };
}
#define TPanel Image_Drop::TPanel
class TForm1 : public TForm
{...
C++
1
2
3
4
5
6
7
8
void __fastcall TForm1::FormCreate(TObject *Sender)
{
   for(int i = 0; i < ControlCount; i++)
     if(Controls[i]->ClassNameIs("TPanel")) {
       TPanel *P = static_cast<TPanel*>(Controls[i]);
       DragAcceptFiles(P->Handle, P->Tag);
     }
}
Миниатюры
На Form1 два Image1,Image2, как в них сделать реагирование на событие перетаскивание  
2
0 / 0 / 0
Регистрация: 08.12.2017
Сообщений: 206
13.10.2021, 15:52  [ТС]
С помощью многоуважаемого Volvo, была реализована возможность на форме перетаскивание файлов на Эдиты и отображения в них полного пути к файлу. Все замечательно работает. Возникла необходимость тоже самое сделать на другой форме данного проекта. Самому не получается понять как это сделать. Пробовал как на первой форме, сделать на второй. Компилятор ругается на ошибки.
прилагаю исходники что есть
Вложения
Тип файла: rar test-ish_1.rar (58.1 Кб, 8 просмотров)
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33195 / 21491 / 8233
Регистрация: 22.10.2011
Сообщений: 36,879
Записей в блоге: 12
13.10.2021, 16:42
SAnatoliy, вынеси namespace в отдельный файл (вместе с #ifndef/#define/#endif, чтобы избежать повторного определения типов), и делай #include этого файла в тех формах, где необходимо подобное поведение. Как-то вот так:

image_drop.hpp
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
#ifndef IMAGE_DROP
#define IMAGE_DROP
 
//---------------------------------------------------------------------------
#include <Vcl.ExtCtrls.hpp>
namespace Image_Drop
{
    class TPanel : public Extctrls::TPanel
    {
    protected:
        MESSAGE void __fastcall WMDropFiles(TWMDropFiles &message)
        {
            String FN;
            FN.SetLength(MAX_PATH);
            ::DragQueryFile((HDROP)message.Drop, 0, FN.c_str(), FN.Length());
 
            for(int i = 0; i < this->ControlCount; i++)
              if(this->Controls[i]->ClassNameIs("TEdit")) {
                TEdit *E = static_cast<TEdit*>(this->Controls[i]);
                if(E->Tag == 9) E->Text = FN;
              }
 
          /*
            String s;
            switch(this->Tag)
            {
               case 1: s = "первая"; break;
               case 2: s = "вторая"; break;
               case 3: s = "третья"; break;
               case 4: s = "четвертая"; break;
               case 5: s = "пятая";
            }
            //String A[5] = {"первая","вторая","третья","четвертая","пятая"};
            //static_cast<TForm*>(Parent)->Caption = String().sprintf(L"Сработала %s панель", A[this->Tag - 1]);
          */
        }
    public:
        __fastcall virtual TPanel(Classes::TComponent *AOwner)
            : Extctrls::TPanel(AOwner) {}
        BEGIN_MESSAGE_MAP
            MESSAGE_HANDLER(WM_DROPFILES, TWMDropFiles, WMDropFiles);
        END_MESSAGE_MAP(Extctrls::TPanel);
    };
}
#define TPanel Image_Drop::TPanel
 
#endif
1
0 / 0 / 0
Регистрация: 08.12.2017
Сообщений: 206
14.10.2021, 08:53  [ТС]
Огромнейшее благодарю Вас volvo.
Все получилось.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.10.2021, 08:53
Помогаю со студенческими работами здесь

Image1 и Image2
Здравствуйте. У меня возник такой вопрос: на форме есть 2 компонента Image. Нужно чтоб если картинка с папки &quot;1&quot; скажем...

Canvas картинками из Image1 и Image2
Всем привет. Есть код, который на канве делает из текстового файла карту. Вот он: for(int i=0;i&lt;10;i++) { for(int...

Запрет наведения Image1 на Image2
На форме обе картинки имеют свойство перемещаться и нужно сделать так, чтобы когда первая картинка при перемещении сталкивалась со второй,...

Создание динамического перехода от Image1 к Image2
Очень уж нужна помощь по делу, нашел как прорисовать градиент и другое но конкретно с этим никак не разберусь. Туплю, так как с графикой...

Привязка размеров image2 к картинке в image1
Такая проблема. Имею 2 image(image1, image2) image2 имеет включенное свойство transparent. два image наложены друг на друга в image1...


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

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США. Нашел на реддите интересную статью под названием «Кто-нибудь знает, где получить бесплатный компьютер или. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
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 - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru