|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы | Поиск в этой теме |
05.07.2009, 11:25 | #11 |
Форумчанин Подтвердите свой е-майл
Регистрация: 01.11.2007
Сообщений: 157
|
1) В данном случае оператор return не возвращает ничего, а просто завершает работу функции и выходит с нее... Это автор зделал для того, если условие выполнилось, то нужно немедленно завершить работу функции и вернуть пустоту, чтобы последующий код функции не выполнялся.
2) Код:
Key - это ссылка на переменную |
05.07.2009, 18:18 | #12 |
Форумчанин
Регистрация: 18.04.2009
Сообщений: 688
|
прикиньте, я ща написал void __fastcall TForm1::la(TObject *Sender, char &Key)
{ if ((Key='.')||(Key=',')) Key=DecimalSeparator; return; } и теперь у меня кроме точек ничего не вводится почему?????????? эта фуункция должна была обработать десятичный разделитель. то есть, если я ввожу "." вместо ",", то у меня точка автоматически меняется на ",". ничего более. теперь же у меня всё что я ввожу меняется на запятые |
05.07.2009, 18:43 | #13 |
Форумчанин
Регистрация: 18.04.2009
Сообщений: 688
|
скажите, почему когда у меня так написано, всё нормально работает
void __fastcall TForm1::la(TObject *Sender, char &Key) { if ((Key>='0')||(Key<=9)) return; if ((Key='.')||(Key=',')) { Key=DecimalSeparator; return; }; if (Key=VK_BACK) return; а когда так, то вообще ничего не вводится void __fastcall TForm1::la(TObject *Sender, char &Key) { if ((Key>='0')||(Key<=9)) return; if ((Key='.')||(Key=',')) { Key=DecimalSeparator; return; }; if (Key=VK_BACK) return; всего лишь навсего эти коды отличаются песторасположением команды if (Key=VK_BACK) return; |
05.07.2009, 19:53 | #14 |
Форумчанин
Регистрация: 18.04.2009
Сообщений: 688
|
Код:
1.когда я писал if (Key=VK_RETURN) Button1->SetFocus(); я хотел, чтобы после нажатия ENTER`a стала активной кнопка Button1, этого не произошло 2. я хотел сделать так, чтобы в поле вводились только цифры и 1 разделитель, для этого в самом конце написал (Key=0), хоть я окончательно и не понял как работает код. как я понял, вводу подлежат ТОЛЬКО те символы, которые прописаны. так работает фукция KeyPress. так? а вот ссылка на файл с программой http://slil.ru/27813384 |
06.07.2009, 13:37 | #15 |
Форумчанин Подтвердите свой е-майл
Регистрация: 01.11.2007
Сообщений: 157
|
Знак "=" ставится там где нужно присвоить переменной значение, а знак "==" ставится там где нужно проверить на равенство! Смотри не путай "=" и "==" это разные вещи...
Код:
Используй теги CODE, а то неудобно читать... |
06.07.2009, 15:36 | #16 |
Форумчанин
Регистрация: 18.04.2009
Сообщений: 688
|
хорошо. вот ещё вопрос. у меня возникла ошибка
[Linker Error] Unresolved external '__fastcall TForm1::Edit1Change(System::TObject *)' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER6\PROJECTS\C+ + BUILDER\САМОУЧИТЕЛЬ\EDIT (СТР.75)\UNIT1.OBJ [Linker Error] Unresolved external '__fastcall TForm1::Edit2Change(System::TObject *)' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER6\PROJECTS\C+ + BUILDER\САМОУЧИТЕЛЬ\EDIT (СТР.75)\UNIT1.OBJ погуглил, нашёл, что такая ошибка возникает в том случает, если есть прототипы функций, а самих реализаций этих функций нет. вот текст: Код:
http://slil.ru/27815572 |
06.07.2009, 16:01 | #17 |
Форумчанин
Регистрация: 18.04.2009
Сообщений: 688
|
сам отвечу. надо было просто дописать
void __fastcall TForm1::Edit1Change(TObject *Sender) { } //--------------------------------------------------------------------------- и так ещё для Edit 2. |
07.07.2009, 19:50 | #18 |
Форумчанин
Регистрация: 18.04.2009
Сообщений: 688
|
Добрый вечер! сейчас пишу программу, которая должна показывать изображения (точнее разбираю по книжке).
там написано,что в поле ListBox1 должны быть имена файлов, адля этого в заголовочном файле необходимо прописать __fastcall int FillListBox() // Заполняет список компонента ListBox() а теперь у меня вопрос. FillListBox() - прописанная в библиотеке функция? |
07.07.2009, 20:01 | #19 |
Форумчанин
Регистрация: 18.04.2009
Сообщений: 688
|
.. я в первый раз сталкиваюсь с созданием классов в Билдере. в консольке было, а вот в билдере - в первый раз. и в первый раз лезу в заголовочный файл. раньше щёлкал на нужную кнопку или поле и прописывал те действия, которые она должна выполнять...
можете немножко разъяснить, в целом, когда надо лезть в классы |
09.07.2009, 18:20 | #20 |
Регистрация: 08.01.2009
Сообщений: 5
|
1) функция
void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key) объявленна как void, она не должна возвращать значение, return используется чтобы её закончить 2) проверяет есть ли уже в Edit знак разделителя (. или ,) 3)да, кеу, по -моему адрес и когда =0 -это означает, что эта переменная ничего не содержит, поэтому ничего и не отбразит (int *p = 0 ), а ='0' - уже выведет 0 |
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
из С++ в С++Builder 6.0 | densan | Помощь студентам | 3 | 30.05.2009 00:18 |
C++ Builder!!! | kykysya | C++ Builder | 4 | 08.02.2009 03:33 |
Builder 6.0 | prankish_cat | Общие вопросы C/C++ | 0 | 01.02.2009 16:45 |
БД C++ Builder 6 | ZiKx | C++ Builder | 1 | 07.08.2008 20:43 |
С ++ Builder | PsyTech | C++ Builder | 4 | 19.10.2007 08:25 |