Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #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

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


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 06:45.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter