Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на Delphi


Новое направление Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Delphi

Выпуск № 1105
от 29.03.2008, 08:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 442, Экспертов: 59
В номере:Вопросов: 5, Ответов: 10

Нам важно Ваше мнение об этой рассылке.
Оценить этот выпуск рассылки >>


Вопрос № 128653: Здравствуйте, уважаемые эксперты! Как мне сделать, чтоб при вводе неверного пароля более трёх раз, приложение закрывалось?...
Вопрос № 128654: Здравствуйте! Хочу написать прогу для решения уравнений любой сложности... Проблема в том, что не могу додуматься, как считать значение функции из текстового поля! Не подскажете??? P.S. Например, есть функция f:=x*x*x+2*x*x+3*x+7. Как сделат...
Вопрос № 128665: Здравствуйте эксперты! Скорее всего многие сталкивались с моей проблемой. Но поиск ничего не дал.... Есть у меня набор компонентов DevExpress. Там есть компонент cxMaskEdit - то же самое что и обычный maskedit, только вид у него более привл...
Вопрос № 128722: Уважаемые эксперты, проблема такая: я меняю свойство Color компоненита TListBox. При этом меняется цвет фона только непостредственно под текстом. Там, где ширина текста меньше ширины списка, цвет остаётся прежним. Если форму развернуть или свернуть. ...
Вопрос № 128748: Снова здравствуйте! У меня возник вопрос - как автоматически закрыть программу после выполнения всех операций? Через form.close не получается!!...

Вопрос № 128.653
Здравствуйте, уважаемые эксперты!
Как мне сделать, чтоб при вводе неверного пароля более трёх раз, приложение закрывалось?
Отправлен: 23.03.2008, 08:23
Вопрос задала: Cassie (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Louken
Здравствуйте, Cassie!

Цикл завершится в трех случаях:
1) когда будет введен верный пароль;
2) когда пользователь откажется вводить пароль, нажмет "Отмена", например.
Чтобы проверить как закончился цикл, нужно еще раз вставить условие:
if s=Password then //Значит пароль верный
3) когда пользователь ввел три раза подряд неверный пароль программа завершается.
Код в приложении:

Приложение:

Ответ отправил: Louken (статус: Студент)
Ответ отправлен: 23.03.2008, 10:47

Отвечает: Genia007
Здравствуйте, Cassie!
Вводим переменную n: Byte.
В событии Form OnCreate пишем n:= 0;{обнуляем переменную}
В обработчик события, где Вы проверяете правильность пароля пишем
If Edit1.Text <> 'пароль' then {проверка пароля введёного в Edit1, если не совпадает увеличиваем переменную на еденицу}
Inc(n);
If n > 3 then {Если ввели неверно пароль больше 3 раз выходим из программы}
Close;
Ответ отправил: Genia007 (статус: 9-ый класс)
Ответ отправлен: 24.03.2008, 13:43


Вопрос № 128.654
Здравствуйте! Хочу написать прогу для решения уравнений любой сложности... Проблема в том, что не могу додуматься, как считать значение функции из текстового поля! Не подскажете???

P.S. Например, есть функция f:=x*x*x+2*x*x+3*x+7. Как сделать так, чтобы уравнение задавалось из текстового поля???
Отправлен: 23.03.2008, 08:46
Вопрос задал: KomissaRex (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Виктор Пырлик
Здравствуйте, KomissaRex!

Вероятно вам надо делать разбор строки, но использовать для степени лучше не * а ^.
посмотрите тут:
Язык Си в примерах/Калькулятор выражений
Обратная польская запись
Delphi - Преобразование выражения к Обратной Польской Нотации

Ну а считать думаю не сложно - в любую строковую переменную и потом просто парсим (разбор на лексемы строки)

---------
Если ничего не помогло - надо читать инструкцию
Ответ отправил: Виктор Пырлик (статус: Профессионал)
Россия, Свердловская обл.
Тел.: +7(34386) 53-5-98
ICQ: 490191733
----
Ответ отправлен: 23.03.2008, 13:00
Оценка за ответ: 5
Комментарий оценки:
Спасибо! Вы мне очень помогли!


Вопрос № 128.665
Здравствуйте эксперты! Скорее всего многие сталкивались с моей проблемой. Но поиск ничего не дал....

Есть у меня набор компонентов DevExpress. Там есть компонент cxMaskEdit - то же самое что и обычный maskedit, только вид у него более привлекательней и хотелось бы использовать именно его.
Вот в чем проблема задаю ему маску "!(000)00-00-000;0;_" Последний 0 означает то что литералов не будет. Но когда я делаю showmessage(cxMaskdit1.text) - сообщение выходит со скобками и тире, а мне этого не надо. Когда же использую обычный Maskedit с этой же маской - сообщение без литералов. Помогите.
Отправлен: 23.03.2008, 09:48
Вопрос задал: Djoin (статус: 3-ий класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Selya
Здравствуйте, Djoin!
Как вы маску задаёте?
Properties.EditMask [...]
В появившемся Input Mask Editor'е - Mask kind -> Standart
В Sample mask: Social security (похожа на вашу маску)
Внизу: Test input - проверяете, как работает маска
После закрытия Input Mask Editor'а маска в свойстве EditMask, просто удаляете не нужные тире (и скобки, если есть).
Маски для обычного MaskEdita и для DevExpress'ного немного отличаются.
Ответ отправил: Selya (статус: 10-ый класс)
Ответ отправлен: 23.03.2008, 12:13
Оценка за ответ: 2
Комментарий оценки:
Вы не поняли что мне надо. Мне надо чтобы при вводе в cxMaskEdit скобки и тире были а при обращении результат возвращался без них.


Вопрос № 128.722
Уважаемые эксперты, проблема такая: я меняю свойство Color компоненита TListBox. При этом меняется цвет фона только непостредственно под текстом. Там, где ширина текста меньше ширины списка, цвет остаётся прежним. Если форму развернуть или свернуть. Список перекрашивается полностью. Как сделать, чтобы он сразу полностью перекрашивался?
Отправлен: 23.03.2008, 17:38
Вопрос задал: Хукаленко Дмитрий (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Drbear
Здравствуйте, Хукаленко Дмитрий!

Попробуйте использорвать InvalidateRect, примерный код в приложении.

Приложение:

Ответ отправил: Drbear (статус: 8-ой класс)
Ответ отправлен: 23.03.2008, 18:18
Оценка за ответ: 5
Комментарий оценки:
Спасибо. Всё работает.

Отвечает: Genia007
Здравствуйте, Хукаленко Дмитрий!
Могу предложить такой нехитрый способ, недостаток необходимость повторного вызова после
перерисовки приложения:

procedure TForm2.Button6Click(Sender: TObject);
Var i:Integer; Rect:TRect;
begin
ListBox2.Canvas.Brush.Color:= clGreen;
ListBox2.Canvas.Rectangle(ListBox2.ClientRect);
For i:=0 to ListBox2.Count-1 Do
begin
Rect:=ListBox2.ItemRect(i);
ListBox2.Canvas.TextOut(Rect.Left+2, Rect.Top, ListBox2.Items.Strings[I]);
end;
end;
Ответ отправил: Genia007 (статус: 9-ый класс)
Ответ отправлен: 24.03.2008, 13:44
Оценка за ответ: 4
Комментарий оценки:
Спасибо за ответ, но я уже сделал, как Drbear посоветовал.


Вопрос № 128.748
Снова здравствуйте! У меня возник вопрос - как автоматически закрыть программу после выполнения всех операций? Через form.close не получается!!
Отправлен: 23.03.2008, 20:57
Вопрос задал: KomissaRex (статус: Посетитель)
Всего ответов: 4
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Николай Владимирович / Н.В.
Здравствуйте, KomissaRex!
Самый радикальный способ - Application.Terminate.
Данный метод полностью выгружает программу из памяти.
Description
Call Terminate to end the application programmatically. By calling Terminate rather than freeing the application object, you allow the application to shut down in an orderly fashion.
Terminate calls the Windows API PostQuitMessage function to perform an orderly shutdown of the application. Terminate is not immediate.
Terminate is called automatically on a WM_QUIT message and when the main form closes.

© справка Delphi

Удачи!
Ответ отправил: Николай Владимирович / Н.В. (статус: Профессор)
Россия, Москва
WWW: nvsoft.org
ICQ: 420720
----
Ответ отправлен: 23.03.2008, 21:01
Оценка за ответ: 5
Комментарий оценки:
Спасибо! Просто и понятно111

Отвечает: Louken
Здравствуйте, KomissaRex!

А еще можно через Halt - останавливает выполнение программы и возвращается в операционную систему. Осталась еще из паскаля, но до сих пор используется.
Ответ отправил: Louken (статус: Студент)
Ответ отправлен: 23.03.2008, 21:50
Оценка за ответ: 5
Комментарий оценки:
Спасибо! Оргинально, но интересно!

Отвечает: Кудинов Антон Павлович
!!!
Здравствуйте, KomissaRex!

From.close() нельзя (бесполезно) вызывать из form.create()

В вопросе ничего не говорилось про вызов Form.Close из Form.Create.
Из Form.Create можно вызывать Halt и Application.Terminate - они работают.

-----
∙ Отредактировал: Николай Владимирович / Н.В. (Профессионал)
∙ Дата редактирования: 24.03.2008, 07:53
Ответ отправил: Кудинов Антон Павлович (статус: 3-ий класс)
Ответ отправлен: 23.03.2008, 23:18
Оценка за ответ: 3
Комментарий оценки:
Действительно, по form.create я нисего не упоминал... Но все равно спасибо!

Отвечает: Selya
Здравствуйте, KomissaRex!
Form.Close получится, если это главная форма.
Попробуйте Application.Terminate
Ответ отправил: Selya (статус: 10-ый класс)
Ответ отправлен: 24.03.2008, 07:54


Вы имеете возможность оценить этот выпуск рассылки.
Нам очень важно Ваше мнение!
Оценить этот выпуск рассылки >>

Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2008, Портал RusFAQ.ru, Росси, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале

∙ Версия системы: 4.72.6 beta от 22.03.2008

Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное