Показать сообщение отдельно
  #1  
Старый 02.06.2019, 13:31
Kwon Kwon вне форума
Прохожий
 
Регистрация: 05.11.2018
Сообщения: 2
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию Заполнить Edit-ы с помощью ComboBox

Здравствуйте уважаемые мастера Делфи.
Прошу помочь начинающему.
Пожалуйста, помогите решить две проблемы:

1. Есть ComboBox в который загружается текстовый файл звуковой разметки для файла звука.
Вид текста такой:
<t id="1" s="0" l="1329"/>
<t id="2" s="2329" l="2061"/>
<t id="3" s="5390" l="1605"/>
<t id="4" s="7995" l="1126"/>
....
где
s="7995" - время в миллисекундах от начала файла
l="1126" - время в миллисекундах продолжительности звучания выбранного отрезка

Суть вопроса - как заставить событие ComboBoxChange разбрасывать значения
s="...." в Edit1
а l="...." в Edit2 ?
Т.е. автоматически заполнить эдиты (только цифрами) из выбранной комбобоксом строки
значениями с определенными метками в текстовом файле - s="..." и l="...".

Второй вопрос.

2. Создать кнопку сохранения выбранного участка звука в WAV-файл.

Приблизительно код может выглядеть так:
Код:
procedure TFormPlayer.CreateWavClick(Sender: TObject);
var
  FragmentStart, FragmentEnd: LongInt;
  WaveStream: TMemoryStream;
  FS: TFileStream;
  SoundTrack: array of Integer;
begin
  if FileExists('00144.mp3') then
  begin
    FragmentStart := StrToInt(EditStart.Text);
    FragmentEnd := FragmentStart + StrToInt(EditEnd.Text);
    MediaPlayer1.FileName := '00144.mp3';
    MediaPlayer1.Open;
    MediaPlayer1.TimeFormat := tfMilliseconds;
    MediaPlayer1.StartPos := FragmentStart;
    MediaPlayer1.EndPos := FragmentEnd;
    MediaPlayer1.Wait := False;
    {WaveStream.SaveToFile('Sound.wav');
    WaveStream.Free;}
   try
    FS := TFileStream.Create('FileName.wav', fmCreate or fmOpenWrite);
    FS.Write(SoundTrack[0], SizeOf(Integer) * Length(SoundTrack));
   finally
     FS.Free;
     Finalize(SoundTrack);
   end;
  end;
end;

Сама программа:
https://drive.google.com/file/d/1kPH...ew?usp=sharing

Вот, помогите, пожалуйста, если есть возможность.
Ответить с цитированием