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

Работа с XLS: Размер только в первой ячейки, а надо на всех...

07.08.2018, 14:32. Показов 1774. Ответов 15

Студворк — интернет-сервис помощи студентам
Так работает, но размер только в первой ячейки, а надо на всех

C++
1
2
3
4
5
6
7
8
9
10
11
12
[B] vVarCell.OlePropertyGet("Font").OlePropertySet("Size",15);[/B]
    vVarCell=vVarSheet.OlePropertyGet("Cells").OlePropertyGet("Item",1,1);
    vVarCell.OlePropertySet("Value",WideString(AnsiString("№пп")));
 
    vVarCell=vVarSheet.OlePropertyGet("Cells").OlePropertyGet("Item",1,2);
    vVarCell.OlePropertySet("Value",WideString(AnsiString("Назв.")));
 
    vVarCell= vVarSheet.OlePropertyGet("Cells").OlePropertyGet("Item",1,3);
    vVarCell.OlePropertySet("Value",WideString(AnsiString("Модель")));
 
    vVarCell= vVarSheet.OlePropertyGet("Cells").OlePropertyGet("Item",1,4);
    vVarCell.OlePropertySet("Value",WideString(AnsiString("Строка")));
Вот так не работает...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    vVarCell.OlePropertyGet("Font").OlePropertySet("Size",15);
    vVarCell=vVarSheet.OlePropertyGet("Cells").OlePropertyGet("Item",1,1);
    vVarCell.OlePropertySet("Value",WideString(AnsiString("№пп")));
 
    vVarCell.OlePropertyGet("Font").OlePropertySet("Size",15);
    vVarCell=vVarSheet.OlePropertyGet("Cells").OlePropertyGet("Item",1,2);
    vVarCell.OlePropertySet("Value",WideString(AnsiString("Назв.")));
 
    vVarCell.OlePropertyGet("Font").OlePropertySet("Size",15);
    vVarCell= vVarSheet.OlePropertyGet("Cells").OlePropertyGet("Item",1,3);
    vVarCell.OlePropertySet("Value",WideString(AnsiString("Модель")));
 
    vVarCell.OlePropertyGet("Font").OlePropertySet("Size",15);
    vVarCell= vVarSheet.OlePropertyGet("Cells").OlePropertyGet("Item",1,4);
    vVarCell.OlePropertySet("Value",WideString(AnsiString("Строка")));
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.08.2018, 14:32
Ответы с готовыми решениями:

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

вывести картинки через Mysql и изменить размер только первой
Возможно ли как то , осуществить такую задачу, вывести из базы данных картинки, и изменить размер только первой картинки.Чтобы она была в 3...

Linq-запрос: выборка только из первой ячейки каждой строки массива
Есть двумерный массив 100*3 При создании linq запроса перебираются все значения, а нужно что бы выборка была лишь из первой ячейки каждой...

15
Модератор
 Аватар для D1973
9917 / 6454 / 2455
Регистрация: 21.01.2014
Сообщений: 27,389
Записей в блоге: 3
07.08.2018, 17:15
А так?
C++
1
2
3
4
5
6
7
String A[4] = {"№пп", "Назв.", "Модель", "Строка"};
for(int i = 1; i < 5; i++)
   {
       vVarCell = vVarSheet.OlePropertyGet("Cells").OlePropertyGet("Item", 1, i);
       vVarCell.OlePropertyGet("Font").OlePropertySet("Size", 15);
       vVarCell.OlePropertySet("Value",WideString(A[i - 1]));
   }
1
0 / 0 / 0
Регистрация: 08.12.2017
Сообщений: 206
07.08.2018, 19:15  [ТС]
а нет ли способа без циклов?
0
279 / 156 / 52
Регистрация: 30.06.2011
Сообщений: 1,712
07.08.2018, 20:13
Цитата Сообщение от SAnatoliy Посмотреть сообщение
а нет ли способа без циклов?
С циклами работает? Тогда в чем проблема?
0
0 / 0 / 0
Регистрация: 08.12.2017
Сообщений: 206
07.08.2018, 20:18  [ТС]
пока не пробовал, прошу прощения, завтра на работе попробую.

просто думал проще как, так как ячеек много и в цикле уже будут выгружаться из набора данных
0
 Аватар для TrollHammer
1216 / 709 / 336
Регистрация: 22.02.2018
Сообщений: 2,095
Записей в блоге: 2
08.08.2018, 01:52
Можно использовать свойство Range и присваивать Variant переменной указатель на определенный диапазон ячеек.
0
Модератор
 Аватар для D1973
9917 / 6454 / 2455
Регистрация: 21.01.2014
Сообщений: 27,389
Записей в блоге: 3
08.08.2018, 04:15
Цитата Сообщение от SAnatoliy Посмотреть сообщение
ячеек много и в цикле уже будут выгружаться из набора данных
SAnatoliy, вот именно для Вас написан пункт 4.7 Правил форума:
Как можно более полно описывайте суть проблемы или вопроса, что было сделано для ее решения и какие результаты получены.
Вы задали вопрос, получили на него ответ - и тут оказывается, что это и не вопрос вовсе, а огрызок вопроса, а на самом деле тут еще и набор данных какой-то приплелся...
0
 Аватар для TrollHammer
1216 / 709 / 336
Регистрация: 22.02.2018
Сообщений: 2,095
Записей в блоге: 2
08.08.2018, 04:24
C++
1
vVarCell=vVarSheet.OlePropertyGet("Range","B4:C4");
Взяли диапазон и присвоили ему, что угодно - цвет, шрифт, бордюр
0
Модератор
 Аватар для D1973
9917 / 6454 / 2455
Регистрация: 21.01.2014
Сообщений: 27,389
Записей в блоге: 3
08.08.2018, 05:03
Цитата Сообщение от TrollHammer Посмотреть сообщение
Взяли диапазон и присвоили ему, что угодно
И более того: сформировать предварительно вариантный массив из этого всплывшего "набора данных", определить исходя из НД размер диапазона и потом одним махом записать этот вариантный массив в диапазон.
Цитата Сообщение от SAnatoliy Посмотреть сообщение
а нет ли способа без циклов?
Но тут тоже без цикла не обойтись...
0
 Аватар для TrollHammer
1216 / 709 / 336
Регистрация: 22.02.2018
Сообщений: 2,095
Записей в блоге: 2
08.08.2018, 06:20
Цитата Сообщение от D1973 Посмотреть сообщение
И более того:
Тут уж чего угодно можно делать.

Не по теме:

Только пляски с OLE - на мой взгляд извращение. Есть сторонние библиотеки (платные и халявные), которые офисные документы формируют независимо от того, есть ли офис на машине или нет.

0
0 / 0 / 0
Регистрация: 08.12.2017
Сообщений: 206
08.08.2018, 14:04  [ТС]
Не буду создавать новую тему чтоб не плождить. Спрошу В этой:

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

Подскажите как исправить на примере кода ниже.


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
  Variant app, books, book, sheet, Rang, vCell;
  String fTPL = ExtractFilePath(Application->ExeName) + "template.xls"; //шаблон отчета
 
 
  Word d, m, y, hh, mm, ss, ms;
  DecodeDate(Now(),y,m,d);
  DecodeTime(Now(),hh,mm,ss,ms);
  String fOut = String().sprintf(L"report-IP_%s%s%s%s%s.xls",LZ(d),LZ(m),LZ(y),LZ(hh),LZ(mm));
  String fXLS = ExtractFilePath(Application->ExeName) + fOut;
 
  app = CreateOleObject("Excel.Application");
  books = app.OlePropertyGet("Workbooks");
  books.OleFunction("Open", WideString(fTPL));
  book = books.OlePropertyGet("item",1);
  sheet = book.OlePropertyGet("WorkSheets",1);
 
  vCell=sheet.OlePropertyGet("Cells").OlePropertyGet("Item",1,1);
  vCell.OlePropertySet("Value",WideString("Справочник"));
 
  const int bounds[9] = { 0, DBG_sety->DataSource->DataSet->RecordCount, 0, DBG_sety->DataSource->DataSet->FieldCount };
  Variant vData = VarArrayCreate(bounds, 10, varVariant);
    DBG_ip_sety->DataSource->DataSet->First();
 
 
  for(int row = 0; row < DBG_sety->DataSource->DataSet->RecordCount; ++row)
   {
     for(int column = 0; column < DBG_sety->DataSource->DataSet->FieldCount; ++column)
        vData.PutElement(DBG_sety->DataSource->DataSet->Fields->Fields[column]->AsVariant, row, column);
     DBG_sety->DataSource->DataSet->Next();
   }
 
 
  Rang = sheet.OlePropertyGet("Range",sheet.OlePropertyGet("Cells",4,1),
         sheet.OlePropertyGet("Cells", DBG_sety->DataSource->DataSet->RecordCount + 3, DBG_sety->DataSource->DataSet->RecordCount));
  Rang.OlePropertySet("Value",vData);
 
 
        app.OlePropertySet("DisplayAlerts",false);
        book.OleProcedure("SaveAs",WideString(fXLS));
        app.OleProcedure("Quit");
        ShowMessage("Отчет записан в файл " + fXLS);
Миниатюры
Работа с XLS: Размер только в первой ячейки, а надо на всех...  
0
Модератор
 Аватар для D1973
9917 / 6454 / 2455
Регистрация: 21.01.2014
Сообщений: 27,389
Записей в блоге: 3
08.08.2018, 18:04
Цитата Сообщение от SAnatoliy Посмотреть сообщение
ошибка на скрине..
У меня не настолько хорошее зрение, чтобы разобрать, что там на этой ошибке... Даже на большом мониторе, не говоря уже про обычный ноутбук...
Цитата Сообщение от SAnatoliy Посмотреть сообщение
const int bounds[9] = { 0, DBG_sety->DataSource->DataSet->RecordCount, 0, DBG_sety->DataSource->DataSet->FieldCount };
Откуда Вы взяли это число в квадратных скобках - 9 - если тут же присваиваете массиву только 4 значения? А их там и быть больше не должно...
1
0 / 0 / 0
Регистрация: 08.12.2017
Сообщений: 206
09.08.2018, 08:14  [ТС]
не понял а где указано значение 4. Можно показать код.

значение 9 это количество столбцов таблицы.
Миниатюры
Работа с XLS: Размер только в первой ячейки, а надо на всех...  
0
Модератор
 Аватар для D1973
9917 / 6454 / 2455
Регистрация: 21.01.2014
Сообщений: 27,389
Записей в блоге: 3
09.08.2018, 08:45
Цитата Сообщение от SAnatoliy Посмотреть сообщение
не понял а где указано значение 4
Вот именно что нигде, а должно быть!
Цитата Сообщение от SAnatoliy Посмотреть сообщение
значение 9 это количество столбцов таблицы.
Вы бы, ради интереса хотя бы, в справку заглянули, что такое функция VarArrayCreate и какие параметры она принимает!
Первый параметр определяет диапазон значений из НД, который будет выгружаться в вариантный массив. Он задается двумя парами чисел: начальное и конечное значение по записям НД и начальное и конечное значение по полям НД - итого массив из 4-х целых чисел. Зачем Вы туда 9 приплели - прямо не знаю...
Далее - второй параметр, обозначенный в справке, как Bounds_size. Откуда Вы взяли число 10 - это ведь всего навсего верхний индекс нашего предыдущего массива. Если учесть, что индексы начинаются с 0 - какое значение должно быть в качестве этого параметра, а?

