Вопрос № 40670: Как програмно создать/удалить Partition и как отформатировать логический диск....Вопрос № 40681: Здравия Желаю, Товарищи Эксперты (сегодня год как дембельнулся)!
Вопросы по клавиятуре:
1. Как избежать повторного выполнения события FormKeyPress при длительном удержании клавиши?
2. if (key='q')or(key= 'Q')or(key='й')or(key= 'Й') then n...Вопрос № 40684: Добрый вечер.
я хотел бы сослаться на вопрос № 40323 и спросить:
Поиск в memo осуществляется:
Var
n: integer;
begin
for n:=1 to memo1.Lines.Count do
if Pos(edit1.Text, memo1.Lines[n-1])>0
then application....Вопрос № 40731: Как я могу изменить шрифт MainMenu....
Вопрос № 40.670
Как програмно создать/удалить Partition и как отформатировать логический диск.
Отвечает: Mo-skin
Здравствуйте, George soselia!
Форматировать диск
Winexec('cmd /c format c:',SW_HIDE);
Сам не пропробовал (жалко че-то диск свой форматировать ;)) ),но должно работать (с другими ДОС-командами все ОК было).
Если надо сам допиши параметры после format c: (как в командной строке).
--------- Чем больше женщину мы меньше,- тем меньше больше мы ее!
Ответ отправил: Mo-skin (статус: 1-ый класс)
Ответ отправлен: 18.04.2006, 22:49
Вопрос № 40.681
Здравия Желаю, Товарищи Эксперты (сегодня год как дембельнулся)!
Вопросы по клавиятуре:
1. Как избежать повторного выполнения события FormKeyPress при длительном удержании клавиши?
2. if (key='q')or(key= 'Q')or(key='й')or(key= 'Й') then no:=61
Есть ли что-нибудь попроще? Обрабатывать четыре символа тяжко... (собираюсь использовать почти всю клаву), и вьетнамские пользователи вдяд-ли меня поймут (у них буквы Й нетути)!
Отправлен: 18.04.2006, 23:09
Вопрос задал: Mo-skin (статус: 1-ый класс)
Всего ответов: 4 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Евгения
Здравствуйте, Mo-skin!
2. Виртуальные коды клавиш: http://program.rin.ru/razdel/html/1016.html
--------- Я не волшебник, я только учусь... А разве кто-то обещал, что будет легко?
Ответ отправила: Евгения (статус: 4-ый класс)
Ответ отправлен: 18.04.2006, 23:28 Оценка за ответ: 5 Комментарий оценки: Все понял GOOD!
Отвечает: Злоумышленник
Вольно, товарищ солдат.
1. Заведи глобальную переменную типа TDateTime которую вычисляй в своём событии FormKeyPress и сравнивай с некоторой величиной задержки, которую определишь по своему вкусу. Если меньше, то Exit.
Ответ отправил: Злоумышленник (статус: 6-ой класс)
Ответ отправлен: 18.04.2006, 23:44
Отвечает: Denisss
Здравствуйте, Mo-skin!
Предлагаю воспользоваться вместо события Form.OnKeyPress событием Form.OnKeyUp. Это решит сразу две Ваши проблемы: procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState); begin
if (Key = ord('Q')) then
no:= 61; end;
Примечания:
- Событие OnKeyUp происходит только один раз - при отпускании клавиши
- ord(Char); - Char в ВЕРХНЕМ регистре, латинскими буквами возвращает код клавиши. В Вашем случае, это 'Q'.
- В отличие от OnKeyPress, в OnKeyUp, вместо символа выдается код клавиши (Key), который одинаков как для 'Q' и 'q', так и для 'Й' с 'й'.
Удачи!
Ответ отправил: Denisss (статус: Специалист)
Ответ отправлен: 18.04.2006, 23:59 Оценка за ответ: 3 Комментарий оценки: Спасибо, конечно, но мне надо обрабатывать именн НАЖАТИЕ клавиши, а не отпускание(хотя и его я таже буду обрабатывать) .
Отвечает: Ерёмин Андрей
Здравствуйте, Mo-skin!
1) Используйте связку OnKeyDown() + OnKeyUp().
2) А вы по коду проверяйте клавиши, а не по буквам. Для начала вычислите ord('й') например и далее if key = ord('й') then - тогда проблем не будет (естественно, подставить следует не эту конструкцию, а прямо реальный код - 60 например). Коды везде одинаковые, хотя буквы разные.
--------- Нет правила без исключений. Правило без исключений - исключение из правил.
Ответ отправил: Ерёмин Андрей (статус: Профессор) Россия, Тула WWW:Программирование на DELPHI: Всё для программиста. ICQ: 286837644 ---- Ответ отправлен: 19.04.2006, 07:16 Оценка за ответ: 5 Комментарий оценки: не совсем то, но наталкнуло меня на определенные мысли.
Вопрос № 40.684
Добрый вечер.
я хотел бы сослаться на вопрос № 40323 и спросить:
Поиск в memo осуществляется:
Var
n: integer;
begin
for n:=1 to memo1.Lines.Count do
if Pos(edit1.Text, memo1.Lines[n-1])>0
then application.messageBox('"'+edit1.Text+'" найдено в memo1'), 'Ура !');
end;
Так вот, при таком поиске ищется только точное название. А мне нужно чтобы не было разницы в каких регистрах написан текст. В memo написано Andrey, а я в поиске пишу ANDREY или AndReY или andreY и чтобы всеравно находило.
Вот такая вот проблема.
С Уважением, Максим
Отправлен: 18.04.2006, 23:42
Вопрос задал: Maximus (статус: Посетитель)
Всего ответов: 3 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Евгения
Здравствуйте, Maximus!
UpCase Возвращает переданный символ в верхнем регистре.
UpperCase Конвертирует все 7-ми битные ASCII символы строки, лежащие в диапазоне от 'a' до 'z', в прописные (верхний регистр).
--------- Я не волшебник, я только учусь... А разве кто-то обещал, что будет легко?
Ответ отправила: Евгения (статус: 4-ый класс)
Ответ отправлен: 19.04.2006, 00:10
Отвечает: Denisss Здравствуйте, Maximus!
А если так: var
n: integer;
strFind: String; begin
strFind:= AnsiUpperCase(Edit1.Text); for n:= 0 to pred(Memo1.Lines.Count) do if (Pos(strFind, AnsiUpperCase(Memo1.Lines[n])) > 0) then
begin
Application.messageBox('"' + Edit1.Text + '" найдено в Memo1'), 'Ура, Товарищи!');
Exit; // Или Break - чтобы закончить поиск end;
end;
AnsiUpperCase возвращает строку в верхнем регистре. UpperCase переводит в верхний регистр только латинские буквы.
Удачи!
Ответ отправил: Denisss (статус: Специалист)
Ответ отправлен: 19.04.2006, 10:43 Оценка за ответ: 5 Комментарий оценки: то что нужно
Отвечает: Дмитриев Алексей Иванович
Здравствуйте, Maximus!
Чтобы найти слово в строке(или в Мемо) не зависимо от регистра достаточно преобразовать и слово и строку в верхний (UpperCase) либо нижний (LowerCase) регистр.
А для поддерки великого и могучего русского языка нужно использовать AnsiUpperCase или AnsiLowerCase соответственно.
В общем так:
Var
n: integer;
begin
for n:=1 to memo1.Lines.Count do
if Pos(AnsiUpperCase(edit1.Text), AnsiUpperCase(memo1.Lines[n-1]))>0
then application.messageBox('"'+edit1.Text+'" найдено в memo1'), 'Ура !');
end;
Ответ отправил: Дмитриев Алексей Иванович (статус: 1-ый класс)
Ответ отправлен: 19.04.2006, 23:55 Оценка за ответ: 5 Комментарий оценки: Отлично, то что мне нужно. Спасибо
Отвечает: Рубан Николай Николаевич
Здравствуйте, Aslanov Ceyhun Yusif!
Шрифт Меню изменяет глобально для все ОС
Панель управления ->Экран->Оформление -> Дополнительно -> Строка меню
--------- Мыслю - значит существую (Декарт)
Ответ отправил: Рубан Николай Николаевич (статус: 3-ий класс)
Ответ отправлен: 19.04.2006, 12:11 Оценка за ответ: 2
Отвечает: nimoid
Здравствуйте, Aslanov Ceyhun Yusif!
Посмотри вот тут - http://www.delphikingdom.com/asp/viewitem.asp?catalogid=511
Надеюсь, разберешся в коде компонента, там не сложно.
--------- Пишем баги на любые патчи :-]
Ответ отправил: nimoid (статус: 7-ой класс)
Ответ отправлен: 19.04.2006, 13:13