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

Перенос данных из DBGrid в Excel

15.11.2016, 19:57. Показов 3482. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Обыскал весь ваш форум, но так и не нашел готового решения, а времени разбираться нет, ведь мой крайний срок это завтрашнее утро .

Ближе к делу, мне нужно перенести данные из DBGrid в Excel. Использую: MS Access, ADOConnection, ADOQuery, DataSource и собственно DBGrid. Нужно чтобы при нажатии на Button открывался MS Excel со всеми данными, которые были в DBGrid. Спасибо.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.11.2016, 19:57
Ответы с готовыми решениями:

Перенос данных из DBGrid в Excel
Всем доброго времени суток. Кто может подсказать как перенести данные из DBGrid в Excel. В нете нашёл множество примеров, но почему то один...

Перенос данных из DBGrid в файл Excel
Всем привет. Приношу извинения если тема будет похожей. У меня образовалась проблема, нужно перенести данных из DBGrid ( которые...

Перенос DBGrid в Excel
получается что при переносе в exel первая заполненная ячейка DBGrid теряется, в итоге выдает ошибку при заполнении таблицы Exel, не...

10
 Аватар для Samrisbe
1365 / 732 / 67
Регистрация: 28.01.2011
Сообщений: 2,069
15.11.2016, 23:00
Вот вариант вывода из StringGrida, попробуй переделать чтоб из DBGrida (точнее из ADOQuery) в Excel записывало.
не зная какая инфа и в каком виде храниться у тебя в таблице мне сложно решить твое задание.
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
//Открыли Ексель
  Variant app, books, book, sheet, Rang, vCell, vFont;
  app = CreateOleObject("Excel.Application");
  app.OlePropertySet("Visible",true);
  books = app.OlePropertyGet("Workbooks");
  books.OleProcedure("Add");
  book = books.OlePropertyGet("Item",1);
  sheet = book.OlePropertyGet("WorkSheets",1);
 
//Сформировали и записали вариантный массив из StringGrid
 String S;
  const int bounds[4] = {0, StringGrid1->RowCount, 0, StringGrid1->ColCount};
  Variant vData = VarArrayCreate(bounds, 3, varVariant);
  for(int i = 0; i < StringGrid1->RowCount; i++)
   for(int j = 0; j < StringGrid1->ColCount; j++)
    {
      if((StringGrid1->Cells[j][i]).IsEmpty()) S = "";
      else S = StringGrid1->Cells[j][i];
      vData.PutElement(S, i, j);
    }
 
 
  Rang = sheet.OlePropertyGet("Range",sheet.OlePropertyGet("Cells",1,1),
           sheet.OlePropertyGet("Cells",StringGrid1->RowCount,StringGrid1->ColCount));
  Rang.OlePropertySet("WrapText", false);
  Rang.OlePropertySet("Value",vData);
 
//Оформляем тип и размер шрифта таблицы
   vFont = sheet.OlePropertyGet("Range",sheet.OlePropertyGet("Cells"),sheet.OlePropertyGet("Cells"));
   vFont.OlePropertyGet("Font").OlePropertySet("Name","Times New Roman");
   vFont.OlePropertyGet("Font").OlePropertySet("Size",Label1->Font->Size);
 
//Оформляем ширину столбцов
  for(int i = 0; i < StringGrid1->ColCount; i++)
   {
    Variant Clmn = sheet.OlePropertyGet("Cells", 1, i + 1).OlePropertyGet("EntireColumn");
    Clmn.OleFunction("AutoFit");
   }
 
//Оформляем выравнивание и шрифт шапки
  vCell = sheet.OlePropertyGet("Range",sheet.OlePropertyGet("Cells",1,1),sheet.OlePropertyGet("Cells",1,6));
  vCell.OlePropertySet("HorizontalAlignment",-4108);
 
 
  vCell.OlePropertyGet("Font").OlePropertySet("Bold",true);
  vCell.OlePropertyGet("Font").OlePropertySet("Size",Label1->Font->Size-1);
  vCell.OlePropertyGet("Font").OlePropertySet("Name","Times New Roman");
 
//Рисуем границы ячеек
  for(int i = 1; i <= StringGrid1->RowCount; i++)
   for(int j = 1; j <= StringGrid1->ColCount; j++)
    {
      vCell = sheet.OlePropertyGet("Cells").OlePropertyGet("Item", i, j);
      vCell.OlePropertyGet("Borders",10).OlePropertySet("LineStyle",1);
      vCell.OlePropertyGet("Borders",10).OlePropertySet("Weight",2);
      vCell.OlePropertyGet("Borders",7).OlePropertySet("LineStyle",1);
      vCell.OlePropertyGet("Borders",7).OlePropertySet("Weight",2);
      vCell.OlePropertyGet("Borders",8).OlePropertySet("LineStyle",1);
      vCell.OlePropertyGet("Borders",8).OlePropertySet("Weight",2);
      vCell.OlePropertyGet("Borders",9).OlePropertySet("LineStyle",1);
      vCell.OlePropertyGet("Borders",9).OlePropertySet("Weight",2);
    }
0
16.11.2016, 08:16

Не по теме:


Samrisbe, тем на форуме полно аналогичных,человеку просто лень искать, думаешь ему не лень будет переделать на dbgrid

0
 Аватар для Samrisbe
1365 / 732 / 67
Регистрация: 28.01.2011
Сообщений: 2,069
16.11.2016, 08:31
Цитата Сообщение от Dinkin Посмотреть сообщение
думаешь ему не лень будет переделать на dbgrid
если попросит я ему переделаю
1
 Аватар для Dinkin
783 / 556 / 136
Регистрация: 31.05.2013
Сообщений: 3,145
Записей в блоге: 3
16.11.2016, 08:43
Samrisbe, так чеж сразу то не переделали? только уж сразу с подробными комментами, что бы у препода сразу вопросов по коду не осталось....что бы ТС и про Вашу помощь и вообще про builder мог не вспоминать=))
0
 Аватар для Samrisbe
1365 / 732 / 67
Регистрация: 28.01.2011
Сообщений: 2,069
16.11.2016, 08:52
Цитата Сообщение от Dinkin Посмотреть сообщение
так чеж сразу то не переделали
Может ему уже не надо уже утро а товарищ так и не появился, а может уже переделал и в сей момент сует преподу зачетк, а второй важный момент чем больше он сам сделает тем лучше и не будет как я на форуме просить помощи
0
0 / 0 / 0
Регистрация: 15.11.2016
Сообщений: 40
16.11.2016, 09:31  [ТС]
Samrisbe, спасибо за желание помочь. БД создана в MS Access, сохранена в mdb, всего две таблицы и самые элементарные поля: Счетчик, ФИО, Дата рождения т.п.; вторая таблица Счетчик, Марка машины, цвет. Вот и все.

Попробовал перевести в BDGrid, но что-то пошло не так, но мне кажется, что я делаю что-то не так. Я просто заменил StringGrid1 на DBGrid1. Конечно же, компилятор выдал многочисленное количество ошибок.

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


[bcc32 Error] Unit2.cpp(96): E2247 'TCustomGrid::RowCount' is not accessible
Full parser context
Unit2.cpp(84): parsing: void _fastcall TForm2::Button1Click(TObject *)



C++ (Qt)
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
//Открыли Ексель
  Variant app, books, book, sheet, Rang, vCell, vFont;
  app = CreateOleObject("Excel.Application");
  app.OlePropertySet("Visible",true);
  books = app.OlePropertyGet("Workbooks");
  books.OleProcedure("Add");
  book = books.OlePropertyGet("Item",1);
  sheet = book.OlePropertyGet("WorkSheets",1);
 
//Сформировали и записали вариантный массив из StringGrid
 String S;
  const int bounds[4] = {0, DBGrid1->RowCount, 0, DBGrid1->ColCount};
  Variant vData = VarArrayCreate(bounds, 3, varVariant);
  for(int i = 0; i < DBGrid1->RowCount; i++)
   for(int j = 0; j < DBGrid1->ColCount; j++)
    {
      if((DBGrid1->Cells[j][i]).IsEmpty()) S = "";
      else S = DBGrid1->Cells[j][i];
      vData.PutElement(S, i, j);
    }
 
 
  Rang = sheet.OlePropertyGet("Range",sheet.OlePropertyGet("Cells",1,1),
           sheet.OlePropertyGet("Cells",DBGrid1->RowCount,DBGrid1->ColCount));
  Rang.OlePropertySet("WrapText", false);
  Rang.OlePropertySet("Value",vData);
 
//Оформляем тип и размер шрифта таблицы
   vFont = sheet.OlePropertyGet("Range",sheet.OlePropertyGet("Cells"),sheet.OlePropertyGet("Cells"));
   vFont.OlePropertyGet("Font").OlePropertySet("Name","Times New Roman");
   vFont.OlePropertyGet("Font").OlePropertySet("Size",Label1->Font->Size);
 
//Оформляем ширину столбцов
  for(int i = 0; i < DBGrid1->ColCount; i++)
   {
    Variant Clmn = sheet.OlePropertyGet("Cells", 1, i + 1).OlePropertyGet("EntireColumn");
    Clmn.OleFunction("AutoFit");
   }
 
//Оформляем выравнивание и шрифт шапки
  vCell = sheet.OlePropertyGet("Range",sheet.OlePropertyGet("Cells",1,1),sheet.OlePropertyGet("Cells",1,6));
  vCell.OlePropertySet("HorizontalAlignment",-4108);
 
 
  vCell.OlePropertyGet("Font").OlePropertySet("Bold",true);
  vCell.OlePropertyGet("Font").OlePropertySet("Size",Label1->Font->Size-1);
  vCell.OlePropertyGet("Font").OlePropertySet("Name","Times New Roman");
 
//Рисуем границы ячеек
  for(int i = 1; i <= DBGrid1->RowCount; i++)
   for(int j = 1; j <= DBGrid1->ColCount; j++)
    {
      vCell = sheet.OlePropertyGet("Cells").OlePropertyGet("Item", i, j);
      vCell.OlePropertyGet("Borders",10).OlePropertySet("LineStyle",1);
      vCell.OlePropertyGet("Borders",10).OlePropertySet("Weight",2);
      vCell.OlePropertyGet("Borders",7).OlePropertySet("LineStyle",1);
      vCell.OlePropertyGet("Borders",7).OlePropertySet("Weight",2);
      vCell.OlePropertyGet("Borders",8).OlePropertySet("LineStyle",1);
      vCell.OlePropertyGet("Borders",8).OlePropertySet("Weight",2);
      vCell.OlePropertyGet("Borders",9).OlePropertySet("LineStyle",1);
      vCell.OlePropertyGet("Borders",9).OlePropertySet("Weight",2);
    }
0
 Аватар для Samrisbe
1365 / 732 / 67
Регистрация: 28.01.2011
Сообщений: 2,069
16.11.2016, 11:03
Цитата Сообщение от innomirov Посмотреть сообщение
Я просто заменил StringGrid1 на DBGrid1
Это не правильно. DBGrid1 отображает содержимое ADOQuery. А работа с ним чемто схожа с работой со StringList
C++
1
2
3
4
5
//считываем с базы данные
 //открыть один из найденных адресов из таблицы
  Form1->ADOQuery1->SQL->Text="SELECT Счетчик, ФИО, Дата рождения FROM Таблица WHERE АдрКод=(SELECT АдрКод FROM Таблица WHERE ФИО='"+Edit1->Text+"')";
  Form1->ADOQuery1->Open();
  Form1->ADOQuery1->Active=true
далее перебираем в цикле полученные данные:
C++
1
2
3
4
5
6
  for(int i=0;i<ADOQuery1->RecordCount;i++)
    {
    String Schitchik = ADOQuery1->Fields->Fields[0]->AsString;
    String Fio = ADOQuery1->Fields->Fields[1]->AsString;
    String DataRojd = ADOQuery1->Fields->Fields[2]->AsString;
    ADOQuery1->Next();}
И дальше в таблицу Excel заноси:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
//Открыли Ексель
  Variant app, books, book, sheet, Rang, vCell, vFont;
  app = CreateOleObject("Excel.Application");
  app.OlePropertySet("Visible",true);
  books = app.OlePropertyGet("Workbooks");
  books.OleProcedure("Add");
  book = books.OlePropertyGet("Item",1);
  sheet = book.OlePropertyGet("WorkSheets",1);
 
