Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C++ Builder AutoFit Как установить автоматическую ширину для столбцов? Я так но не получается Variant App,Sh,Rang,Cell1, Cell2; App=CreateOleObject("Excel.Application"); App.OlePropertyGet("WorkBooks").OleProcedure("add"); Sh=App.OlePropertyGet("WorkSheets",1); App.OlePropertySet("Visible",true); Cell1 = Sh.OlePropertyGet("Cells",1,1); Cell2 = Sh.OlePropertyGet("Cells",row+20,width+1); Rang =... https://www.cyberforum.ru/ cpp-builder/ thread282970.html C++ Builder Открытие закрытие Excel
При клике по кнопке должен открыться Excel void __fastcall Tsinh_tab::P1Click(TObject *Sender) { TExcelApplication *ExcelApplication1=new TExcelApplication(Application); TExcelWorksheet *ExcelWorksheet1=new TExcelWorksheet(Application); TExcelWorkbook *ExcelWorkbook1=new TExcelWorkbook(Application); ExcelApplication1->OnWorkbookDeactivate=ExAppWorkbookDeactivate; ...
C++ Builder заморочки функций fseek и fwrite Здравствуйте. Цель - перезаписать последний байт файла на любой другой (к примеру 0х55). В дальнейшем - другие байты. Делаю так: unsigned long x; GetFileSize(myFile, &x); x = x - 1; buffer = 0x55; https://www.cyberforum.ru/ cpp-builder/ thread282880.html C++ Builder Объясните начинающей программистке), что не так в моем коде Написать программу, которая в цикле введет 5 значений и посчитает произведение чисел, которые делятся без остатка на 3 и не делятся на 5. Пытаюсь программировать на С++ Builder 6. *при решении использовать операторы цикла; *при решении не использовать операторы цикла. с операторами цикла, но неправильно считает т.е видит только первую цифру и не выполняет условие if #include <iostream.h>... https://www.cyberforum.ru/ cpp-builder/ thread282768.html
Не работает DB Navigator C++ Builder
здраствуйте. помогите пожалуйста активизировать компонент DB Navigator. когда запускаю програму кнопки старт и стоп работают, а этот компонент нет, на него нельзя щелкнуть. искал на различных форумах, никакой метод не подошел. вот код программы: //--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include "Unit1.h"...
C++ Builder Программка для подбирания паролей https://www.cyberforum.ru/ cpp-builder/ thread282747.html
Подскажите плиз как сделать програмку для подбирания паролей c на с++builder???
C++ Builder удалить пробелы { int i,s; strcpy(str, Edit1->Text.c_str()); for(i=0;i<strlen(str);i++) {if (str==' ') str=str; ;} Memo1->Lines->Add(str); код это удаляет пробелы, ду дублиркя след. символ...пример к о т- коотт?помогите.. https://www.cyberforum.ru/ cpp-builder/ thread282716.html C++ Builder Приведение типов!
Вот есть код! Я на 70% уверен что ошибка в соответствии типов! потому что при разных значениях sizeof(речь идет от разных типах), я получаю разные значение Length и buf! Помогите пожалуйста! HCRYPTPROV hProv=0; HCRYPTKEY hKey=0; //--ïîäêëþ÷åíèå ê êðèïòîïðîâàéäåðó if(CryptAcquireContext(&hProv,NULL, NULL,PROV_RSA_FULL,0)==0) { Memo1->Lines->Add("Íå...
C++ Builder Поменять местами соседние слова текста Здравствуйте! Я учусь программировать на С++Builder и прошу судить не строго. Не могу решить следующую задачку: "Нужно поменять 2 соседних слова в тексте." У меня тут была идея, но компилятор ругается на мою программу. Может кто откорректирует ее или предложит свой вариант решения. (Входные данные Memo1, выходные данные Memo2) void __fastcall TForm1::ArunExecute(TObject *Sender) {... https://www.cyberforum.ru/ cpp-builder/ thread282698.html C++ Builder Работа с принтером печать (win 32 api функция CreateFile) У меня на форме есть RichEdit1 в который я пишу текст. Так же есть установленный принтер. Пытаюсь вывести на печать из RichEdit1. Если печатаю в обычный текстовый файл, то все работает нормально, если пытаюсь вывести на принтер функция CreateFile выполняется с ошибкой. Функция GetProfileString выводит следующее название порта - Ne01:. Вот код(подскажите как определить порт принтера, чтобы потом... https://www.cyberforum.ru/ cpp-builder/ thread282664.html
C++ Builder Передача массива из Form1 в Form2
в первой форме вычисляю значения массива a по кнопке открываю вторую форму и надо построить трехмерный график опираяясь на значения в массиве так вот как сделать так что бы Form2 видела и значала значения массива a можете пошагово описать что делать потому что читал FAQ на этом сайте толком не понял
C++ Builder Чтение/запись файа Здравствуйте! пробема следующая: сохраняю массив структур в файл, загружаю - загружается непонятно что. struct TagDirection{ char category; int lastuses; bool isfixed; char name; }; void ReadTag(String tagfname, TagDirection* SourceTag ){ https://www.cyberforum.ru/ cpp-builder/ thread2826
8 / 8 / 2
Регистрация: 30.01.2015
Сообщений: 157
26.07.2016, 15:32 0

TStringGrid (DrawCell) - C++ Builder - Ответ 9402605

26.07.2016, 15:32. Показов 6346. Ответов 7
Метки (Все метки)

Ответ

Перечитал я ту тему всю. Но сейчас опишу как делал я и мою проблему. Я загружаю в StringGrid данные из Excel, потом по определенным столбцам проверяю ячейки на пустоту и окрашиваю их в желтый цвет - их посчитал, проблем нет. Крашу ячейку в красный цвет у кого проблемы с датой рождения. Вот как бы их посчитать, чет вообще запутался.

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
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
void __fastcall TFProverka::SG1DrawCell(TObject *Sender, int ACol,
      int ARow, TRect &Rect, TGridDrawState State)
{
 
//------------------------------------------------------------------------------
//           Предупреждение - все пустые Желтым цветом
//           кроме, 
//------------------------------------------------------------------------------
 //Выделяю в желтый цвет все пустые ячейки и CBWarning->Checked
 if ( SG1->Cells[ACol][ARow]=="" && indi && CBWarning->Checked
      && ACol!=7 && ACol!=16 && ACol!=17 )
 {
  TRect recc = Rect;
  recc.left  = Rect.left+2;
  recc.top   = Rect.top+2;
  SG1->Canvas->Brush->Color = clYellow;
  SG1->Canvas->FillRect(Rect);
  
  DrawText(SG1->Canvas->Handle, SG1->Cells[ACol][ARow].c_str(),
  SG1->Cells[ACol][ARow].Length(), &recc, DT_SINGLELINE);
 }
 
 
//------------------------------------------------------------------------------
//                       Дата рождения больше текущей
//------------------------------------------------------------------------------
   //Если Дата рождения не пустая и indi=true и стоит галочка записи с ошибками,
   if ( SG1->Cells[7][ARow]!="" && indi && CBError->Checked )
   {
      AnsiString dateBirth = SG1->Cells[ACol][ARow];
      TDateTime dt;
 
      //Если Дата рождения больше текущей
      if ( TryStrToDate(dateBirth, dt)
           && Dateutils::CompareDate(Today(), dt) != GreaterThanValue)
      {
        TRect recc = Rect;
        recc.left  = Rect.left+2;
        recc.top   = Rect.top+2;
        SG1->Canvas->Brush->Color = clRed;
        SG1->Canvas->FillRect(Rect);
 
        DrawText(SG1->Canvas->Handle, SG1->Cells[ACol][ARow].c_str(),
                 SG1->Cells[ACol][ARow].Length(), &recc, DT_SINGLELINE);
 
        //Делаю неактивной кнопку Сохранить XML
        BSaveXML->Enabled = false;
      }
   }
 
//------------------------------------------------------------------------------
//                       Дата рождения пустая
//------------------------------------------------------------------------------
   //Если Дата рождения пустая и indi=true и стоит галочка записи с ошибками,
   if (ACol==7 && SG1->Cells[7][ARow]=="" && indi && CBError->Checked )
   {
     TRect recc = Rect;
     recc.left  = Rect.left+2;
     recc.top   = Rect.top+2;
     SG1->Canvas->Brush->Color = clRed;
     SG1->Canvas->FillRect(Rect);
 
     DrawText(SG1->Canvas->Handle, SG1->Cells[ACol][ARow].c_str(),
     SG1->Cells[ACol][ARow].Length(), &recc, DT_SINGLELINE);
 
     BSaveXML->Enabled = false;
   }
 
 
//------------------------------------------------------------------------------
//                       Ошибка Формата даты
//------------------------------------------------------------------------------
   //Если Дата рождения не пустая и indi=true и стоит галочка записи с ошибками,
   if ( ACol==7 && ARow>1 && SG1->Cells[7][ARow]!="" && indi && CBError->Checked )
   {
      AnsiString dateBirth = SG1->Cells[ACol][ARow];
      TDateTime dt;
 
        //Если ошибка Формата даты
        if ( !TryStrToDate(dateBirth, dt) )
        {
         TRect recc = Rect;
         recc.left  = Rect.left+2;
         recc.top   = Rect.top+2;
         SG1->Canvas->Brush->Color = clRed;
         SG1->Canvas->FillRect(Rect);
 
         DrawText(SG1->Canvas->Handle, SG1->Cells[ACol][ARow].c_str(),
         SG1->Cells[ACol][ARow].Length(), &recc, DT_SINGLELINE);
 
         BSaveXML->Enabled = false;
        }
 
   }
 
 
//------------------------------------------------------------------------------
//                         Дата рождения больше 100 лет
//------------------------------------------------------------------------------
   //Если Дата рождения не пустая и indi=true и стоит галочка записи с ошибками,
   if ( ACol==7 && SG1->Cells[7][ARow]!="" && indi && CBError->Checked )
   {
      AnsiString dateBirth = SG1->Cells[ACol][ARow];
      TDateTime dt;
 
      //Если дата больше 100 лет
      if ( TryStrToDate(dateBirth, dt)
           && Dateutils::CompareDate(Today(), dt) == GreaterThanValue
           && YearsBetween(Today(), dt) > 100 )
      {
        TRect recc = Rect;
        recc.left  = Rect.left+2;
        recc.top   = Rect.top+2;
        SG1->Canvas->Brush->Color = clRed;
        SG1->Canvas->FillRect(Rect);
 
        DrawText(SG1->Canvas->Handle, SG1->Cells[ACol][ARow].c_str(),
        SG1->Cells[ACol][ARow].Length(), &recc, DT_SINGLELINE);
 
        BSaveXML->Enabled = false;
      }
   }


Вернуться к обсуждению:
TStringGrid (DrawCell) C++ Builder
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.07.2016, 15:32
Готовые ответы и решения:

DrawCell у StringGrid
Всем привет. Ребят, помогите пожалуйста.ОЧЕНЬ СРОЧНО! Есть код на Delphi, а надо переделать в С++....

Сортировка TStringGrid
Приветствую всех! Уже достаточно долго сижу и пытаюсь разобраться с сортировкой в TStringGrid....

Вопросы по TStringGrid
Собственно вытащу свой вопрос в отдельную тему, чтобы не флудить в другой Добавлено...

Сложности с TStringGriD
В картинке в принципе отображено, что нужно в общем. Уточню, пользователю нужно выделять данные в...

7
26.07.2016, 15:32
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.07.2016, 15:32
Помогаю со студенческими работами здесь

TStringGrid и DLL
Вот тут хочу сделать отдельный модуль который заполняет таблицу кучей разных способов , этот модуль...

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

Умножение столбцов TStringGrid
Доброго времени суток. Помогите с заданием. Нужно вывести произведение 2 и 3 столбца в Edit,...

Даты в строке TStringGrid'a
Бобрый вечер. Есть TStringGrid. Есть две даты. Подсчитано кл-во дней между ними. Нужно в таблице...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru