Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.03.2016, 09:33   #1
beegl
instagram
Участник клуба
 
Аватар для beegl
 
Регистрация: 24.05.2008
Сообщений: 1,451
Лампочка пятизвездочная репутация, как в плеерах

Добдень! A вот ещё, подскажите простенький алгоритм, как сохранять позицию TrackBar в реестре (мин. 1, макс. 5 - пятизвездочная репутация, как в плеерах) не используя sqlite3.dll. Есть 140 GIF-"клипов/треков" - камасутры, и для каждой GIF-"картинки/трека" задавать пятизвездочную репутацию, как в плеерах))

Модератор: Последнее китайское предупреждение!

пока так сохраняю и загружаю:

Код:
procedure TKamasutraForm.Loads;
var
   RegIniFile:TRegIniFile;
begin
 RegIniFile:=TRegIniFile.Create('Software');
 RegIniFile.OpenKey('Kamasutra Tools',true);
 RegIniFile.OpenKey('Kamasutra Tools-Open',true);
 begin
 RegIniFile.ReadInteger('KamasutraForm','StarProgressPositionZx',StarProgress.Position);
 RegIniFile.Free;
end;
end;

Код:
procedure TKamasutraForm.Saves;
var
   RegIniFile:TRegIniFile;
begin
 RegIniFile:=TRegIniFile.Create('Software');
 RegIniFile.OpenKey('Kamasutra Tools',true);
 RegIniFile.OpenKey('Kamasutra Tools-Open',true);
 begin
 RegIniFile.WriteInteger('KamasutraForm','StarProgressPositionZx',StarProgress.Position);
 RegIniFile.Free;
end;
end;
а так листаю GIF-картинки: .. до каждого имени файла как-то надо присвоить StarProgress.Position - (мин. 1, макс. 5 - пятизвездочная репутация, как в плеерах)

Код:
procedure TKamasutraForm.NavigationButton1Click(Sender: TObject);
begin
TrackBarGIF.Position := TrackBarGIF.Position + 1;
if TrackBarGIF.Position >= 139 then
TrackBarGIF.Position := 1;
if FileExists(ExtractFilePath(Application.ExeName) + 'IMG\SEX' + IntToStr(TrackBarGIF.Position) +'.GIF') then
begin
DisplayGIF.Image.LoadFromFile(ExtractFilePath(Application.ExeName) +'IMG\SEX' + IntToStr(TrackBarGIF.Position) +'.GIF');
end; end;

Последний раз редактировалось Человек_Борща; 15.03.2016 в 14:13. Причина: add text
beegl вне форума Ответить с цитированием
Старый 09.03.2016, 09:40   #2
Iron Monk
Форумчанин
 
Аватар для Iron Monk
 
Регистрация: 05.10.2007
Сообщений: 478
По умолчанию

А чо не видос запостил?
Iron Monk вне форума Ответить с цитированием
Старый 09.03.2016, 10:31   #3
beegl
instagram
Участник клуба
 
Аватар для beegl
 
Регистрация: 24.05.2008
Сообщений: 1,451
По умолчанию

Цитата:
Сообщение от Iron Monk Посмотреть сообщение
А чо не видос запостил?
обзор приложения, в описании ссылка на скачивание:

обзор программы на ютуб

может пропустить через массив

Код:
procedure TKamasutraForm.CoutStarGIF;
type
    MyType = record
    StarGIF: string[139];
  end;
var
  i: byte;
  m: array of MyType;
begin
  for i := 0 to 138 do // нумерация элементов начинается с нуля!
  begin
    SetLength(m, Length(m) + 1); // увеличение длины массива на 1
    m[i].StarGIF := inttostr(i);
//    n!
  end;
  SetLength(m, 0); // освобождение памяти
end;

Последний раз редактировалось beegl; 09.03.2016 в 12:11. Причина: edit lnk
beegl вне форума Ответить с цитированием
Старый 14.03.2016, 12:07   #4
beegl
instagram
Участник клуба
 
Аватар для beegl
 
Регистрация: 24.05.2008
Сообщений: 1,451
По умолчанию

один трекбар на 140 а второй 5, надо для каждой позиции 140-го трекбара сохранять 5-ти трекбарную оценку.

+ имя файла, а как бы его объединить не громоздким кодом Label1.Caption с условием

т.е. if Label1.Caption = 'GIF' then StarProgress.Position := 4;

- где Label1.Caption - имя файла

Код:
 StarProgress.Position := RegIniFile.ReadInteger('KamasutraForm', 'StarProgressPositionZx' + GifName, StarProgress.Position);
Или есть лучший алгоритм?)

Последний раз редактировалось beegl; 14.03.2016 в 13:05. Причина: add code
beegl вне форума Ответить с цитированием
Старый 15.03.2016, 13:46   #5
beegl
instagram
Участник клуба
 
Аватар для beegl
 
Регистрация: 24.05.2008
Сообщений: 1,451
По умолчанию

как бы его сохранять для 140 файлов? .. что, делать 140 if then?

Цитата:
if Label1.Caption = 'SEX1.GIF' then
StarProgress.Position := RegIniFile.ReadInteger('KamasutraFo rm', 'StarProgressPositionZx', StarProgress.Position);
N if then
beegl вне форума Ответить с цитированием
Старый 15.03.2016, 14:17   #6
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Цитата:
Есть 140 GIF-"клипов/треков" - камасутры, и для каждой GIF-"картинки/трека" задавать пятизвездочную репутацию, как в плеерах))
Вам не нужно делать IF ы и прочую фигню. А вас есть имя файла/отностиельный путь к файлу и его оценка. Записываете эту информацию и все, предварительно организовав поиск "есть ли в файле уже инфа с оценкой этого трека, если есть, то обновлять запись, иначе создать новую".

