|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Проблемма с приложением, написанным в Delphi
Здравствуйте! Есть такая проблема: есть приложение, написанное в delphi, оно открывает файл через opendialog, обрабатывает его. Затем я нажимаю снова "открыть" и, к примеру, передумал открывать и нажал "отмена". Но вместо того, чтобы opendialog закрылся, он закрывается и выполняется еще раз действие с раннее открытым файлом. Что можно сделать? Как завершить выполнение программы и подготовить ее к первоначальному состоянию?
|
#2
|
||||
|
||||
код покажи. так сложно сказать.
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#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
|
|||
|
|||
Цитата:
|