Ошибка не является целым числом

I have researched my issue all over StackOverflow and multi-google links, and I am still confused. I figured the best thing for me is ask…

Im creating a simple command line calculator. Here is my code so far:

const std::string Calculator::SIN("sin");  
const std::string Calculator::COS("cos");  
const std::string Calculator::TAN("tan");  
const std::string Calculator::LOG( "log" );  
const std::string Calculator::LOG10( "log10" );

void Calculator::set_command( std::string cmd ) {

    for(unsigned i = 0; i < cmd.length(); i++)
    {
    cmd[i] = tolower(cmd[i]);
    }

    command = cmd;
}

bool Calculator::is_legal_command() const {

    switch(command)
    {
    case TAN:
    case SIN:
    case COS:
    case LOG:
    case LOG10:
        return true;
        break;
    default:
        return false;
        break;
    }

}

the error i get is:

Calculator.cpp: In member function 'bool Calculator::is_trig_command() const':  
Calculator.cpp: error: switch quantity not an integer  
Calculator.cpp: error: 'Calculator::TAN' cannot appear in a constant-expression  
Calculator.cpp: error: 'Calculator::SIN' cannot appear in a constant-expression  
Calculator.cpp: error: 'Calculator::COS' cannot appear in a constant-expression  

The mighty internet, it says strings are allowed to be used in switch statements.

Thanks everyone, I appreciate your help.

moinudin's user avatar

moinudin

133k45 gold badges189 silver badges215 bronze badges

asked Dec 26, 2010 at 23:21

Ken's user avatar

4

In switch, the expression must be of «an integral type or of a class type for which there is an unambiguous conversion to integral type» (quoting VS2008 docs).

A string class doesn’t have «unambiguous conversion to integral type», like a char does.

