Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 372

Раздел: Delphi » Прочее
/ вопрос решён /

Здравствуйте. Как мне сделать так, что бы нажав на кнопку
запустить "exe" файл (например, с программой), и
сразу хочу спросить ещё? Как мне напечатать текст в Memo1
сохранить его, и не просто сохранить а "сохранить как....."
то есть указать путь, где я хочу его сохранить, ну и если можно
то в конце хочу спросить, как кинуть Label1 на Form1,
чтобы в ней отображалось (и работало) переключение
Русского и Английского языков. Заранее благодарен.

Толков Геннадий Викторович Вопрос решён, но можно продолжить его обсуждение в мини-форуме

Вопрос задал: Толков Геннадий Викторович (статус: Посетитель)
Вопрос отправлен: 3 марта 2007, 23:31
Состояние вопроса: решён, ответов: 4.

Ответ #1. Отвечает эксперт: Aymenel

1)uses ShellApi;
ShellExecute(0,nil, 'Путь к фалу',nil, 'Директория', SW_SHOWNORMAL);
2)Помести на форму компонент SaveDialog
procedure TForm1.Button1Click(Sender: TObject);
begin
if SaveDialog1.Execute then Memo1.Lines.SaveToFile(SaveDialog1.FileName);
end;

Ответ отправил: Aymenel (статус: 2-ой класс)
Время отправки: 3 марта 2007, 23:52
Оценка за ответ: 5

Ответ #2. Отвечает эксперт: Вадим К

По поводу языков.
Узнать, какой язык активен можно так
function GetLangId:string;
var s: array [0..63] of char;
begin
GetKeyboardLayoutName(s);
result :=s;
end;
Правда возвращается на текстовое название языка, а его код
к примеру 409 - английский,
419 - русский
422 - украинский
Для остальных - ищете.
Сразу предупрежу вопрос о переключении языка
Включить русский язык
ActivateKeyboardLayout(LoadKeyboardLayout('00000419', 0), 0);
Переключить на следующий язык в списке
ActivateKeyboardLayout(HKL_NEXT, 0);

Как же отследить переключение? Ставите таймер и каждую секунду запрашивайте.

Ответ отправил: Вадим К (статус: Академик)
Время отправки: 4 марта 2007, 00:17
Оценка за ответ: 5

Ответ #3. Отвечает эксперт: min@y™

Мог дать ответы на все вопросы, но опоздал. :)
Добавлю ещё вот что: не ст0ит отслеживать переключение по таймеру, ибо раскладка клавы для каждого приложения индивидуальна. Лучше отслеживать в обработчике события Application.OnIdle. См. приложение.

Приложение:
  1. type
  2. TForm1 = class(TForm);
  3. ...
  4. protected
  5. procedure ApplicationIdle(Sender: TObject; var Done: Boolean);
  6. ...
  7. end;
  8.  
  9. ....
  10.  
  11. implementation
  12.  
  13. ....
  14.  
  15. procedure ApplicationIdle(Sender: TObject; var Done: Boolean);
  16. begin
  17.  
  18.  
  19. Done:= True;
  20. end;
  21.  
  22.  
  23. Application.OnIdle:= ApplicationIdle;


Ответ отправил: min@y™ (статус: Доктор наук)
Время отправки: 5 марта 2007, 08:49

Ответ #4. Отвечает эксперт: Шарайчук Сергей Олександрович

Сохранить текст ты можеш используя компонент SaveDialog, например
if SaveDialog1.Execute then
begin
AssignFile(SaveDialog.FileName,f)
write(f, memo.line.add);
closefile(f);
end;
где f файл в который ты сохраняеш текст!

Ответ отправил: Шарайчук Сергей Олександрович (статус: 2-ой класс)
Время отправки: 5 марта 2007, 13:52


Мини-форум вопроса

Всего сообщений: 0.

31 января 2011, 19:58: Статус вопроса изменён на решённый (изменил модератор Ерёмин А.А.): Автоматическая обработка (2 и более ответов с оценкой 5)

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:52
Выполнено за 0.02 сек.