Toon posts:

Delphi probleempje

Pagina: 1
Acties:

Verwijderd

Topicstarter
Oke daar ik het probleem beter moest verklaren zal ik dat dan maar proberen.

Ik heb een media player geschreven in Delphi 6.0. Deze heeft een tweetal extra units, een voor het maken van een playlist. Deze unit werkt, je kan de playlist maken opslaan en bewerken. Hij wordt opgeslagen met als extentie .cpa

Daarna kun je em laden in de mediaplayer (dropdownbox).

Nu komt het:
Deze dropdownbox zal alleen de weergave moeten doen van de naam van de songs.
Ook zal ie na het laden gelijk moeten gaan spelen.
En zodra men een enkele song selecteerd en dan vervolgens op play drukt moet ie dus alleen die song spelen.

Tot slot zal de speler zelf altijd het liedje(of playlist) standaar moeten herhalen.

De code:
__________________________________________________________
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons, MPlayer, ExtCtrls, Gauges, Menus, ComCtrls, jpeg;

type
TForm1 = class(TForm)
Gauge1: TGauge;
OpenDialog1: TOpenDialog;
Timer1: TTimer;
StatusBar1: TStatusBar;
SpeedButton2: TSpeedButton;
SpeedButton3: TSpeedButton;
SpeedButton4: TSpeedButton;
SpeedButton5: TSpeedButton;
MediaPlayer1: TMediaPlayer;
MainMenu1: TMainMenu;
File1: TMenuItem;
Open1: TMenuItem;
N1: TMenuItem;
Exit1: TMenuItem;
Options1: TMenuItem;
Image1: TImage;
Image2: TImage;
Image3: TImage;
Image4: TImage;
Image5: TImage;
Panel1: TPanel;
Panel2: TPanel;
Panel3: TPanel;
Image6: TImage;
Panel4: TPanel;
Panel5: TPanel;
Panel6: TPanel;
Panel7: TPanel;
Memo1: TMemo;
Panel8: TPanel;
openMain: TOpenDialog;
Panel9: TPanel;
Panel10: TPanel;
playbox: TComboBox;
procedure Timer1Timer(Sender: TObject);
procedure MediaPlayer1Notify(Sender: TObject);
procedure MediaPlayer1Click(Sender: TObject; Button: TMPBtnType;
var DoDefault: Boolean);
procedure Open1Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure Exit1Click(Sender: TObject);
procedure Options1Click(Sender: TObject);
procedure SpeedButton5Click(Sender: TObject);
procedure SpeedButton4Click(Sender: TObject);
procedure SpeedButton3Click(Sender: TObject);
procedure Panel3Click(Sender: TObject);
procedure Panel2Click(Sender: TObject);
procedure Panel7Click(Sender: TObject);
procedure Panel5Click(Sender: TObject);
procedure Panel4Click(Sender: TObject);
procedure Panel9Click(Sender: TObject);
procedure Panel6Click(Sender: TObject);
procedure playboxClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

uses Unit2, MainFormU;

{$R *.DFM}

procedure TForm1.Timer1Timer(Sender: TObject);
begin
gauge1.Progress := mediaplayer1.position;
end;

procedure TForm1.MediaPlayer1Notify(Sender: TObject);
begin
timer1.Enabled := false;
statusbar1.Panels [0].Text:='';
end;

procedure TForm1.MediaPlayer1Click(Sender: TObject; Button: TMPBtnType;
var DoDefault: Boolean);
begin
timer1.Enabled := true;
statusbar1.Panels [0].text:= 'Plaing..';
end;

procedure TForm1.Open1Click(Sender: TObject);
begin
WITH OpenDialog1 DO
IF Execute THEN
BEGIN
Caption := 'Media Player -' +
ExtractFilename(filename);
MediaPlayer1.FileName := filename;
Filename:= '';
WITH MediaPLayer1 DO
BEGIN
open;
Gauge1.maxvalue := length;
Gauge1.progress := 0;
Timer1.enabled := true;
END;
END;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
timer1.Enabled := true;
statusbar1.Panels [0].text:= 'Plaing..';
mediaplayer1.Play ;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
mediaplayer1.Pause ;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
mediaplayer1.Stop;
mediaplayer1.Position := 0;
end;

procedure TForm1.SpeedButton2Click(Sender: TObject);
begin
mediaplayer1.play;
end;

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
close;
end;

procedure TForm1.Exit1Click(Sender: TObject);
begin
close;
end;

procedure TForm1.Options1Click(Sender: TObject);
begin
form2.showmodal;
end;

procedure TForm1.SpeedButton5Click(Sender: TObject);
begin
WITH OpenDialog1 DO
IF Execute THEN
BEGIN
Caption := 'CPA Media Player® } ' +
ExtractFilename( filename);
MediaPlayer1.FileName := filename;
Filename:= '';
WITH MediaPLayer1 DO
BEGIN
open;
Gauge1.maxvalue := length;
Gauge1.progress := 0;
Timer1.enabled := true;
END;
END;
end;

procedure TForm1.SpeedButton4Click(Sender: TObject);
begin
mediaplayer1.Stop ;
mediaplayer1.Rewind ;
gauge1.Progress := 0;
end;

procedure TForm1.SpeedButton3Click(Sender: TObject);
begin
mediaplayer1.Pause ;

end;

procedure TForm1.Panel3Click(Sender: TObject);
begin
if MessageBox(Handle,'Do you really want to exit?','Exit',MB_YESNO OR MB_IconWarning)=IDYES then
close;
end;

procedure TForm1.Panel2Click(Sender: TObject);
begin
Image6.visible := not Image6.visible;
end;

procedure TForm1.Panel7Click(Sender: TObject);
begin
panel6.Visible := not panel6.visible;
panel8.Visible := not panel8.visible;
panel9.Visible := not panel9.visible;
end;

procedure TForm1.Panel5Click(Sender: TObject);
begin
dd.showmodal;
end;

procedure TForm1.Panel4Click(Sender: TObject);

begin
//open de "open" dialoog
if openMain.Execute()=true then
begin
//laad de file tijdelijk in tmpMemo
Memo1.Lines.LoadFromFile(openMain.FileName);
//zet alle strings naar de list
Playbox.Items:=Memo1.Lines;
//maak tmpMemo leeg
Memo1.Lines.Clear();
Panel8.Caption:=openMain.Filename;
end;
end;


procedure TForm1.Panel9Click(Sender: TObject);
begin
{
maak de lijst "Selected" leeg
door de Items.Clear() functie
}
if MessageBox(Handle,'Do you want to clear the playlist?','Clear playlist',MB_ICONWARNING or MB_YESNOCANCEL)=IDYES then
begin
//Selected.Items.Clear();
playbox.Items.Clear();
end;

end;

procedure TForm1.Panel6Click(Sender: TObject);
begin
playbox.Visible := not playbox.visible;
panel6.Visible := not panel6.Visible;
end;

procedure TForm1.playboxClick(Sender: TObject);
begin
timer1.Enabled := true;
statusbar1.Panels [0].text:= 'Playing..';
mediaplayer1.Play ;
end;

end.
____________________________________________________________
Hopelijk is dit voldoende.

Ik ben als volgt te bereiken:
e-mail: delphi.help.code@infoadvocaten.nl
msn: zwedenweb@hotmail.com

al vast hartelijk dank.

  • jelmervos
  • Registratie: Oktober 2000
  • Niet online

jelmervos

Simple user

Eerst even dit:
• Dit topic zit in het verkeerde forum, het had beter in [forum=14] gekunt, vraag hem te moven maar niet cross-posten.
• Wil je code posten (en er dus voor zorgen dat je opmaakt behouden blijft) zet je code dan even tussen [ code] [ /code] (zonder spaties), dit maakt het leesbaar.
• Je post wel bijzonder veel code, probeer het geheel kleiner te maken, tot op het punt waar het probleem zit.
• Volgens mij ben je gewoon te bereiken via dit forum hoor, toch? Op die manier hebben andere mensen er ook nog iets aan als ze dit nog es na lezen.

Algemeen punt:
• Ik zie dat je nieuw bent, lees eerst alle FAQ's es door (ja, dat is saai ja). Het houdt het forum netjes en leesbaar.

Sucess verder op GoT!

"The shell stopped unexpectedly and Explorer.exe was restarted."


Verwijderd

Topicstarter
maar nu de hulp ...?

eerste even dit .... maar geen hulp

Verwijderd

Op dinsdag 02 april 2002 19:20 schreef admin2002 het volgende:
maar nu de hulp ...?

eerste even dit .... maar geen hulp
Die hulp is goed bedoeld :)
Het is verstandig om er dus naar te luisteren ;)

Zometeen komt er een mod langs die hier kan modereren en dit topic zal verplaatsen naar het juiste forum. In de tussentijd zou jij je post aan kunnen passen zoals jelmervos voorstelt :)

Dit kan je doen door op het volgende knopje te drukken: Afbeeldingslocatie: http://gathering.tweakers.net/global/templates/tweakers/images/icons/edit.gif

[edit]
Overigens zijn dit naar mijn mening wel dingen die je als programmeur gewoon zelf op moet kunnen lossen m.b.v. de helpfunctie van Delphi eventueel.

  • JohnD
  • Registratie: December 2001
  • Laatst online: 07-09 20:09

JohnD

Bernd

dus je wilt alleen de filename in de dropdown hebben terwijl toch het complete pad wordt opgeslagen?

databeest erachter hangen
is niet zo moeilijk. moet je maar ff uitzoeken. databeest maken met de database desktop en die in de dir van je project zetten. datasource erop en table erop en je kan beginnen! :+

Fear thy name as hell awakens
FKA SunStorms_Sletje


  • jelmervos
  • Registratie: Oktober 2000
  • Niet online

jelmervos

Simple user

Een hele database engine voor een simpele Media Player? Ben ke gek geworden ofzo? :?

"The shell stopped unexpectedly and Explorer.exe was restarted."


  • JohnD
  • Registratie: December 2001
  • Laatst online: 07-09 20:09

JohnD

Bernd

ja natuurlijk ga maar tijdelijke files gebruiken voor het terug zoeken naar een pad. lekker snel bij grote playlists. trouwens de database engine wordt zo niet gebruikt omdat de file in de project dir staat.

edit:
als je een beter ID hebt hoor ik het graag. altijd leerzaam.

Fear thy name as hell awakens
FKA SunStorms_Sletje


  • Just_a_Gamer
  • Registratie: November 2001
  • Laatst online: 00:00
gewoon opslaan op een ASCII filetje :?

Dat hebben we gedaan voor schoolproject. We moesten een competitiemanager schrijven (verder no comments :P ) Het werkt vrij goed als je niet te veel gegevens wilt opslaan enzo.

btw 3x dezelfde topic openen in de verkeerde forum is wel heeeel erg overdreven.

  • Mr.Nobody
  • Registratie: Oktober 2001
  • Niet online
'Plaing..';
das geen english :)

Opensource delphi componenten (http://www.delphi-jedi.org)


  • DR
  • Registratie: December 2000
  • Niet online

DR

-->P&W :*

  • beany
  • Registratie: Juni 2001
  • Laatst online: 19:30

beany

Meeheheheheh

Op dinsdag 02 april 2002 22:27 schreef Just_a_Gamer het volgende:
gewoon opslaan op een ASCII filetje :?

Dat hebben we gedaan voor schoolproject. We moesten een competitiemanager schrijven (verder no comments :P ) Het werkt vrij goed als je niet te veel gegevens wilt opslaan enzo.

btw 3x dezelfde topic openen in de verkeerde forum is wel heeeel erg overdreven.
Wel snel als je niet te veel gegevens wilt opslaan???? In QuickBASIC(good(?) old DOS) bakte ik een proggie die data opsloeg en ophaalde uit bestanden. Compleet met indexjes en zo. 1 miljoen records: onder de 2 secs(moeilijkste scenario). En dat op die oude bakken. Dus met een BEETJE proggen moet je met de machines van tegenwoordig massa's gegevens kunnen opslaan zonder een echte database te gebruiken en deze super snel weer te voorschijn kunnen toveren.

Ach ja, misschien dat we tegenwoordig verpest zijn door al doe DB's :?

Anyway, denk er gewoon ff goed over na, teken het desnoods en je komt er wel uit...

Dagelijkse stats bronnen: https://x.com/GeneralStaffUA en https://www.facebook.com/GeneralStaff.ua


  • Knutselsmurf
  • Registratie: December 2000
  • Laatst online: 10-09 09:02

Knutselsmurf

LED's make things better

Waarom direct een database? Neem een dropdownbox en een stringlist, vul die 1 op 1. De stringlist met de bestandsnamen en de dropdownbox met whatever je wilt laten zien. Via de index kun je vervolgens van een geselecteerd item in de dropdownbox naar de juiste bestandsnaam gaan.

- This line is intentionally left blank -


Verwijderd

Topicstarter
Op dinsdag 02 april 2002 21:32 schreef SunStorms_sletje het volgende:
dus je wilt alleen de filename in de dropdown hebben terwijl toch het complete pad wordt opgeslagen?

databeest erachter hangen
is niet zo moeilijk. moet je maar ff uitzoeken. databeest maken met de database desktop en die in de dir van je project zetten. datasource erop en table erop en je kan beginnen! :+
Hallo,
Nu moet men weten dat ik een beginner ben en nog geen database applicaties kan maken (ben gisteren nacht :Z net bij dat hoofdstuk aangekomen). Zou graag willen weten hoe dit te doen. Lijkt mij naar lezen van commentaar en dergelijke de meest doeltreffende manier.
Doch weten hoe dat aan te pakken doe ik niet. Ik hoop dat U me wilt helpen.

Al vast heel heel veel dank,

Kees :?
Pagina: 1