//Сформировали и записали вариантный массив из DBGrid
 String S;
  const int bounds[4] = {0, DBGrid1->RowCount, 0, DBGrid1->ColCount};
  Variant vData = VarArrayCreate(bounds, 3, varVariant);
  for(int i=0;i<ADOQuery1->RecordCount;i++)
     {
      // здесь надо подумать позже напишу
      S = ADOQuery1->Fields->Fields[0]->AsString;
    ADOQuery1->Next();}
Попробуй пока сам, вечером посмотрим как решить твою задачу.
0
0 / 0 / 0
Регистрация: 15.11.2016
Сообщений: 40
16.11.2016, 20:11  [ТС]
Кликните здесь для просмотра всего текста


[bcc32 Error] Unit2.cpp(91): E2379 Statement missing ;
Full parser context
Unit2.cpp(84): parsing: void _fastcall TForm2::Button1Click(TObject *)
[bcc32 Error] Unit2.cpp(91): E2451 Undefined symbol 'i'
Full parser context
Unit2.cpp(84): parsing: void _fastcall TForm2::Button1Click(TObject *)
[bcc32 Error] Unit2.cpp(100): E2451 Undefined symbol 'app'
Full parser context
Unit2.cpp(84): parsing: void _fastcall TForm2::Button1Click(TObject *)
[bcc32 Error] Unit2.cpp(102): E2451 Undefined symbol 'books'
Full parser context
Unit2.cpp(84): parsing: void _fastcall TForm2::Button1Click(TObject *)
[bcc32 Error] Unit2.cpp(104): E2451 Undefined symbol 'book'
Full parser context
Unit2.cpp(84): parsing: void _fastcall TForm2::Button1Click(TObject *)
[bcc32 Error] Unit2.cpp(105): E2451 Undefined symbol 'sheet'
Full parser context
Unit2.cpp(84): parsing: void _fastcall TForm2::Button1Click(TObject *)
[bcc32 Error] Unit2.cpp(109): E2040 Declaration terminated incorrectly
Full parser context
Unit2.cpp(84): parsing: void _fastcall TForm2::Button1Click(TObject *)
[bcc32 Error] Unit2.cpp(109): E2139 Declaration missing ;
Full parser context
Unit2.cpp(84): parsing: void _fastcall TForm2::Button1Click(TObject *)
[bcc32 Warning] Unit2.cpp(109): W8004 'bounds' is assigned a value that is never used
Full parser context
Unit2.cpp(84): parsing: void _fastcall TForm2::Button1Click(TObject *)
[bcc32 Error] Unit2.cpp(109): E2190 Unexpected }
[bcc32 Error] Unit2.cpp(110): E2451 Undefined symbol 'bounds'
[bcc32 Error] Unit2.cpp(111): E2040 Declaration terminated incorrectly
[bcc32 Error] Unit2.cpp(111): E2141 Declaration syntax error
[bcc32 Error] Unit2.cpp(111): E2238 Multiple declaration for 'i'
[bcc32 Error] Unit2.cpp(111): E2344 Earlier declaration of 'i'
[bcc32 Error] Unit2.cpp(116): E2190 Unexpected }



Довольно-таки странно) Что это может быть?
0
 Аватар для Samrisbe
