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

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


Информационный Канал Subscribe.Ru


RusFAQ.ru: Программирование на C++ Builder / Delphi

Выпуск № 212
от 07.09.2003, 20:10

Администратор:
Имя: Калашников О.А.
URL: Информационный ресурс
ICQ: 68951340
Россия, Москва
О рассылке:
Задано вопросов: 902
Отправлено ответов: 1652
Активность: 183.1 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе][Обсудить на форуме]


 Список экспертов, ответы которых опубликованы в данном выпуске

Bob Johnson
Статус: Профессиональный
Общий рейтинг: 152.29
URL: Программирование
[Подробней >>]
ART_43
Статус: Доверительный
Общий рейтинг: 121.05
[Подробней >>]
Marouder
Статус: Профессиональный
Общий рейтинг: 120.71
URL: Первый Хабаровский Форум
Телефон: (4212) 21-93-65
[Подробней >>]
 
Артём Шегеда
Статус: Профессиональный
Общий рейтинг: 116.76
URL: Пристанище неодинокого программиста
[Подробней >>]
Cybernetic Creature
Статус: Опытный
Общий рейтинг: 121.4
Телефон: +99412386744
[Подробней >>]
URiS
Статус: Профессиональный
Общий рейтинг: 129.64
URL: Бесплатный любительский софт, игры
[Подробней >>]
 
_vt
Статус: Профессиональный
Общий рейтинг: 121.94
[Подробней >>]
kvINT
Статус: Профессиональный
Общий рейтинг: 104.28
Телефон: (34316)2-31-45
[Подробней >>]
Twilight_Sun
Статус: Опытный
Общий рейтинг: 107.18
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 887. Добрый день, ув. эксперты. Приведите, плиз, короткий, но подробно объясненный, пример, как из своей ... (ответов: 6)
Вопрос № 888. Здравствуйте, уважаемые эксперты! У меня такой вопрос: в моем приложении есть несколько форм, причем... (ответов: 4)
Вопрос № 889. Как скрыть и показать меню ПУСК?... (ответов: 3)

Вопросов: 3, ответов: 13


 Вопрос № 887

Добрый день, ув. эксперты.
Приведите, плиз, короткий, но подробно объясненный, пример, как из своей программы запустить другую. Например, как при нажатии кнопки открыть HTML-файл, расположенный в текущем каталоге. Пробую CreateProcess, но не понимаю значение некоторых параметров.
P.S. Спасибо Бобу Джонсону и Артему Шегеде за ответы.



Вопрос отправлен: 03.09.2003, 14:32
Отправитель: Loko

[Следующий вопрос >>] [Список вопросов]

Отвечает Bob Johnson

Доброе время суток, Loko!
HTML файл проще открыть через ShellExecute, вот пример:
  ShellExecute (
Application->Handle, // handle to parent window
"open", // pointer to string that specifies operation to perform
"my_file.html", // pointer to filename or folder name string
NULL, // pointer to string that specifies executable-file parameters
NULL, // pointer to string that specifies default directory
SW_SHOWDEFAULT // whether file is shown when opened
);

Это для С++ билдера. Для дельфи аналогично.

* EMan1.5: ---===*** The game we play ***===---


Ответ отправлен: 03.09.2003, 15:53
Отправитель: Bob Johnson


Отвечает ART_43

Приветствую Вас, Loko!
ShellExecute(0, PChar('Open'), PChar(FileName), nil, nil, SW_SHOW);
Подробности в X:Program FilesCommon FilesBorland SharedMSHelpWIN32.HLP (ShellExecute)

Ответ отправлен: 04.09.2003, 14:18
Отправитель: ART_43


Отвечает Marouder

Приветствую Вас, Loko!
С помощью ShellExecute проще.
Delphi:
ShellExecute(0,nil,'fuck.html',nil,nil,SW_SHOWNORMAL);
C++ Builder:
ShellExecute(NULL,NULL,"fuck.html",NULL,NULL,SW_SHOWNORMAL);

Ответ отправлен: 04.09.2003, 09:41
Отправитель: Marouder


Отвечает Артём Шегеда

Здравствуйте, Loko!

Используй функцию ShellExecute:
uses
ShellAPI;
//...
begin
if not OpenDialog1.Execute then
exit;
ShellExecute(0, nil, PChar(OpenDialog1.FileName), nil, nil, SW_SHOWNORMAL);
end;


Ответ отправлен: 03.09.2003, 15:05
Отправитель: Артём Шегеда


Отвечает Cybernetic Creature

Приветствую Вас, Loko!
function ShellExecuteA(hWnd: HWND; Operation, FileName, Parameters, Directory: PAnsiChar; ShowCmd: Integer): HINST; stdcall;
e.g.
ShellExecuteA(Handle,PChar('Open'),PChar('Help.htm'),PChar(Application.Exename),SW_ShowNormal)

Ответ отправлен: 03.09.2003, 21:55
Отправитель: Cybernetic Creature


Отвечает URiS

Здравствуйте, Loko!
А ты используй лучше ShellExecute из модуля ShellAPI.

Oxota 2 (Скачать! 803Кб)


Ответ отправлен: 04.09.2003, 21:30
Отправитель: URiS


 Вопрос № 888

Здравствуйте, уважаемые эксперты!
У меня такой вопрос: в моем приложении есть несколько форм, причем все они создаются при запуске приложения, а потом активируются примерно так Form2->ShowModal().
Но когда я в этой форме поменяю что-либо, то при следующем открытии этой же формы в этом сеансе работы у меня не заполняются заново поля в этой Form2(там есть ComboBox1 и при создании он заполняется строками из запроса к базе данных).
Я пробовал создавать эти формы во время работы приложения следующим образом:
Application->CreateForm(__classid(TForm2), &Form2);
Form2->ShowModal();
При этом, когда я во второй раз захлжу в эту форму во время работы програмы, этот ComboBox1 вообще не заполнен. Может надо эту форму как-то удалять после того, как с ней поработаешь?
Подскажите, пожалуйста.


Приложение:


Вопрос отправлен: 04.09.2003, 11:49
Отправитель: Alexandr (balex@mail.spbnit.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает Bob Johnson

Приветствую Вас, Alexandr!
Тебе нужен вопрос № 872...
В общем ситуация такая - убираешь все формы, которые ты используешь как модальные из списка автосоздания, а заполнение значениями по умолчанию вставляешь в событие OnCreate. После этого ты создаешь форму так:

TForm2 *f = new TForm2 (this);
f->ShowModal ();
delete f;

> Может надо эту форму как-то удалять
Конечно, если ты создаешь динамически, то удалять тоже должен сам.

* EMan1.5: ---===*** The game we play ***===---


Ответ отправлен: 04.09.2003, 23:15
Отправитель: Bob Johnson


Отвечает _vt

Здравствуйте, Alexandr!
Если они активируются через ShowModal(), то и заполняй свои поля в обработчике OnShow, а не в OnCreate и не в design-time...

*** Updated E-Man 1.5 - it's cool! Join to us, if you're a real rusfaq expert! :-()***


Ответ отправлен: 04.09.2003, 22:43
Отправитель: _vt


Отвечает URiS

Здравствуйте, Alexandr!
Чтобы заполнение не скидывалось, нужно просто использовать саму форму, а не экземпляры.

Oxota 2 (Скачать! 803Кб)


Ответ отправлен: 05.09.2003, 14:16
Отправитель: URiS


Отвечает kvINT

Добрый день, Alexandr!
Форму надо удалять (Form2.Free в Delphi, в билдере наверно будет Form2->Free) и создавать снова при каждом вызове. Удали ее из списка автосоздаваемых (Auto Create).
Еще вариант - заполнять комбобоксы не в OnCreate, а в OnShow.

Ответ отправлен: 05.09.2003, 16:51
Отправитель: kvINT


 Вопрос № 889

Как скрыть и показать меню ПУСК?



Вопрос отправлен: 04.09.2003, 12:09
Отправитель: maDByte

[Следующий вопрос >>] [Список вопросов]

Отвечает Cybernetic Creature

Добрый день, maDByte!
procedure StartButton(visi: boolean);
var Tray, Child : hWnd;
C : array [0..127] of char;
S : string;
begin
Tray := FindWindow('Shell_TrayWnd', NIL);
Child := GetWindow(Tray, GW_CHILD);
while Child <> 0 do begin
if GetClassName(Child, C, SizeOf(C)) > 0 then begin
S := StrPAS(C);
if UpperCase(S) = 'BUTTON' then begin
if Visi then
ShowWindow(Child, 1)
else
ShowWindow(Child, 0);
end;
end;
Child := GetWindow(Child, GW_HWNDNEXT);
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
StartButton(False);
end;


Ответ отправлен: 06.09.2003, 10:01
Отправитель: Cybernetic Creature


Отвечает Bob Johnson

Здравствуйте, maDByte!
Попробуй найти hwnd, которое отвечает за эту кнопку и вызвать функцию ShowWindow.

* EMan1.5: ---===*** The game we play ***===---


Ответ отправлен: 04.09.2003, 23:16
Отправитель: Bob Johnson


Отвечает Twilight_Sun

Доброе время суток, maDByte!
...Где-то у меня валялась подобная программа дома (кнопку пуск прятала или панельку на которой она находится)... если не срочно - напиши на мэйл, найду - пришлю.


Приложение:

Ответ отправлен: 05.09.2003, 17:11
Отправитель: Twilight_Sun



Форма отправки вопроса

Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

(C) 2002-2003 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


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


Получить ответов:


 Выбор рассылки

Программисту
Assembler (36)
C / C++ (28)
Perl (5)
Builder / Delphi (17)
Pascal (21)
Basic / VBA (7)
Java / JavaScript (9)
PHP (10)
Криптография (8)
WinAPI (15)
Пользователю
Windows 95/98/Me (49)
Windows NT/2000/XP (65)
"Железо" (42)
Поиск информации (24)
Администратору
Windows NT/2000/XP (31)
Linux / Unix (10)
Юристу
Гражданское право (8)
Семейное право (5)
Трудовое право (6)
КоАП (5)

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




Задать вопрос | Регистрация эксперта | Поиск в базе | Чат | Форумы | Новости
Проект экспертов RusFAQ.ru | Фотоальбом | Virus.RusFAQ.ru | Администрирование
Профессиональная WEB-Студия B.I.T.


Яндекс цитирования
© 2001-2003 Россия, Москва. Авторское право: Калашников О.А.

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное