Вопрос № 38284: Здравствуйте, уважаемые эксперты!
Вопрос: Как реализовать парольную схему в программе?
У меня в программе есть строка ввода(TEdit) и две кнопки (TButton). Первая кнопка очищает экран, вторая - потверждение того, что ты ввёл в строку ввода. ...Вопрос № 38287: Уважаемые эксперты возможно ли в Gridу изменять высоту каждой строки отдельно. Есть база данных с полем Memo. Хотелось бы, чтобы при выводе Grid высота для каждой строки вычислялась в зависимости от размера содержимого мемо поля, т.е. например 1 стро...Вопрос
№ 38304: Здравствуйте.
Такой вопрос:
У меня стоит Delphi6. Вчера установил для него компонент ThemeManager. Но он почему-то не работает, т.е. кидаешь его на форму и никакого эффекта. В чем может быть проблема?
Спасибо, заранее....Вопрос № 38332: Здраствуй народ. Работай на Delphi. Как запустить процесс системного копирования файла под windows с окном процесса копирования, как сама windows это делает?...Вопрос № 38345: Здравствуйте!!! У компонента TEdit есть свойства width и height. Когда я изменяю их так как мне нужно
в режиме разработки ширина и длина меняется, но когда запускаю программу на выполнение
то его размеры опять становятся какими были по умолча...Вопрос № 38364: Здравствуйте, Уважаемые эксперты!
Как сравнить 2 текстовых файла между собой посимвольно и если есть различия вывести какое-нибудь сообщение, показывать
различия не нужно. Убедительная просьба привести пример.
...
Вопрос № 38.284
Здравствуйте, уважаемые эксперты!
Вопрос: Как реализовать парольную схему в программе?
У меня в программе есть строка ввода(TEdit) и две кнопки (TButton). Первая кнопка очищает экран, вторая - потверждение того, что ты ввёл в строку ввода. При нижеуказанной схеме вылетает "Try again" при как бы ты пароле не нажимал ок'ей, даже при правильном.
Как это исправить?
Отвечает: Сидоров Андрей
Здравствуйте, Дружилин Алексей Викторович!
Все правильно. При первом сравнении если пароль правильный Edit1.Text у тебя меняется на Good и при втром сравнении уже проходит как не правильный.
В твое случае лучше использовать конструкцию If then else
if Edit1.Text = Password
then Edit1.Text:='Good'
esle Edit1.Text:='Try again';
Ответ отправил: Сидоров Андрей (статус: 1-ый класс)
Ответ отправлен: 23.03.2006, 09:18
Отвечает: Cheater76
Здравствуйте, Дружилин Алексей Викторович!
procedure TForm1.Button2Click(Sender: TObject)
var Password: String;
begin
Password:= 'Hkjsdhfu';
If Edit1.Text = Password then Edit1.Text:= 'Good' !!!
else Edit1.Text := 'Try again'; !!!
end;
Приложение:
Ответ отправил: Cheater76 (статус: 3-ий класс)
Ответ отправлен: 23.03.2006, 09:31
Отвечает: sir henry
Здравствуйте, Дружилин Алексей Викторович!
К паролям это не имеет никакого отношения. Дело в том, что у Вас идут последовательно два условия проверки Edit1. Если Вы ввели пароль правильно, то в Edit'е появляется надпись Good. Далее Вы это же поле проверяете на неравенство паролю. Естественно никакго пароля там уже нет, поэтому неравенство подтверждается и появляется Try again. Т.е. на лицо грубейшая логическая ошибка. Нужно сделать так, чтобы пароль проверялся только один раз, например так:
f Edit1.Text = Password then
Edit1.Text:= 'Good'
Else
Edit1.Text := 'Try again';
Понимаете?
Ответ отправил: sir henry (статус: Академик) Россия, Красноярск ---- Ответ отправлен: 23.03.2006, 10:29
Отвечает: Ataman N. N.
Здравствуйте, Дружилин Алексей Викторович!
Ошибка елементарная, Вы сначала проверяете пароль, если пароль правильный заносите в Edit1 другой текст, а потом снова проверяете правильность пароля. Чтобы все работало правильно нужно использовать не два оператора if then, а один оператор if then else.
Password:= 'Hkjsdhfu';
If Edit1.Text = Password then
Edit1.Text:= 'Good'
else
Edit1.Text := 'Try again';
Ответ отправил: Ataman N. N. (статус: 10-ый класс)
Ответ отправлен: 23.03.2006, 16:40
Отвечает: Malysh
Здравствуйте, Дружилин Алексей Викторович!
procedure TForm1.Button1Click(Sender: TObject);
var
Password: String;
begin
Password:= 'Hkjsdhfu';
If CompareStr(Edit1.Text,Password)=0 then
Edit1.Text:= 'Good'
else
Edit1.Text := 'Try again';
end;
Ответ отправил: Malysh (статус: Практикант)
Ответ отправлен: 24.03.2006, 23:29
Вопрос № 38.287
Уважаемые эксперты возможно ли в Gridу изменять высоту каждой строки отдельно. Есть база данных с полем Memo. Хотелось бы, чтобы при выводе Grid высота для каждой строки вычислялась в зависимости от размера содержимого мемо поля, т.е. например 1 строка - высотой 2 строки, 2 строка - 1.
Посмотрел компоненты - везде можно менять, но только всех строк одновремено.
Отвечает: Timoshin A.B.
Здравствуйте, Сидоров Андрей!
Стандартными средствами это не реализовать, придётся чуть-чуть переписать Grid под себя.
Ответ отправил: Timoshin A.B. (статус: 9-ый класс)
Ответ отправлен: 23.03.2006, 10:29
Вопрос № 38.304
Здравствуйте.
Такой вопрос:
У меня стоит Delphi6. Вчера установил для него компонент ThemeManager. Но он почему-то не работает, т.е. кидаешь его на форму и никакого эффекта. В чем может быть проблема?
Спасибо, заранее.
Отправлен: 23.03.2006, 12:21
Вопрос задал: AlexB (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Сидоров Андрей
Здравствуйте, AlexB!
Какая версия ThemeManager. Если 6.0 - то это для настройки шрифтов своих визуальных компонентов Edit и т.д. если что пиши у меня стоит версия 6.0 объесню как с ней работать
Ответ отправил: Сидоров Андрей (статус: 1-ый класс)
Ответ отправлен: 23.03.2006, 12:49
Отвечает: Лучников Ю.В.
Здравствуйте, AlexB!
Кроме того, как кинуть сам компонент Theme Manager на форму, вам нужно подлинковать в ресурсы проекта так называемый Manifest файл.
К ответу прикрепляю скомпилированный (winxp.res) файл манифеста.
В своем проекте просто жмете Project - Add To Project... и выбираете файл winxp.res.
Успехов!
Прикреплённый файл: Загрузить >> Срок хранения файла на сервере RusFAQ.ru составляет 30 суток с момента отправки ответа.
Ответ отправил: Лучников Ю.В. (статус: Практикант)
Ответ отправлен: 23.03.2006, 22:35
Вопрос № 38.332
Здраствуй народ. Работай на Delphi. Как запустить процесс системного копирования файла под windows с окном процесса копирования, как сама windows это делает?
Отвечает: sir henry
Здравствуйте, Карасев Алексей Александрович!
В модуле ShellAPI есть очень хорошая функция SHFileOperation(), которая позволяет проводить множество файловых операций - копирование, переименование, удаление в корзину и т.п. Конкретное действие и флаги задаются в структуре TSHFileOpStruct. Пример смотрите в приложении.
Приложение:
Ответ отправил: sir henry (статус: Академик) Россия, Красноярск ---- Ответ отправлен: 24.03.2006, 08:06
Вопрос № 38.345
Здравствуйте!!! У компонента TEdit есть свойства width и height. Когда я изменяю их так как мне нужно
в режиме разработки ширина и длина меняется, но когда запускаю программу на выполнение
то его размеры опять становятся какими были по умолчанию (до изменения). Как это исправить????
Отправлен: 23.03.2006, 20:22
Вопрос задал: Rewer8 (статус: Посетитель)
Всего ответов: 5 Мини-форум вопроса >>> (сообщений: 0)
Ответ отправила: Евгения (статус: 2-ой класс)
Ответ отправлен: 23.03.2006, 22:23
Отвечает: Лучников Ю.В.
Здравствуйте, Rewer8!
Все просто;)
В инспекторе объектов поставте свойство Edit1.AutoSize равным false.
Успехов!
Ответ отправил: Лучников Ю.В. (статус: Практикант)
Ответ отправлен: 23.03.2006, 22:45
Отвечает: Leshiy2006
Здравствуйте, Rewer8! Поставьте свойство AutoSize=False-это свойство определяет автоматическое определение размеров компонента.
Удачи!
Ответ отправил: Leshiy2006 (статус: 6-ой класс)
Ответ отправлен: 23.03.2006, 23:15
Отвечает: Ataman N. N.
Здравствуйте, Rewer8!
У Edit'a есть свойство AutoSize. Попробуйте установить его в false.
Ответ отправил: Ataman N. N. (статус: 10-ый класс)
Ответ отправлен: 24.03.2006, 17:15
Отвечает: Malysh
Здравствуйте, Rewer8!
У меня никаких проблем не возникает:
Edit1.Width:=150;
Edit1.Height:=150;
и все нормально!!!
Ответ отправил: Malysh (статус: Практикант)
Ответ отправлен: 24.03.2006, 23:30
Вопрос № 38.364
Здравствуйте, Уважаемые эксперты!
Как сравнить 2 текстовых файла между собой посимвольно и если есть различия вывести какое-нибудь сообщение, показывать
различия не нужно. Убедительная просьба привести пример.
Отправлен: 24.03.2006, 00:40
Вопрос задал: Solovej (статус: Посетитель)
Всего ответов: 3 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: Лучников Ю.В.
Здравствуйте, Solovej!
Для этого можно использовать объект TStringList.
Представив файлы как большой массив байтов, сравнить их одноименные байты.
В приложении приведена функция CompareFiles() с комментариями, которая возвращает true если сравниваемые файлы одинаковы; false - если файлы различны. Там же приведен пример использования этой функции.
Успехов;)
Приложение:
Ответ отправил: Лучников Ю.В. (статус: Практикант)
Ответ отправлен: 24.03.2006, 03:18
Отвечает: sir henry
Здравствуйте, Solovej!
Нужно открыть оба файла, как файл символов, считывать символы и сравнивать.
Var
f1: fail of char;
f2: file of char;
c1: char;
c2: char;
i: integer;
Begin
i:=0;
AssignFile(f1, 'Имя_файла1');
AssignFile(f2, 'Имя_файла2');
Reset(f1);
Reset(f2);
While (not Eof(f1)) or (not Eof(f2)) do
Begin
Read(f1, c1);
Read(f2, c2);
If c1<>c2 Then
Inc(i);
End;
WriteLn('Выявлено несовпадений символов: ', i);
CloseFile(f1);
CloseFile(f2);
End.
Ответ отправил: sir henry (статус: Академик) Россия, Красноярск ---- Ответ отправлен: 24.03.2006, 08:20
Отвечает: Leshiy2006
Здравствуйте, Solovej!
Примерно так
Readln(f1,s1);
ReadLn(f2,s2);
if Length(s1)=Length(s2) then begin
for i:=0 to Length(s1)-1 do begin
if Copy(s1,i,1)= Copy(s2,i,1) then res:=True;
else begin
res:=False;
Break;
end;
end;
end;
if not res then ShowMessage('Файлы различны');
Удачи!
Ответ отправил: Leshiy2006 (статус: 6-ой класс)
Ответ отправлен: 24.03.2006, 22:33