1365 / 732 / 67
Регистрация: 28.01.2011
Сообщений: 2,069
17.11.2016, 07:58
Этот вариант проще будет и он готов и самое главное автор D1973 компетентнее чем я.
Во вложении исходник.
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
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include <DateUtils.hpp>
#include <ComObj.hpp>
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
 
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
}
//---------------------------------------------------------------------------
String __fastcall TForm1::LZ(int Prm)
{
  if(Prm < 10) return "0" + IntToStr(Prm);
  else return IntToStr(Prm);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
  Q1->Close();
  Q1->ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + ExtractFilePath(ParamStr(0)) + "base.mdb;Persist Security Info=False";
  ComboBox1->Items->Clear();
  for (int i = 0; i < 12; ComboBox1->Items->Add(FormatSettings.LongMonthNames[i]), i++);
  ComboBox1->ItemIndex = MonthOf(Now()) - 1;
  UpDown1->Position = YearOf(Now());
  nQueryClick(nAll);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::btnQueryClick(TObject *Sender)
{
  String _sql;
  if(iMenu == 1)
   {
     _sql = "SELECT * FROM Tab1";
     Header = "Полный отчет";
     fOut = "Full_report.xls";
   }
  else
   {
     String D, M, Y;
     D = LZ(DaysInAMonth(UpDown1->Position,ComboBox1->ItemIndex + 1));
     M = LZ(ComboBox1->ItemIndex + 1);
     Y = Edit1->Text;
     String bDate = String().sprintf(L"%s/01/%s", M, Y);
     String eDate = String().sprintf(L"%s/%s/%s", M, D, Y);
     _sql = "SELECT * FROM Tab1 where Dt between #" + bDate + "# and #" + eDate + "#";
     Header = String().sprintf(L"Отчет за период с 01.%s.%s по %s.%s.%s", M, Y, D, M, Y);
     fOut = String().sprintf(L"report_%s_%s.xls", ComboBox1->Text, Y);
   }
  Q1->Close();
  Q1->SQL->Clear();
  Q1->SQL->Add(_sql);
  Q1->Open();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::btnExcelClick(TObject *Sender)
{
  String fTPL = ExtractFilePath(Application->ExeName) + "template.xls";
  String fXLS = ExtractFilePath(Application->ExeName) + fOut;
  Variant app, books, book, sheet, Rang, vCell;
  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(Header));
 
  const int bounds[4] = {0, Q1->RecordCount, 0, Q1->FieldCount};
  Variant vData = VarArrayCreate(bounds, 3, varVariant);
  Q1->First();
  for(int row = 0; row < Q1->RecordCount; ++row)
   {
     for(int column = 0; column < Q1->FieldCount; ++column)
        vData.PutElement(Q1->Fields->Fields[column]->AsVariant, row, column);
     Q1->Next();
   }
  Rang = sheet.OlePropertyGet("Range",sheet.OlePropertyGet("Cells",4,1),
         sheet.OlePropertyGet("Cells", Q1->RecordCount + 3, Q1->FieldCount));
  Rang.OlePropertySet("Value",vData);
  app.OlePropertySet("DisplayAlerts",false);
  book.OleProcedure("SaveAs",WideString(fXLS));
  app.OleProcedure("Quit");
  ShowMessage("Готово!\nОтчет записан в файл " + fXLS);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::nQueryClick(TObject *Sender)
{
  iMenu = ((TMenuItem *)Sender)->Tag;
  ((TMenuItem *)Sender)->Checked = true;
  btnQuery->Caption = ((TMenuItem *)Sender)->Caption;
  btnQueryClick(Sender);
}
//---------------------------------------------------------------------------
Вложения
Тип файла: rar Из DBGrid в Excel.rar (1.32 Мб, 59 просмотров)
0
0 / 0 / 0
Регистрация: 15.11.2016
Сообщений: 40
26.11.2016, 17:07  [ТС]
Увы, но не помогло
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.11.2016, 17:07
Помогаю со студенческими работами здесь

Перенос данных из DBGrid в DBGrid
Есть два DBGrid. Данные в них получаем из Excel. Таблицы разные. Но есть одинаково названные колонки: &quot;Код&quot;, &quot;Наименование...

Из Excel в DBGrid. Подключиться к рабочей книге MS Excel, как к базе данных.
Доброго времени суток! У меня возникли проблемы при выводе таблицы с Excel на DBGrid, а именно: после запроса вывести весь лист в DBGrid...

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

Перенос данных из txt в DBGrid
Здравствуйте. Есть текстовый файл. Необходимо данные из этого текстового файла перенести в DBGrid. Разделителем в текстовом файле выступает...

Перенос данных из DBGrid в Word
Добрый день! Подскажите, есть ли какой способ перенести таблицу целиком в ворд? Если есть подскажите.


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Философия технологии
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(), которая. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru