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

RFpro.ru: программирование на Delphi и Lazarus


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный платный хостинг на базе Windows 2008

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

Чемпионы рейтинга экспертов в этой рассылке

Boriss
Статус: Академик
Рейтинг: 1140
∙ повысить рейтинг »
Jimhucksly
Статус: 5-й класс
Рейтинг: 770
∙ повысить рейтинг »
Тимошенко Дмитрий
Статус: Студент
Рейтинг: 489
∙ повысить рейтинг »

/ КОМПЬЮТЕРЫ И ПО / Программирование / Delphi и Lazarus

Номер выпуска:1461
Дата выхода:14.11.2009, 16:30
Администратор рассылки:Калашников О.А., Руководитель
Подписчиков / экспертов:580 / 213
Вопросов / ответов:1 / 2

Вопрос № 174096: Здравствуйте. Уважаемые эксперты у меня такая проблема. Надо создать модуль для обработки пароля. Вот, что получилось: procedure TPasswordDlg.OKBtnClick(Sender: TObject); var sub:string[40]; begin if Password.Text='1111'...



Вопрос № 174096:

Здравствуйте. Уважаемые эксперты у меня такая проблема. Надо создать модуль для обработки пароля. Вот, что получилось:

procedure TPasswordDlg.OKBtnClick(Sender: TObject);
var sub:string[40];
begin
if Password.Text='1111' then
begin
sub:=InputBox('Программа доступна', 'Ваш пароль', 'Правильный');
Form1:=TForm1.OnCreate;
Form1.Show;
end
else
begin
sub:=InputBox('Неправильный пароль', 'Проверте ввод пароля','Повторите');
end;
end;

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

[Error] Unit2.pas(38): Undeclared identifier: 'InputBox'
[Error] Unit2.pas(39): Method identifier expected
[Fatal Error] Unit1.pas(23): Could not compile used unit 'Unit2.pas'

Отправлен: 09.11.2009, 16:28
Вопрос задал: Vlad9240, Посетитель
Всего ответов: 2
Страница вопроса »


Отвечает OlegD, 1-й класс :
Здравствуйте, Vlad9240.


Проверьте в списке USES текущего модуля должен быть указан юнит DIALOGS. Функций InputBox относиться к данному юниту. Если его нет в списке используемых юнитов, то выдается ошибка Undeclared identifier: 'InputBox'.

Также Вы неправильно создаете форму Form1. для ее создания необходимо изменить Вашу строчку этой:

Form1:=TForm1.Create(nil);

Ответ отправил: OlegD, 1-й класс
Ответ отправлен: 09.11.2009, 16:44

Оценка ответа: 5
Комментарий к оценке:
Спасибо! Так и было:)

Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 256323 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!
    Отвечает Victor Pyrlik, Модератор :
    Здравствуйте, Vlad9240.
    Это делается не совсем так..
    Файл проекта (Delphi 7) я прикрепил.
    А так:
    1. делается форма ввода пароля
    2. Определяется алгоритм проверки пароля.. Самый простой случай - это операция xor
    на примере простейшей функции
    3. В главном модуле вызывается форма проверки пароля (в модуле проекта! ) и если все нормально, запускаем приложение, иначе просто выходим.

    function TForm2.CheckPass(s, pas: String; key: char): boolean;
    var i:integer;
    s2:String;
    begin
    for i:= 1 to Length(s) do
    begin
    s2 := s2+char(ord(s[i]) xor ord(key));
    end;
    result := s2 = pas;
    end;


    а проверка осуществляется так:
    procedure TForm2.BitBtn1Click(Sender: TObject);
    begin
    if CheckPass(Edit1.Text, 'PPPP','a') then
    ModalResult := mrOk
    else
    Messag eBox(GetActiveWindow,'Пароль не верный!',PChar(Application.Title),MB_OK+MB_ICONQUESTION);
    end;


    ну а вот и сам вызов:
    program Project1;

    uses
    Forms, Controls,
    Unit1 in 'Unit1.pas' {Form1},
    Unit2 in 'Unit2.pas' {Form2};

    {$R *.res}
    var f:TForm2;
    begin
    Application.Initialize;
    f := TForm2.Create(nil);
    if f.ShowModal = mrOk then
    begin
    Application.CreateForm(TForm1, Form1);
    Application.Run;
    end;
    end.


    Все в проекте.

    PS: да, пароль '1111' Прикрепленный файл: загрузить »

    -----
    Жизнь игрушка – пока играешь сам..

    Ответ отправил: Victor Pyrlik, Модератор
    Ответ отправлен: 09.11.2009, 17:23
    Россия, Екатеринбург
    Тел.: 89043822027
    ICQ # 490191733
    Абонент Skype: stells00

    Оценка ответа: 5
    Комментарий к оценке:
    Спасибо!

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 256325 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


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

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

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров »

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.


    © 2001-2009, Портал RFpro.ru, Россия
    Авторское право: ООО "Мастер-Эксперт Про"
    Автор: Калашников О.А. | Программирование: Гладенюк А.Г.
    Хостинг: Компания "Московский хостер"
    Версия системы: 2009.6.10 от 13.11.2009

    В избранное