Добавлено через 5 минут
Еще один момент:
Цитата Сообщение от SAnatoliy Посмотреть сообщение
DBG_sety->DataSource->DataSet->RecordCount
У Вас набор данных, которые Вы выгружаете сосредоточен в каком-либо компоненте: ADOTable или ADOQuery... Почему прямо их не указать? Зачем весь этот огород с DBG_sety->DataSource->DataSet? Плясать надо непосредственно от набора данных, а не от компонента, его отображающего...
К тому же этот метод (RecordCount я имею в виду) может нормально работать при небольшом объеме данных на локальной БД, но вот в случае сетевой клиент-серверной БД на больших объемах данных он сыграет с Вами злую шутку, которую достаточно сложно будет отловить и пофиксить...
0
0 / 0 / 0
Регистрация: 08.12.2017
Сообщений: 206
10.08.2018, 11:37  [ТС]
Помогите подправить данный "код-1" или если код не годится, то другой пример привести.

Код-1.
В данном коде увидел две непонятки:
1. Не передаются данные в столбцы с 2 по 9, если передаю одну строку, передается только значение первого столбца остальные пустые.
2. В конце моих столбцов заполняются остальные столбцы значением "#Н/Д", откуда они берутся, причем сколько строк у меня столько и значений в пустых столбцах. Шаблон у меня пустой.