As a work-around:

  1. Create a map<string, int> and switch on the value of the map: switch(command_map[command])
    `

  2. Do a set of if/else instead of switch. Much more annoying and hard to read, so I’d recommend the map route.

As an aside, an even better solution for really complicated logic like that is to improve the mapping solution to get rid of switch completely and instead go with a function lookup: std::map<std::string, functionPointerType>. It may not be needed for your specific case, but is MUCH faster for complicated very long look-up logic.

answered Dec 26, 2010 at 23:27

DVK's user avatar

DVKDVK

127k32 gold badges212 silver badges325 bronze badges

1

As others and the compiler commented, strings are not allowed with switch. I would just use if

bool Calculator::is_legal_command() const {
    if(command == TAN) return true;
    if(command == SIN) return true;
    if(command == COS) return true;
    if(command == LOG) return true;
    if(command == LOG10) return true;
    return false;
}

I don’t think that’s any more complicated, and it’s about as fast as it could get. You could also use my switch macro, making it look like

bool Calculator::is_legal_command() const {
    sswitch(command)
    {
    scase (TAN):
    scase (SIN):
    scase (COS):
    scase (LOG):
    scase (LOG10):
        return true;

    sdefault():
        return false;
    }
}

(having break after a return is dead code, and so should be avoided).

answered Dec 27, 2010 at 0:03

Johannes Schaub - litb's user avatar

Strings cannot be used in switch statements in C++. You’ll need to turn this into if/else if, like this:

if (command == "tan")
{
    // ...
}
else if (command == "cos")
{
    // ...
}
// ...

answered Dec 26, 2010 at 23:25

SoapBox's user avatar

SoapBoxSoapBox

20.4k3 gold badges51 silver badges87 bronze badges

1

Not sure which mighty Internet you’ve been reading, but C++ doesn’t allow strings in switch statements. (C# does, though.)

You need to convert your switch statement to a chain of ifelse ifelse statements that test equality.

answered Dec 26, 2010 at 23:26

Adam Maras's user avatar

Adam MarasAdam Maras

26.1k6 gold badges65 silver badges91 bronze badges

1

Rather than a switch.

I would use a command pattern. Then use a std::map to map the function name to the command object.

Something like this:

#include <math.h>
#include <map>
#include <string>
#include <iostream>

class Function
{
    public:
        // Easy public API that just uses the normal function call symantics
        double   operator()(double value)   { return this->doWork(value);}
        virtual ~Function()     {}
    private:
        // Virtual function where the work is done.
        virtual double doWork(double value) = 0;
};

// A sin/cos function
class Sin: public Function      { virtual double doWork(double value)     { return sin(value); } };
class Cos: public Function      { virtual double doWork(double value)     { return cos(value); } };

// A class that holds all the functions.
// A function name is mapped to a function object.
class FuncMap
{
    public:
        FuncMap()
        {
            // Constructor sets up the map
            functions["sin"]    = &sinFunc;
            functions["cos"]    = &cosFunc;
        }
        Function*   getFunction(std::string command) const
        { 
            // Default result not found.
            Function* result    = NULL;
            std::map<std::string, Function*>::const_iterator    find;

            // Look in the map to see if we find the value.
            // If it exists then find will not point at end()
            if ((find = functions.find(command)) != functions.end())
            {
                // Get the pointer to the function
                result  = find->second;
            }
            return result;
        }
    private:
    Sin     sinFunc;
    Cos     cosFunc;

    std::map<std::string, Function*>    functions;
};

// Declaring it globally for ease of use.
FuncMap     functions;


int main()
{
    // SImple example of usage.
    Function*   func    = functions.getFunction("sin");
    if (func == NULL)
    {
        std::cout << "No Function sin()n";
        exit(1);
    }
    std::cout << "Result: " << (*func)(12.34) << "n";
}

answered Dec 27, 2010 at 0:37

Martin York's user avatar

Martin YorkMartin York

256k85 gold badges333 silver badges558 bronze badges

The compiler error tells you everything you need to know. Only integral types may be compared in switch statements.

I’m not sure which «mighty internet» told you otherwise, but it was mighty wrong.

answered Jan 2, 2011 at 22:53

Lightness Races in Orbit's user avatar

Strings cannot be used as constants in switch statements in c++. You can either use a map, a series of if’s or you can move from representing your commands as strings to an enum. Parse from string to enum once, then use a switch like you do now. Note that your string parsing may require the same mechanism (map/if’s), but depending on your use case using one approach over the other may improve readability. I’m not going to say anything on which approach is more readable.

answered Dec 26, 2010 at 23:26

villintehaspam's user avatar

villintehaspamvillintehaspam

8,4906 gold badges45 silver badges76 bronze badges

Я провожу некоторые симуляции с Mathematica с помощью NDSolve, и мне нужно представить эффект температуры. Я определяю таблицу случайных чисел, а затем делаю из нее функцию следующим образом:

 randomtablex = 
      Table[RandomVariate[NormalDistribution[]], {i, 1, 
        IntegerPart[3 tspacer/deltats] + 1}];
    randomtabley = 
      Table[RandomVariate[NormalDistribution[]], {i, 1, 
        IntegerPart[3 tspacer/deltats] + 1}];
    randomtablez = 
      Table[RandomVariate[NormalDistribution[]], {i, 1, 
        IntegerPart[3 tspacer/deltats] + 1}];
    Bterp[t_] := 
      {randomtablex[[IntegerPart[t/deltats] + 1]], 
        randomtabley[[IntegerPart[t/deltats] + 1]], 
        randomtablez[[IntegerPart[t/deltats] + 1]]};

куда 3tspacer это время интеграции и deltats время изменения теплового поля. Симуляция работает нормально и результаты верны, но каждый раз я получаю это сообщение об ошибке:

Part:: pspec: «Спецификация детали 1+IntegerPart[1000000000000 t] не является ни целым числом, ни списком целых чисел».

Как я уже сказал, это на самом деле не проблема, но меня беспокоит, что он продолжает появляться… Есть ли способ узнать, откуда он взялся, или я должен просто выключить его?

заранее спасибо

У меня возникла проблема при попытке скомпилировать код C++. Поскольку я все еще изучаю C++, я все еще не понимаю большинство расширенных команд. Я пытался создать программу, которая запрашивает имя, фамилию, возраст и пол пользователя и отображает его пользователю. Это мой исходный код:

#include <iostream>

int main ()
{
    char firstName[20];
    char lastName[20];
    char age[6];
    char gender[3];

    int i = 0;

    std::cout << "Please enter your full name: ";
    std::cin.getline (firstName, 19, ' ');
    std::cin.getline (lastName, 19);

    std::cout << "Enter your age: ";
    std::cin.getline (age, 5);

    while (i != 1)
    {
        std::cout << "Enter your gender (m/f)";
        std::cin.getline (gender, 2);

        switch (gender)
        {
            case 'm':
                std::cout << "nHello Mr. ";
                i++;
                break;

            case 'f':
                std::cout << "nHello Mrs. ";
                i++;
                break;

            default:
                std::cout << "nThat is not even a gender!n";
                break;
        }
    }

    std::cout << lastName << "!n";
    std::cout << "You are " << age << " years old.";

    return 0;
}

Когда я попытался скомпилировать это, мой компилятор выдает следующую ошибку:

NameAgeQ.cpp: In function 'int main()':
NameAgeQ.cpp:24:15: error: switch quantity not an integer

Раньше я пытался кодировать другие программы с операторами «переключатель», и они могут обрабатывать символы. Однако в предыдущих программах я объявлял «пол» как «пол char»; вместо ‘char пол [];’.

Почему в данном конкретном случае оператор switch не работает? Он не поддерживает строку массива?

Как решить «ошибку $» не является целочисленным целым значением

Теги:  разнообразный  Компиляция

Как показано ниже:


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

Шаг решения:

один,

Сохраните этот файл в следующем пути (Обратите внимание, являетесь ли вы CMX16 или другими местами):
Где вы передаете инструкции, будет другой путь.

два,

Как показано на рисунке ниже, предложение добавлено перед началом:

org    0


Можно загрузить и запустить:

Заканчивать.


Интеллектуальная рекомендация

Знание сценария оболочки (2)

-Ну судить, не являются ли строки неэмпатными -Z определить, пустые ли строки = Определить, является ли содержимое строки согласованным Пересечение = Определить, не является ли содержимое строки непос…

Node.js Пакет и инструмент управления пакетом NPM

Node.js Пакет и инструмент управления пакетом NPM 1.node.js. 1.1 В пакете входит следующее: Package.json: Опишите пакет Хранить двоичные файлы в подкаталоге Bin Хранить файлы JavaScript в подкаталоге …

Вам также может понравиться

Режим дизайна — семь принципов

Режим дизайна — семь принципов (1) Принцип открытия и закрытия — (является основой всех принципов) Определение: программное обеспечение, такое как классы, модули и функции, должныДля расширенного ра…

Фазли

2 / 1 / 0

Регистрация: 07.10.2018

Сообщений: 172

1

07.10.2018, 14:34. Показов 5592. Ответов 23

Метки нет (Все метки)


Студворк — интернет-сервис помощи студентам

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
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
int n,m,**ary;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::FormCreate(TObject *Sender)
{
int n=3;int m=3;
StringGrid1->RowCount=n+1;
StringGrid1->ColCount=m+1;
  for (int i=1; i<=n; i++){
    StringGrid1->Cells[i][0]="m="+IntToStr(i);
    StringGrid1->Cells[0][i]="n="+IntToStr(i);
    }        
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int imax=0,jmax=0,i,j,n=3,m=3;
 int** ary = new int*[n];
  for(i=0; i<n; i++) {
   ary[i] = new int[m];
   }
 
for(i=0; i<n; i++)
 for(j=0; j<m; j++)
  ary[i][j]=StrToInt(StringGrid1->Cells[j+1][i+1]);
 
for(i=0; i<n; i++)
 for(j=0; j<m; j++)
  if (ary[i][j]>ary[imax][jmax]){
   imax=i;
   jmax=j;
   }
 
for (i=0; i<n; i++)
  for (j=jmax; j<m-1; j++) ary[i][j]=ary[i][j+1];
   m--;
for (j=0; j<m; j++)
  for (i=imax; i<n-1; i++) ary[i][j]=ary[i+1][j];
   n--;
 
for(int i=0; i<StringGrid1->ColCount; i++)
  for(int j=0; j<StringGrid1->RowCount; j++)
   StringGrid1->Cells[j+1][i+1] = "";
 
for(int i=0; i<n; i++)
  for(int j=0; j<m; j++)
   StringGrid1->Cells[j+1][i+1] = IntToStr(ary[i][j]);
 
for (int i=0; i<n; i++)
  delete []ary[i];
    delete []ary;        
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Edit1Change(TObject *Sender)
{
if (Edit1->Text=="") return;
  n=StrToInt(Edit1->Text);
  StringGrid1->RowCount=n;        
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Edit2Change(TObject *Sender)
{
if (Edit2->Text=="") return;
  m=StrToInt(Edit2->Text);
  StringGrid1->ColCount=m;
}
//---------------------------------------------------------------------------

Миниатюры

Ошибка -is not a valid integer value (не является допустимым целым значением), не понимаю в чем ошибка
 



0



Скиф 90

12 / 10 / 5

Регистрация: 07.10.2018

Сообщений: 40

07.10.2018, 15:09

2

Лучший ответ Сообщение было отмечено nick42 как решение

Решение

Цитата
Сообщение от Фазли
Посмотреть сообщение

не понимаю в чем ошибка

У вас в 41-й строке попытка получить значение для массива, преобразуя строку из ячейки таблицы в число. А таблица, как видим, пустая. Можно, хотя и не вполне корректно, заменить эту строку на такую-

C++
1
ary[i][j]= StringGrid1->Cells[j+1][i+1].ToIntDef(0);

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



0



2 / 1 / 0

Регистрация: 07.10.2018

Сообщений: 172

07.10.2018, 15:26

 [ТС]

3

таблица заполняется не вся, а только 2 на 2, нулями!

Добавлено через 12 минут
и еще вопросик: где лучше показать результат этого задания?
Задание: Из матрицы размером n получить матрицу размером n-1 путем удаления строки и столбца, на пересечении которых расположен элемент с наибольшим по модулю значением.



0



12 / 10 / 5

Регистрация: 07.10.2018

Сообщений: 40

07.10.2018, 15:30

4

Цитата
Сообщение от Фазли
Посмотреть сообщение

где лучше показать результат этого задания?

Я думаю, для наглядности лучше использовать две таблицы; результат можно сразу сравнить с исходными данными.



0



2 / 1 / 0

Регистрация: 07.10.2018

Сообщений: 172

07.10.2018, 15:35

 [ТС]

5

так таблицу нужно заполнить всю и желательно разными числами как это сделать?



0



Модератор

8500 / 5659 / 2291

Регистрация: 21.01.2014

Сообщений: 24,267

Записей в блоге: 3

07.10.2018, 15:35

6

Цитата
Сообщение от Фазли
Посмотреть сообщение

таблица заполняется не вся, а только 2 на 2, нулями!

Дык она, таблица. то есть, вообще нигде не заполняется!!! А если ее пользователь должен руками заполнять — то тогда сами, будьте любезны, проверять правильность заполнения… Учтите, что пользователь может заполнить не все ячейки — отсюда и получите вот такую ошибку…



0



12 / 10 / 5

Регистрация: 07.10.2018

Сообщений: 40

07.10.2018, 15:43

7

Цитата
Сообщение от Фазли
Посмотреть сообщение

таблицу нужно заполнить всю и желательно разными числами как это сделать?

Прежде всего в инспекторе объектов в опциях StringGrid goEditing перевести из false в true, чтоб можно было вводить данные. И на событие KeyPress поставить свою фильтрацию (чтоб только цифры позволялись) было бы желательно.

Добавлено через 4 минуты
П.С. это для «вручную». Иначе — в цикле рандомными значениями.



0



2 / 1 / 0

Регистрация: 07.10.2018

Сообщений: 172

07.10.2018, 15:44

 [ТС]

8

а где события KeyPress?



0



12 / 10 / 5

Регистрация: 07.10.2018

Сообщений: 40

07.10.2018, 15:48

9

В Инспекторе объектов OnKeyPress — двойной клик и появится заготовка.

Не по теме:

Дорогие модераторы, меня задолбала неубираемая панель «Узнать стоимость написания работы» и т.д. Это я вирус подцепил, или такой «ненавязчивый сервис» на вашем форуме?



0



2 / 1 / 0

Регистрация: 07.10.2018

Сообщений: 172

07.10.2018, 15:50

 [ТС]

10

в ней что нибудь надо заполнять?



0



Скиф 90

12 / 10 / 5

Регистрация: 07.10.2018

Сообщений: 40

07.10.2018, 15:54

11

(«в ней что нибудь надо заполнять?..») — думаю, вы не про свою таблицу так спросили? Если о «заготовке», то можете, например, вписать такую строчку:

C++
1
2
3
4
void __fastcall TForm1::StringGrid1KeyPress(TObject *Sender, char &Key)
{
     if(isalpha(Key)) Key=0;   
}

Это не даст ввести в поле таблицы какое-нибудь ругательное слово, — только цифры, знаки препинания, пробел.



0



2 / 1 / 0

Регистрация: 07.10.2018

Сообщений: 172

07.10.2018, 15:57

 [ТС]

12

воот ввел, а свое задание так и не знаю как реализовать.



0



12 / 10 / 5

Регистрация: 07.10.2018

Сообщений: 40

07.10.2018, 16:00

13

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



0



2 / 1 / 0

Регистрация: 07.10.2018

Сообщений: 172

07.10.2018, 16:02

 [ТС]

14

можно это в исходном коде или где то поправить можно?)



0



12 / 10 / 5

Регистрация: 07.10.2018

Сообщений: 40

07.10.2018, 16:18

15

Лучший ответ Сообщение было отмечено Фазли как решение

Решение

Я б вашу задачу так решал… — на форме две таблицы, трэк-бар, задающий размерность матрицы (она у вас квадратная, как я понял), ну и кнопки исполнительные. Почему трэк-бар? у него есть ограничители минимума и максимума (мало ли чего пользователь в эдит введёт…). Потом по нажатию кнопки первая таблица заполняется случайными значениями (тоже желательно задаться ограничительными значениями). По другой кнопке ищется максимальное число в таблице и затем ячейки первой таблицы переносятся во вторую таблицу, исключая те ячейки, в координатах которых присутствует какая-либо из координат найденной максимальной ячейки. Размерность второй таблицы, естественно, на 1 меньше первой.
Это в общих чертах. Ничего особо сложного.



1



Модератор

8500 / 5659 / 2291

Регистрация: 21.01.2014

Сообщений: 24,267

Записей в блоге: 3

08.10.2018, 06:50

16

Не по теме:

Цитата
Сообщение от Скиф 90
Посмотреть сообщение

Дорогие модераторы, меня задолбала неубираемая панель «Узнать стоимость написания работы» и т.д. Это я вирус подцепил, или такой «ненавязчивый сервис» на вашем форуме?

Скиф 90, можете скрин прицепить? никакого такого «сервиса» не наблюдается?

Добавлено через 58 секунд

Цитата
Сообщение от Скиф 90
Посмотреть сообщение

Почему трэк-бар?

Вот именно: почему он? Почему не SpinEdit?



0



Практикантроп

4787 / 2686 / 518

Регистрация: 23.09.2011

Сообщений: 5,747

08.10.2018, 08:23

17

А чем плох трэк-бар? А вот CSpinEdit требует корректировки опции компилятора Disable inline expansions (в ранних версиях Билдера), что для малоопытного ТС, как я понимаю, создаст дополнительные заботы. Да и ручной ввод в его поле цифр тоже несколько кривовато устроен. Так по крайней мере на моем Builder’е 5 версии. Может, конечно, в RAD-студии это все исправили… .



0



12 / 10 / 5

Регистрация: 07.10.2018

Сообщений: 40

08.10.2018, 10:23

18

Цитата
Сообщение от D1973
Посмотреть сообщение

Скиф 90, можете скрин прицепить?

Пожалуйста

Миниатюры

Ошибка -is not a valid integer value (не является допустимым целым значением), не понимаю в чем ошибка
 



0



Фазли

2 / 1 / 0

Регистрация: 07.10.2018

Сообщений: 172

08.10.2018, 11:03

 [ТС]

19

Вот решил своё задание!

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
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
int n,m,**ary;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::FormCreate(TObject *Sender)
{
int n=3;int m=3;
StringGrid1->RowCount=n+1;
StringGrid1->ColCount=m+1;
  for (int i=1; i<=n; i++){
    StringGrid1->Cells[i][0]="m="+IntToStr(i);
    StringGrid1->Cells[0][i]="n="+IntToStr(i);
    }
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int imax=0,jmax=0,i,j,n=3,m=3;
 int** ary = new int*[n];
  for(i=0; i<n; i++) {
   ary[i] = new int[m];
   }
 
for(i=0; i<n; i++)
 for(j=0; j<m; j++)
  ary[i][j]= StringGrid1->Cells[j+1][i+1].ToIntDef(0);
 
 
for(i=0; i<n; i++)
 for(j=0; j<m; j++)
  if (ary[i][j]>ary[imax][jmax]){
   imax=i;
   jmax=j;
   }
 
for (i=0; i<n; i++)
  for (j=jmax; j<m-1; j++) ary[i][j]=ary[i][j+1];
   m--;
for (j=0; j<m; j++)
  for (i=imax; i<n-1; i++) ary[i][j]=ary[i+1][j];
   n--;
 
for(int i=0; i<StringGrid1->ColCount; i++)
  for(int j=0; j<StringGrid1->RowCount; j++)
   StringGrid1->Cells[j+1][i+1] = "";
 
for(int i=0; i<n; i++)
  for(int j=0; j<m; j++)
   StringGrid2->Cells[j+1][i+1] = IntToStr(ary[i][j]);
 
for (int i=0; i<n; i++)
  delete []ary[i];
    delete []ary;        
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Edit1Change(TObject *Sender)
{
if (Edit1->Text=="") return;
  n=StrToInt(Edit1->Text);
  StringGrid1->RowCount=n;        
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Edit2Change(TObject *Sender)
{
if (Edit2->Text=="") return;
  m=StrToInt(Edit2->Text);
  StringGrid1->ColCount=m;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::StringGrid1KeyPress(TObject *Sender, char &Key)
{
if(isalpha(Key)) Key=0;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
 
      ShowMessage("Память освобождена!");
      Close();
 
}
//-------------

—————————————————————

Миниатюры

Ошибка -is not a valid integer value (не является допустимым целым значением), не понимаю в чем ошибка
 

Ошибка -is not a valid integer value (не является допустимым целым значением), не понимаю в чем ошибка
 



0



Модератор

8500 / 5659 / 2291

Регистрация: 21.01.2014

Сообщений: 24,267

Записей в блоге: 3

08.10.2018, 12:39

20

Скиф 90, ну, однако, это Ваша беда… Нет тут на форуме ничего подобного… Смотрите в браузере, какие надстройки нацеплялись…

Цитата
Сообщение от nick42
Посмотреть сообщение

А вот CSpinEdit требует…

Ну да, про это я что-то забыл… В RAD Studio — там их теперь два: TCSpinEdit, который ведет себя точно так же, как и встарь, и TSpinEdit — вполне так себе адекватная штука для ввода чисел… Кроме того, есть еще связка Edit + UpDown…

Цитата
Сообщение от nick42
Посмотреть сообщение

А чем плох трэк-бар?

Не по теме:

Ой, ну там же в этот ползунок мышом еще попасть надо, а когда руки дрожат — то мучение, прямо…


Да ничем не плох — тоже, как говорится, вариант…



0



Понравилась статья? Поделить с друзьями:
  • Ошибка неверное имя пользователя или пароль ржд
  • Ошибка не является файлом вин 32
  • Ошибка неверное имя пользователя или пароль войти
  • Ошибка не является приложением в вин32
  • Ошибка неверное имя пользователя или пароль iphone