Напримере того же INI:
Код:
var
 ini, i, j .....
 begin
  ini := TiniFile.Create('TracksRatio.ini');
  if not RecordExists(ini, 'ПУТЬ К ФАЙЛУ', j) then //Напишите её сами. в обекте INI перебирает все секции TrackInfo и сравнивает имя файла, если находит, возвращает TRUE, и в переменную J вставляет номер
  begin
  j := ini.readInteger('main','total',0) + 1;
  ini.writeInteger('main','total',j); //обновлем счетчик для новой записи
  end;
  ini.writeString('TrackInfo_'+IntToStr(j),'File','ПУТЬ К ФАЙЛУ');
  ini.writeInteger('TrackInfo_'+IntToStr(j),'Ratio',ОЦЕНКА ВВИДЕ ЧИСЛА);
  
end;

Последний раз редактировалось Человек_Борща; 15.03.2016 в 14:38.
Человек_Борща вне форума Ответить с цитированием
Старый 15.03.2016, 20:32   #7
beegl
instagram
Участник клуба
 
Аватар для beegl
 
Регистрация: 24.05.2008
Сообщений: 1,451
Лампочка

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение

Код:
if not RecordExists(ini, 'ПУТЬ К ФАЙЛУ', j) then
подскажите, какой модуль подключить для RecordExists (D7)?
beegl вне форума Ответить с цитированием
Старый 15.03.2016, 22:33   #8
vlad1389
Форумчанин
 
Регистрация: 02.02.2016
Сообщений: 290
По умолчанию

beegl Комментарий к строке прочти ещё раз. В особенности первые три слова.
vlad1389 вне форума Ответить с цитированием
Старый 16.03.2016, 06:30   #9
beegl
instagram
Участник клуба
 
Аватар для beegl
 
Регистрация: 24.05.2008
Сообщений: 1,451
Лампочка

Цитата:
Сообщение от vlad1389 Посмотреть сообщение
beegl Комментарий к строке прочти ещё раз. В особенности первые три слова.
тогда напишите нормальный пример, я ничего там не понимаю
beegl вне форума Ответить с цитированием
Старый 23.03.2016, 16:25   #10
beegl
instagram
Участник клуба
 
Аватар для beegl
 
Регистрация: 24.05.2008
Сообщений: 1,451
По умолчанию

Привет. Что-то не получается, не сохраняет. В чем ошибка?

Код:
//Save star
procedure TKamasutraForm.IntertelecomSaveStar;
begin
case
   ini := TiniFile.Create(ExtractFilePath(ParamStr(0)) + 'SaveStar.ini');
   if TrackBarGIF.Position = 1 then
   begin
   ini.WriteInteger('StarProgressDef', 'StarProgress1', StarProgress.Position); end else
   if TrackBarGIF.Position = 2 then
   begin
   ini.WriteInteger('StarProgressDef', 'StarProgress2', StarProgress.Position); end else
   if TrackBarGIF.Position = 3 then
   begin
   ini.WriteInteger('StarProgressDef', 'StarProgress3', StarProgress.Position); end else
   if TrackBarGIF.Position = 4 then
   begin
   ini.WriteInteger('StarProgressDef', 'StarProgress4', StarProgress.Position); end else
   if TrackBarGIF.Position = 5 then
   begin
   ini.WriteInteger('StarProgressDef', 'StarProgress5', StarProgress.Position); end else
   if TrackBarGIF.Position = 6 then
   begin
   ini.WriteInteger('StarProgressDef', 'StarProgress6', StarProgress.Position);end;
   ini.Destroy;
end;
Код:
//Load star
procedure TKamasutraForm.IntertelecomLoadStar;
begin
   ini := TiniFile.Create(ExtractFilePath(ParamStr(0)) + 'SaveStar.ini');
   if TrackBarGIF.Position = 1 then
   begin
   ini.ReadInteger('StarProgressDef', 'StarProgress1', StarProgress.Position); end else
   if TrackBarGIF.Position = 2 then
   begin
   ini.ReadInteger('StarProgressDef', 'StarProgress2', StarProgress.Position); end else
   if TrackBarGIF.Position = 3 then
   begin
   ini.ReadInteger('StarProgressDef', 'StarProgress3', StarProgress.Position); end else
   if TrackBarGIF.Position = 4 then
   begin
   ini.ReadInteger('StarProgressDef', 'StarProgress4', StarProgress.Position); end else
   if TrackBarGIF.Position = 5 then
   begin
   ini.ReadInteger('StarProgressDef', 'StarProgress5', StarProgress.Position); end else
   if TrackBarGIF.Position = 6 then
   begin
   ini.ReadInteger('StarProgressDef', 'StarProgress6', StarProgress.Position); end;
   ini.Destroy;
end;
beegl вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Репутация Афанасий[vedma] Свободное общение 9 13.07.2012 14:43
Репутация как валюта - ds.Dante раздаёт должности в правительстве РФ. дума избирается здесь же. ds.Dante О форуме и сайтах клуба 35 01.08.2011 14:19
Репутация Яр|/||< (^_^) Свободное общение 6 27.03.2010 10:54
Репутация? VintProg О форуме и сайтах клуба 9 04.08.2009 14:01
Репутация RealSHELS Свободное общение 1 05.05.2008 00:10