
14.06.2014, 11:13
|
Новичок
|
|
Регистрация: 14.10.2012
Сообщения: 58
Версия Delphi: Delphi 10.4
Репутация: 10
|
|
Классы и методы
Подскажите пожалуйста как правильно создать методы класса для управления свойствами объектов:
Код:
unit CD;
interface
Uses
ComCtrls, StdCtrls, FileCtrl, SysUtils, Classes, forms,ExtCtrls,Buttons;
Type
TSDirectory = class
procedure getDir(Memo:Tmemo);
end;
TCD = Class
end;
function SetTrackBar(TrackBar:TTrackBar;Memo:Tmemo):string;
function PreTrack(TrackBar:TTrackBar;Memo:Tmemo):string;
function NextTrack(TrackBar:TTrackBar;Memo:Tmemo):string;
function Play(TrackBar:TTrackBar;Memo:Tmemo;BitBtn:TBitBtn;timer:Ttimer):string;
function Stop(TrackBar:TTrackBar;Memo:Tmemo;BitBtn:TBitBtn;timer:Ttimer):string;
var
Line: Integer;//Хранится номер строки memo
implementation
procedure TSDirectory.getDir(Memo:Tmemo);
var
//Путь к файлам
sDir: String;
//Путь найденного файла
sr: TSearchRec;
begin
//Выводим диалог выбора папки в итоге возвращает sDir
SelectDirectory('Выберите каталог', '', sDir);
// FindFirst ищем все файлы mp3.
if FindFirst(sDir + '*.mp3', faAnyFile, sr) = 0 then
begin
repeat
//Записываем в мемо имя найденого mp3 файла
Memo.Lines.Add(sr.Name);
//По завершению обнуляем sr
until FindNext(sr) <> 0;
FindClose(sr);
end;
end;
//Управление таймером
function SetTrackBar(TrackBar:TTrackBar;Memo:Tmemo):string;
begin
//По срабатыванию таймера прибавляем к позиции тракбара 1
TrackBar.Position:=TrackBar.Position+1;
Result :=Memo.Lines.Strings[Line];
//Если позиция тракбара достигля максимального значения
if TrackBar.Position=TrackBar.Max then
begin
//Переходим на строку вперед
Line:=Line+1;
//Устанавливаем позицию тракбара на 0
TrackBar.Position:=0;
//Выводим строку с индексом line в лайьл
Result :=Memo.Lines.Strings[Line];
end;
end;
function Play(TrackBar:TTrackBar;Memo:Tmemo;BitBtn:TBitBtn;timer:Ttimer):string;
begin
// Если на кнопке надпись Play
if BitBtn.Caption='Play' then
begin
//Включаем таймер
Timer.Enabled:=true;
//Меняем название кнопки
BitBtn.Caption:='Pause';
//Выводим строку с индексом line в лайьл
Result:=Memo.Lines.Strings[Line];
end
else
begin
//Выключаем таймер
Timer.Enabled:=false;
//Меняем название кнопки
BitBtn.Caption:='Play';
end
end;
function Stop(TrackBar:TTrackBar;Memo:Tmemo;BitBtn:TBitBtn;timer:Ttimer):string;
begin
//Выключаем таймер
Timer.Enabled:=false;
//Устанавливаем позицию тракбара на 0
TrackBar.Position:=0;
//Меняем название кнопки
BitBtn.Caption:='Play';
end;
function NextTrack(TrackBar:TTrackBar;Memo:Tmemo):string;
begin
//Устанавливаем позицию тракбара на 0
TrackBar.Position:=0;
//Переходим на строку назад
line:=line+1;
//Выводим строку с индексом line в лайьл
Result:=Memo.Lines.Strings[Line];
end;
function PreTrack(TrackBar:TTrackBar;Memo:Tmemo):string;
begin
//Устанавливаем позицию тракбара на 0
TrackBar.Position:=0;
//Переходим на строку назад
line:=line-1;
//Выводим строку с индексом line в лайьл
Result:=Memo.Lines.Strings[Line];
end;
end.
|