Stránka: 1 z 1
| [ Príspevkov: 11 ] | |
Autor | Správa |
---|
Registrovaný: 15.08.08 Prihlásený: 26.10.09 Príspevky: 46 Témy: 25 | 25 Bydlisko: Nové Mesto ... |
Cez activex mám v delphi 7 vložený windows media player a tomu dávam visible false
keď chcem niečo prehrať robím to takto:
WindowsMediaPlayer1.url:=cestaksuboru;
no a to je jediné čo som zistil
má to ešte nejaké možnosti ? zišlo by sa napríklad stav či sa ešte prehráva elbo už skončilo a podobne
|
|
Registrovaný: 12.10.06 Prihlásený: 01.01.25 Príspevky: 20604 Témy: 79 | 79 Bydlisko: Banska Byst... |
sak ked napises windowsmediaplayer1. (s bodkou na konci) tak ti vybehne autocomplete, a tam mas vsetko co vie ta komponenta pouzit a co podporuje.
_________________ Ryzen 7 3700X | SilentiumPC Fera 3 | Asrock X570M Pro4 | Kingston FURY 32GB DDR4 3600 MHz CL18 Beast Black | Gainward RTX4060 Ti Pegasus 8GB | Samsung 970evo Plus 250GB NVMe | Corsair MP510 1TB NVMe | Samsung 980 Pro 2TB NVMe | Corsair RM550x | 32" Samsung ViewFinity S60UA | 3x Noctua NF-S12B redux 1200 PWM Xiaomi 14T 256GB |
|
Registrovaný: 03.01.08 Prihlásený: 10.09.24 Príspevky: 185 Témy: 31 | 31 |
To ci pesnicka skoncila mozes zistit aj tak, ze komponentu Gauge (popripade ProgressBar) priradis prehravac.Position. To daj co timeru, nech sa ti to obnovuje. Jeho max hodnotu das ako prehravac.Length.
Prosim Vas, ja by som mal tiez otazky co sa tyka prehravacu:
1, Pridal som tlacidlo na "pretacanie" piesne. Avsak potrebujem, aby ked bude tlacidlo stlacene sa vykonalo toto (prehravac.Pause;
posuvanie_t.Enabled:=true;) a ked uvolnim tlacidlo tak toto( posuvanie_t.Enabled:=false;
prehravac.play;). Popripade while cyklus, ze pokym je tlacidlo stlacene aby to nieco vykonavalo. Ale nenasiel som nieco ako buttonpress
2, Mam vytvoreny subor IniFile, kde sa mi uklada playlist. Ten sa nasledne vypisuje do ListBoxu. Avsak potreboval by som, aby sa do ListBoxu vypisal iba nazov penicky. Niekde som cital nieco o ExtractFilePath ale nieviem si predstavit ako to pouzit.
Vopred dakujem
|
|
Registrovaný: 11.01.09 Prihlásený: 01.01.25 Príspevky: 1395 Témy: 10 | 10 Bydlisko: Hrinova |
1.) dá sa to napríklad takto: V OnMouseDown tlačidla sa bude vykonávať kód a OnMouseUp sa dá povel na ukončenie vykonávania. Mohlo by to vyzerať nasledovne:
Kód: var start: boolean = false;
(* ... *)
procedure TForm1.Button1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin
start:= true;
while start do begin
// potrebný kód ...
Application.ProcessMessages;
end;
end;
procedure TForm1.Button1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin
start:= false;
end;
2.) Názov súboru sa získa pomocou funkcie ExtractFileName, ktorého parameter je celá cesta k súboru (ExtractFilePath extrahuje cestu, teda všetko okrem názvu).
|
|
Registrovaný: 03.01.08 Prihlásený: 10.09.24 Príspevky: 185 Témy: 31 | 31 |
1, Toto som vyriesil uz trochu inak ale skusim to aj takto, ci to bude lepsie
2, Tu je problem, ze do toho listboxu davam TStringList. Pre lepsiu predstavu, tu mas kod kde s tym pracujem
Kód: var pauza: boolean; prehravac: TMediaPlayer; skladby: TStringList; ini:TIniFile; procedure TForm1.FormCreate(Sender: TObject); var i: Integer; begin ini:= TIniFile.Create(ExtractFilePath(Application.ExeName)+'\nastaveni.ini'); skladby:= TStringList.Create; ini.ReadSection('skladby',skladby); for i := 0 to skladby.Count -1 do playlist.Items.Add(ini.ReadString('skladby',skladby.Strings[i],'')); playlist.ItemIndex:=ini.ReadInteger('ostatni','aktualni',0); skladby.free; ini.free; prehravac:=TMediaPlayer.Create(Form1); prehravac.Parent:=Form1; prehravac.Visible:=false;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); var ini:TIniFile; i: integer; begin prehravac.Free; ini:=TIniFile.Create(ExtractFilePath(Application.ExeName)+'\nastaveni.ini'); ini.EraseSection('skladby');
for i := 0 to playlist.Items.Count-1 do begin ini.WriteString('skladby', IntToStr(i), playlist.Items.Strings[i]); end; ini.WriteInteger('ostatni','aktualni', playlist.ItemIndex); ini.Free; end;
procedure TForm1.pridat_soubor_btnClick(Sender: TObject); begin opendialog1.execute(); playlist.Items.AddStrings(opendialog1.files);
|
|
Registrovaný: 11.01.09 Prihlásený: 01.01.25 Príspevky: 1395 Témy: 10 | 10 Bydlisko: Hrinova |
Z riadku:
Kód: ini:= TIniFile.Create(ExtractFilePath(Application.ExeName)+'\nastaveni.ini'); odstráň v +'\nastaveni.ini' lomítko, pretože ExtractFilePath ho už obsahuje (asi to funguje aj takto, keďže si nič nehlásil, ale správny zápis by mal byť tento). Pridávanie do ListBoxu som našiel iba v tele procedúry OnClick tlačidla pridat_soubor_btn. Takže úprava: Kód: if OpenDialog1.Execute then playlist.Items.Add( ExtractFileName(OpenDialog1.FileName) );
|
|
Registrovaný: 03.01.08 Prihlásený: 10.09.24 Príspevky: 185 Témy: 31 | 31 |
JJ, funguje to
Problém nastáva, že keď aj označím viac pesničiek, tak sa mi pridá iba jedna. Multiselect v opendialogu mám povolený - teda každý názov sa mi dáva do úvodzoviek ;-)
Ešte by som sa chcel spýtať - kde sa možem pokračovať učiť v delphi? Pretože väčšinu seriálov som už prešiel a knižku som nenašiel žiadnu.
|
|
Registrovaný: 11.01.09 Prihlásený: 01.01.25 Príspevky: 1395 Témy: 10 | 10 Bydlisko: Hrinova |
Aha, máš MultiSelect, tak v tom prípade to uprav takto:
Kód: if OpenDialog1.Execute then for i:= 0 to (OpenDialog1.Files.Count - 1) do Memo1.Lines.Add( ExtractFileName(OpenDialog1.Files[i]) );
Snáď to už je dobre
Odkiaľ sa učiť? Myslím, že ak človek ovláda jazyk na pokročilej úrovni, tak úplne stačí niečo vygoogliť a učiť sa. Buď nejaký seriál, alebo nejaké "triky", ktoré sa môžu hodiť. Ak nemáš šajnu, kde začať, na http://www.builder.cz chodievali dosť dobré seriály o čomkoľvek - či už jednoduché vizuálne aplikácie, konvertovanie grafických formátov, hry s využitím DelphiX, práca s portami, databázy, pluginy do winampu, atď. Je z čoho vyberať.
|
|
Registrovaný: 03.01.08 Prihlásený: 10.09.24 Príspevky: 185 Témy: 31 | 31 |
Funguje to Akurát, playlist sa uloží ale pri druhom spustení vyhodí chybu. (pri inicializaci MCI nastala chyba). Asi bude niekde len drobná chybička, tak to pozriem Mohol by si mi, prosím ťa, napísať príkaz, aby miesto Caption buttonu bol nejaký obrázok?:)
Neviem či na pokročilej úrovni. Ovládam cykly, podmienky, vlastné funckie, procedúry, polia, triedy, záznamy (čiže trochu aj OOP) a tu už väščina seriálov končí Ale ten builder.cz sa mi pozdáva
|
|
Registrovaný: 03.01.08 Prihlásený: 10.09.24 Príspevky: 185 Témy: 31 | 31 |
Našiel som problém ten problém. Ide o to, že si nezapamätá cestu k tomu adresáru, čiže pri opätovnom spustení vyhodí chybu (pokiaľ sa pesnička nenachádza v priečinku s Delphi). Napadlo mi, že z opendialogu by sa mohli tie piesne ukladat do toho ini súboru (extractfilepath) a playlist by sa mohol odtiaľ načítavať(extractfilename). Zajtra večer to skúsim tak nejak spraviť, dám vedieť
|
|
Registrovaný: 11.01.09 Prihlásený: 01.01.25 Príspevky: 1395 Témy: 10 | 10 Bydlisko: Hrinova |
Draco píše: Mohol by si mi, prosím ťa, napísať príkaz, aby miesto Caption buttonu bol nejaký obrázok?
Sorry, až teraz som si všimol tú otázku. Ak chceš mať v buttone obrázok, tak namiesto klasického použi SpeedButton (v záložke Additional). V Object Inspectore vyber položku Glyph a vyhľadaj si obrázok (*.bmp)
|
|
Stránka: 1 z 1
| [ Príspevkov: 11 ] | |
|