1.
Кликните здесь для просмотра всего текста

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
//---------------------------------------------------------------------------
void __fastcall TFIjurnalPSeti::BitBtn3Click(TObject *Sender)
{
  Variant app, books, book, sheet, Rang, vCell;
  String fTPL = ExtractFilePath(Application->ExeName) + "template_boook_ip.xltm";
 
 
  Word d, m, y, hh, mm, ss, ms;
  DecodeDate(Now(),y,m,d);
  DecodeTime(Now(),hh,mm,ss,ms);
  String fOut = String().sprintf(L"report-IP_%s%s%s%s%s.xls",LZ(d),LZ(m),LZ(y),LZ(hh),LZ(mm));
  String fXLS = ExtractFilePath(Application->ExeName) + fOut;
 
  app = CreateOleObject("Excel.Application");
  books = app.OlePropertyGet("Workbooks");
  books.OleFunction("Open", WideString(fTPL));
  book = books.OlePropertyGet("item",1);
  sheet = book.OlePropertyGet("WorkSheets",1);
 
    vCell=sheet.OlePropertyGet("Cells").OlePropertyGet("Item",1,1);
        vCell.OlePropertyGet("Font").OlePropertySet("Size",12);
        vCell.OlePropertySet("Value",WideString("Справочник IP адресов."));
 
  const int bounds[4] = { 0, DBG_ip_sety->DataSource->DataSet->RecordCount, 0, DBG_ip_sety->DataSource->DataSet->FieldCount };
  Variant vData = VarArrayCreate(bounds, 3, varVariant);
    DBG_ip_sety->DataSource->DataSet->First();
 
  for(int row = 0; row < DBG_ip_sety->DataSource->DataSet->RecordCount; ++row)
   {
     for(int column = 0; column < DBG_ip_sety->DataSource->DataSet->FieldCount; ++column)
        vData.PutElement(DBG_ip_sety->DataSource->DataSet->Fields->Fields[column]->AsVariant, row, column);
     DBG_ip_sety->DataSource->DataSet->Next();
   }
 
    Rang = sheet.OlePropertyGet("Range",sheet.OlePropertyGet("Cells",4,1),
        sheet.OlePropertyGet("Cells", DBG_ip_sety->DataSource->DataSet->RecordCount + 3, DBG_ip_sety->DataSource->DataSet->RecordCount));
            Rang.OlePropertyGet("Font").OlePropertySet("Size",12);
            Rang.OlePropertySet("Value",vData);
 
        app.OlePropertySet("DisplayAlerts",false);
        book.OleProcedure("SaveAs",WideString(fXLS));
        app.OleProcedure("Quit");
        ShowMessage("Отчет записан в файл " + fXLS);


Код-2.
Не разобрался как менять шрифт в диапазоне. (отдельно для шапки, отдельно на данные). В этом коде часто вылетают ошибки по экселю, помогает только перезапуск ПК. Код 1. (выше приведенный стабильней)

Кликните здесь для просмотра всего текста
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
AnsiString exp_name, exp_model, exp_skdID, exp_connect;
 
Variant v, vVarApp, vVarBooks, vVarBook, vVarSheets, vVarSheet, vVarCells, vVarCell;
bool fStart;
 
 if(!fStart)
 {
  try
  {
   vVarApp=CreateOleObject("Excel.Application");
   fStart=true;
  }
  catch(...)
  {
    ShowMessage("Ошибка при открытии сервера Excel");
        return;
  }
 }
 
vVarApp.OlePropertySet("DisplayAlerts",false);
vVarBooks=vVarApp.OlePropertyGet("Workbooks");
vVarApp.OlePropertySet("SheetsInNewWorkbook",1);
vVarBooks.OleProcedure("Add");
vVarBook=vVarBooks.OlePropertyGet("Item",1);
vVarSheets=vVarBook.OlePropertyGet("Worksheets");
vVarSheet=vVarSheets.OlePropertyGet("Item",1);
vVarSheet.OlePropertySet("Name",WideString("Отчет по СКД"));
vVarSheet.OleProcedure("Activate");
 
    int num = 1;
 
    DBG_door->DataSource->DataSet->First();
 
    vVarCell=vVarSheet.OlePropertyGet("Cells").OlePropertyGet("Item",1,1);
    vVarCell.OlePropertySet("Value",WideString(AnsiString("№пп")));
 
    vVarCell=vVarSheet.OlePropertyGet("Cells").OlePropertyGet("Item",1,2);
    vVarCell.OlePropertySet("Value",WideString(AnsiString("Назв. СКД")));
 
    vVarCell= vVarSheet.OlePropertyGet("Cells").OlePropertyGet("Item",1,3);
    vVarCell.OlePropertySet("Value",WideString(AnsiString("Модель СКД")));
 
    vVarCell= vVarSheet.OlePropertyGet("Cells").OlePropertyGet("Item",1,4);
    vVarCell.OlePropertySet("Value",WideString(AnsiString("Строка соединения")));
 
 
 
    for(DBG_door->DataSource->DataSet->First(); !DBG_door->DataSource->DataSet->Eof; DBG_door->DataSource->DataSet->Next())
        {
        num++;
 
        exp_skdID =  DBG_door->DataSource->DataSet->FieldByName("skd_deviceID")->AsString;
        exp_name =  DBG_door->DataSource->DataSet->FieldByName("skd_name")->AsString;
        exp_model = DBG_door->DataSource->DataSet->FieldByName("skd_model")->AsString;
        exp_connect =  DBG_door->DataSource->DataSet->FieldByName("connect_device")->AsString;
 
                vVarCell=vVarSheet.OlePropertyGet("Cells").OlePropertyGet("Item",num,1);
                vVarCell.OlePropertySet("Value",WideString(exp_skdID));
                vVarCell=vVarSheet.OlePropertyGet("Cells").OlePropertyGet("Item",num,2);
                vVarCell.OlePropertySet("Value",WideString(exp_name));
                vVarCell=vVarSheet.OlePropertyGet("Cells").OlePropertyGet("Item",num,3);
                vVarCell.OlePropertySet("Value",WideString(exp_model));
                vVarCell=vVarSheet.OlePropertyGet("Cells").OlePropertyGet("Item",num,4);
                vVarCell.OlePropertySet("Value",WideString(exp_connect));
    }
 
    vVarApp.OlePropertySet("Visible",true);
 
        vVarSheets.Clear();
        vVarCell.Clear();
        vVarApp.Clear();


Данные в получаю из компонента ADOQuery1.
0
 Аватар для TrollHammer
1216 / 709 / 336
Регистрация: 22.02.2018
Сообщений: 2,095
Записей в блоге: 2
13.08.2018, 07:22
Цитата Сообщение от SAnatoliy Посмотреть сообщение
Не разобрался как менять шрифт в диапазоне
Печатаем заголовки
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
      for(int i=1; i<=iCols; i++)
      {
           aTMP=dbgReg->Columns->Items[i-1]->Title->Caption;
 
            vVarCell=vVarSheet.OlePropertyGet("Cells").OlePropertyGet("Item", 1, i);
            vBorder(vVarCell,2,1,55); //нарисовали границы
            vVarCell.OlePropertySet("HorizontalAlignment",-4108); //Выравнивание
            vVarCell.OlePropertySet("VerticalAlignment",-4108);
            vVarCell.OlePropertySet("ColumnWidth", dbgReg->Columns->Items[i-1]->Width/5); //задали ширину колонки
            vVarCell.OlePropertySet("RowHeight", 20); //задали высоту ячейки
            vVarCell.OlePropertyGet("Font").OlePropertySet("Bold",true); //задали утолщенный шрифт 
            vVarCell.OlePropertySet("Value", WideString(aTMP));
      }
А далее шпарим - выводим данные

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
       for(int i=iStart; i<=iRows; i++){
 
         for(int j=1; j<=iCols; j++){
 
           aTMP=dbgReg->Columns->Items[j-1]->DisplayText; //это нестандартный dbGrid, и используются PickList в колонках, поэтому беру отображаемый текст. с обычным dbGrid не прокатит
 
              if(j==1)
               if(iStart==1) aTMP=IntToStr(i);
               else aTMP=IntToStr(i-1);
 
            vVarCell=vVarSheet.OlePropertyGet("Cells").OlePropertyGet("Item", i, j);
            vBorder(vVarCell,2,1,55); //рисуем границы
            vVarCell.OlePropertySet("HorizontalAlignment",-4108);
            vVarCell.OlePropertySet("VerticalAlignment",-4108);
            vVarCell.OlePropertySet("RowHeight", 30); //задаем высоту ячейки
            vVarCell.OlePropertySet("WrapText", 1);
            vVarCell.OlePropertySet("Value", WideString(aTMP));
           RowColor=dbgReg->DataSource->DataSet->FieldByName("Color")->AsInteger; //читаю цвет для ячейки из таблицы
           if(RowColor!=0)
            vVarCell.OlePropertyGet("Interior").OlePropertySet("Color", RowColor); //задаем цвет
            vVarCell.OlePropertySet("Value", WideString(aTMP));
 
         }//step by columns
 
         DM->qMain->Next();
       }//step by selected records
Добавлено через 1 минуту

Не по теме:

Примитивно, но работает без глюков. Можно оптимизировать, но лень...

1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.08.2018, 07:22
Помогаю со студенческими работами здесь

ListView. как сделать, чтоб выбиралась вся строка, а не только ячейки в первой колонке?
или нужно ловить событие и довыбирать ячейки того же ряда в остальных столбцах &quot;вручную&quot;?

Первые листы всех XLS файлов в папке перенести в один XLS файл
То есть: 1. В предварительно заданной папке (например, &quot;c:/1&quot;) лежат несколько десятков XLS файлов. 2. В каждом файле есть один лист. ...

Пользователь вводит каталог и надо узнать в нём размер всех каталогов и подкаталогов
Всем привет!Мужики спасайте. Есть такая задачка. Пользователь вводит каталог и надо узнать в нём размер всех катологов и подкаталогов.

Из ячейки MEMO базы данных мне надо выгрузить на страницу только 100 символов, а дальше поставить '...'.
Здравствуйте! У меня такая прблема. Из ячейки MEMO базы данных мне надо выгрузить на страницу только 100 символов, а дальше поставить...

Форма вызывает другую. Вернуть управление первой только после заполнения всех полей на второй
есть 2 формы. на 1ой есть кнопка &quot;Добавить предмет&quot;. По нажатию на эту кнопку открывается 2я форма на которой присутствуют текстовые поля...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru