![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Извините за тупой вопрос но как открыть файл? [D7, XP]
цк3сл3к © (2006-07-24 11:47:00)1.Ну должно быть типа нажимаешь кнопку в моей проге тогда открывается другая пргорамма. Например нажимаю *начать* тогда окрывается
ехе файл который находится с прогой в одной папке.т есть нужно с условными путями а не абсолютными
2.И еще как подсчитать скоко раз нажималась кнопка Например когда 5 раз нажимают кнопку то выходит сообщение *вы проиграли*.
З.Ы извините еще раз за тупые вопросы
З.Ы.Ы я токо неделю назад начался програмированием на делфи
PSPF2003 (2006-07-27 11:48:00) [1]CTRL + F9
LexXL (2006-07-27 11:43:00) [2]открой проект сохрани "проект как "( save project as...) в другую папку и F9
цк3с3к (2006-07-26 14:22:00) [3]у меня тут новая проблема
Я однажды сидел в Делфи прогу писал
и тут свет отключили (в деревне)
через час запускаю комп и когда я пытаюсь запустит прогу (ну которую сделал) выходит ошибка (через делфи я там нажимаю F9)
такая вот
Application Error
Expection EMCIDevice Error in module имя моей проги.exe at 0005A118
Данный файл не найден . Провертье что путь и имя файла указаны верно
Помогите плиз..
antonn (2006-07-25 11:26:00) [4]Kolan © (24.07.06 20:50) [20]
С моим? (Блин и как догадался.... только этим и занимаюсь.. :)
Вот так в смысле:
Result := IncludeTrailingPathDelimiter( ExtractFilePath(Application.ExeName));
а зачем IncludeTrailingPathDelimiter?
Kolan (2006-07-24 20:50:00) [5]
> Вот что игры с моском делають!!!
С моим? (Блин и как догадался.... только этим и занимаюсь.. :)
Вот так в смысле:
Result := IncludeTrailingPathDelimiter( ExtractFilePath(Application.ExeName));
KilkennyCat (2006-07-24 20:25:00) [6]Вот что игры с моском делають!!!
Kolan (2006-07-24 20:22:00) [7]
> ExtractFilePath(ParamStr(0));
А я пользую:
ExtractFilePath(Application.ExeName);
И еще:
IncludeTrailingPathDelimiter
umbra (2006-07-24 19:20:00) [8]
> umbra там у меня какая та асибка выходит
> Incompatible types: 'String' and 'PAnsiChar'
> возле слова mypath там где shellexecute
>
ShellExecute(0, 'open', PChar(mypath), nil, nil, SW_SHOWNORMAL);
цк3с3к (2006-07-24 19:15:00) [9]а я все таки не понял
мне нужно так чтоб без каких та там диалогов открытия открылась(запустилась);
Я тута делаю лаунчер для игры чисто для себя
там есть три кнопки (начать игру) когда я нажимаю эту кнопку тогда начинается игра
(Прохождение) здеся запускается ехе файл с прохождением
и (редактор сейвов); здеся включяется редактор сейвоu
umbra там у меня какая та асибка выходит
Incompatible types: 'String' and 'PAnsiChar'
возле слова mypath там где shellexecute
umbra (2006-07-24 13:05:00) [10]
> 1.Ну должно быть типа нажимаешь кнопку в моей проге тогда
> открывается другая пргорамма. Например нажимаю *начать*
> тогда окрывается
> ехе файл который находится с прогой в одной папке.т есть
> нужно с условными путями а не абсолютными
uses ................., ShellApi, ..............;
{...............................}
procedure ExecMyExe;
var
mypath: string;
begin
mypath := ExtractFilePath(Application.ExeName); // находим путь к папке
//главной проги
mypath := mypath + 'другая_прога.exe'; // получаем путь другой проги
ShellExecute(0, 'open', mypath, nil, nil, SW_SHOWNORMAL); //запускаем другую
//прогу
end;
В принципе, еще надо анализировать значение, возвращаемоеShellExecute
Шпиён (2006-07-24 12:59:00) [11]
> Шпиён (24.07.06 12:57) [13]
В принципе, "Form1" здесь совершенно лишнее -)
Caption := ExtractFilePath(ParamStr(0));
Шпиён (2006-07-24 12:57:00) [12]
> Darkwing © (24.07.06 12:05) [4]
procedure TForm1.FormCreate(Sender: TObject);
begin
form1.Caption := ExtractFilePath(ParamStr(0));
end;
тогда по любому.
Darkwing (2006-07-24 12:52:00) [13]с ярлыком согласен. облажался.
Мефисто (2006-07-24 12:51:00) [14]
> Reindeer Moss Eater © (24.07.06 12:44) [9]
опять я опаздал...
Мефисто (2006-07-24 12:49:00) [15]
> Семеныч © (24.07.06 12:38) [8]
> Darkwing © (24.07.06 12:31) [7]
не обязательно [3]
Второй возможный косяк: Запуск через ярлык, а в ярлыке указана другая рабочая папка :)
Reindeer Moss Eater (2006-07-24 12:44:00) [16]Создай ярлык для любой своей программы. Рабочим каталогом укажи любую папку или ничего не указывай.
Или запусти программу из командной строки когда текущий каталог не тот, в котором лежит .exe
И после этого посмотри будет "по любому", или нет.
Семеныч (2006-07-24 12:38:00) [17]
> Darkwing © (24.07.06 12:31) [7]
Запусти [3] и удивись.
Darkwing (2006-07-24 12:31:00) [18]
> Reindeer Moss Eater ©
у меня во всех прогах, если это нужно, то GetCurrentDir стоит в начале Form1.create. Возможно все неправильно и можно проще, однако еще ни разу она не давала неверное значение директории с экзешником.
umbra (2006-07-24 12:26:00) [19]
> 2.И еще как подсчитать скоко раз нажималась кнопка Например
> когда 5 раз нажимают кнопку то выходит сообщение *вы проиграли*.
>
как вариант:
procedure TForm1.Button1Click(Sender: TObject);
begin
with Button1 do
begin
if Tag = 6 then
begin
ShowMessage('Вы проиграли!');
exit;
end;
Tag := Tag + 1;
end;
{Делаем что-то}
end;
Reindeer Moss Eater (2006-07-24 12:17:00) [20]тогда по любому.
Ага. Щаз.