![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Здравствуйте! Есть такая проблема: есть приложение, написанное в delphi, оно открывает файл через opendialog, обрабатывает его. Затем я нажимаю снова "открыть" и, к примеру, передумал открывать и нажал "отмена". Но вместо того, чтобы opendialog закрылся, он закрывается и выполняется еще раз действие с раннее открытым файлом. Что можно сделать? Как завершить выполнение программы и подготовить ее к первоначальному состоянию?
|
|
#2
|
||||
|
||||
|
код покажи. так сложно сказать.
|
|
#3
|
|||
|
|||
|
Цитата:
Можете посмотреть как эта ошибка выглядит. В последнем сообщении есть эта программа в этой теме: http://www.delphisources.ru/forum/sh...t=21946&page=4 |
|
#4
|
||||
|
||||
|
выложи минимальный проект воспроизводящий ошибку.
|
|
#5
|
||||
|
||||
|
Делаешь так:
Код:
if OpenDialog1.Execute then begin // Пользователь нажал кнопку "Открыть", здесь делаем обработку файла OpenDialog1.FileName end; |
|
#6
|
|||
|
|||
|
Цитата:
Последний раз редактировалось Dmitry_DM, 02.09.2012 в 20:06. |
|
#7
|
|||
|
|||
|
Цитата:
|
|
#8
|
||||
|
||||
|
потому что:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
i: Integer;
begin
if OpenDialog1.Execute then
begin
MediaPlayer1.FileName:=OpenDialog1.FileName;
MediaPlayer1.Open;
MediaPlayer1.Play;
LengthBar.Max:=MediaPlayer1.Length;
LengthBar.Min:=MediaPlayer1.StartPos;
Timer1.Enabled:=True;
end;————————>вот эту строку
begin
ClearWavInfo(WavInfo);
tcDrawWav.Tabs.Clear;
pbDrawWav.Invalidate;
try
ReadWavInfo(OpenDialog1.FileName, WavInfo);
except
ClearWavInfo(WavInfo);
raise;
end;
sbTimePos.Position := sbTimePos.Min;
sbTimePos.PageSize := 0;
sbTimePos.Max := Max(WavInfo.NumSamples + sbTimePos.Min - 1, sbTimePos.Min);
sbTimePos.PageSize := WavInfo.NumSamples div tbTime.Position;
for i := 1 to WavInfo.WaveFormat.nChannels do
begin
tcDrawWav.Tabs.Add('Channel ¹' + IntToStr(i));
end;
pbDrawWav.Invalidate;
————————>нужно перенести сюда
end; |
| Этот пользователь сказал Спасибо YVitaliy за это полезное сообщение: | ||
Dmitry_DM (02.09.2012)
| ||
|
#9
|
|||
|
|||
|
Цитата:
|