-
Total de itens
9.657 -
Registro em
Tudo que Jhonas postou
-
seria isso ? procedure TForm1.Button1Click(Sender: TObject); begin Form1.WindowState := wsMinimized; if Form1.WindowState = wsMinimized then showmessage('Minimizou'); end; se não for tente esse http://www.activedelphi.com.br/forum/viewtopic.php?t=43079 abraço
-
tente isso procedure TForm1.Button1Click(Sender: TObject); var i : integer; begin Form1.WindowState := TWindowState.wsMinimized; end; ou veja esse link http://firemonkeylessons.blogspot.com.br/2014/06/FormMinimize.html abraço
-
Verificação de Usuario e Senha usando Delphi XE7 e BD Mysql
pergunta respondeu ao Giovane Amorim de Jhonas em Delphi, Kylix
veja se é esse o exemplo que voce seguiu ... se for voce pode trocar os componentes de acesso a tabela ( MYSQL ) o resto é igual http://programadoronline.blogspot.com.br/2012/03/login-delphi-banco-de-dados.html abraço -
amigo, é só testar o fim do arquivo dentro do timer if Query1.Eof then begin timer1.Enabled := false; MediaPlayer1.Stop; end; abraço
-
mas se quiser usar o DBgrid tem que fazer algumas alterações no código unit USalvaMP3; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Provider, DB, DBClient, DBTables, StdCtrls, MPlayer, Grids, DBGrids, ExtCtrls, DBCtrls, Gauges, ComCtrls, MMSystem; type TForm1 = class(TForm) Button1: TButton; Query1: TQuery; DataSource1: TDataSource; OpenDialog1: TOpenDialog; MediaPlayer1: TMediaPlayer; Button2: TButton; Query1NOME: TStringField; Query1MP3: TBlobField; DBGrid1: TDBGrid; DBNavigator1: TDBNavigator; Timer1: TTimer; Gauge1: TGauge; TrackBar1: TTrackBar; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure FormActivate(Sender: TObject); procedure DBGrid1CellClick(Column: TColumn); procedure Timer1Timer(Sender: TObject); procedure TrackBar1Change(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; nome_musica : string; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin If opendialog1.Execute Then begin // musica selecionada na pasta nome_musica := opendialog1.filename; // gravar na tabela Query1.Active := false; Query1.Active := true; Query1.Last; Query1.Insert; Query1.Edit; Query1NOME.Value := nome_musica; Query1MP3.LoadFromFile(nome_musica); Query1.Post; showmessage('Musica Salva'); end; end; procedure TForm1.Button2Click(Sender: TObject); begin Query1.Active := false; Query1.Active := true; MediaPlayer1.Close; // tirar a musica da tabela e salvar no disco Query1MP3.SaveToFile('c:\musica.mp3'); // abrir a musica pelo MediaPlayer e tocar MediaPlayer1.FileName := 'c:\musica.mp3'; MediaPlayer1.Open; MediaPlayer1.Play; end; procedure TForm1.FormActivate(Sender: TObject); begin Query1.Active := false; Query1.Active := true; timer1.Enabled := false; TrackBar1Change(sender); end; procedure TForm1.DBGrid1CellClick(Column: TColumn); begin MediaPlayer1.Close; // tirar a musica da tabela e salvar no disco Query1MP3.SaveToFile('c:\musica.mp3'); // abrir a musica pelo MediaPlayer e tocar MediaPlayer1.FileName := 'c:\musica.mp3'; MediaPlayer1.Open; Gauge1.MaxValue := MediaPlayer1.Length; MediaPlayer1.Play; timer1.Enabled := true; end; procedure TForm1.Timer1Timer(Sender: TObject); begin Gauge1.Refresh; if Gauge1.MaxValue <> 0 then Gauge1.Progress := MediaPlayer1.Position; if Gauge1.Progress = Gauge1.MaxValue then begin Gauge1.Progress := 0; MediaPlayer1.Close; Query1.Next; // tirar a musica da tabela e salvar no disco Query1MP3.SaveToFile('c:\musica.mp3'); // abrir a musica pelo MediaPlayer e tocar MediaPlayer1.FileName := 'c:\musica.mp3'; MediaPlayer1.Open; MediaPlayer1.Play; TrackBar1Change(sender); end; end; procedure TForm1.TrackBar1Change(Sender: TObject); var Count , i : longint; // 4369 begin Count := waveOutGetNumDevs; for i := 0 to Count do begin waveOutSetVolume(i,longint(TrackBar1.position*1369)*65536+longint(TrackBar1.position*1369)); end; end; end. abraço
-
é igual como no listbox só que nesse caso, voce vai substituir o ListBox pelo DBListBox1 na propriedade DataField = MP3 na propriedade DataSource = DataSource1 o DBListBox1 vai ter a lista de suas musicas o resto continua igual abraço
-
na propriedade ResquestLive da Query deixe como true ou coloque no código // gravar na tabela Query1.ResquestLive := true; Query1.Active := false; Query1.Active := true; abraço
-
por causa desse calculo .... para o valor de 1369 o Trackbar tem que ser 22 para não sumir o som waveOutSetVolume(i,longint(TrackBar1.position*1369)*65536+longint(TrackBar1.position*1369)); se voce colocar no calculo o valor 4369 o Trackbar tem que ser 13 voce pode tentar usar a rotina de som do seu primeiro código, e ver o resultado abraço
-
ok... qualquer dúvida ... poste abraço
-
OLE até 240 Mb .... mas voce não vai precisar mais do 6 Mb por musica abraço
-
Mesmo que tenha um titulo diferente fica no lugar da anterior ? sim pensei como tem titulo diferente criaria novo file ? a musica que sera salva na tabela, vai ficar com o titulo original a musica que sera tocada, terá sempre o mesmo nome ( musica.mp3) , mas voce pode mostrar o titulo original no Form abraço
-
quando voce tira da tabela para reproduzir, ela fica no disco . mas quando voce seleciona outra, essa vai ficar no lugar da outra. então voce terá no disco apenas uma musica, que voce pode apagar, se quiser, ao final da musica. abraço
-
ok... fiz um codigo bem simples para voce entender unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Provider, DB, DBClient, DBTables, StdCtrls, MPlayer, Grids, DBGrids, ExtCtrls, DBCtrls; type TForm1 = class(TForm) Button1: TButton; Query1: TQuery; DataSource1: TDataSource; OpenDialog1: TOpenDialog; MediaPlayer1: TMediaPlayer; Button2: TButton; Query1NOME: TStringField; Query1MP3: TBlobField; DBGrid1: TDBGrid; DBNavigator1: TDBNavigator; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure FormActivate(Sender: TObject); procedure DBGrid1CellClick(Column: TColumn); private { Private declarations } public { Public declarations } end; var Form1: TForm1; nome_musica : string; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin If opendialog1.Execute Then begin // musica selecionada na pasta nome_musica := opendialog1.filename; // gravar na tabela Query1.Active := false; Query1.Active := true; Query1.Last; Query1.Insert; Query1.Edit; Query1NOME.Value := nome_musica; Query1MP3.LoadFromFile(nome_musica); Query1.Post; showmessage('Musica Salva'); end; end; procedure TForm1.Button2Click(Sender: TObject); begin Query1.Active := false; Query1.Active := true; MediaPlayer1.Close; // tirar a musica da tabela e salvar no disco Query1MP3.SaveToFile('c:\musica.mp3'); // abrir a musica pelo MediaPlayer e tocar MediaPlayer1.FileName := 'c:\musica.mp3'; MediaPlayer1.Open; MediaPlayer1.Play; end; procedure TForm1.FormActivate(Sender: TObject); begin Query1.Active := false; Query1.Active := true; end; procedure TForm1.DBGrid1CellClick(Column: TColumn); begin MediaPlayer1.Close; // tirar a musica da tabela e salvar no disco Query1MP3.SaveToFile('c:\musica.mp3'); // abrir a musica pelo MediaPlayer e tocar MediaPlayer1.FileName := 'c:\musica.mp3'; MediaPlayer1.Open; MediaPlayer1.Play; end; end. OBS: SELECT * FROM MP3 essa é a select que esta dentro da query1 ( SQL ) no lugar do MediaPlayer voce pode usar o código anterior .... só fiz com ele para ficar mais facil procedure TForm1.Button8Click(Sender: TObject); begin OpenMP3('c:\musica.mp3'); Gauge1.MaxValue := GetMP3Len; PlayMP3; Timer1.Enabled := true; end; voce só terá que modificar o código, para colocar a rotina de salvar a musica no banco de dados e depois tira-la para tocar abraço
-
voce tem no delphi 3 a paleta Data Access ? se não tiver eu mudo aqui
-
Ok... use o Database Desktop do delphi para criar a sua tabela ( Paradox ) vamos criar uma tabela bem simples nome ( A ) ( 30 ) //// campo alfanumerico para o nome da musica mp3 ( O ) ( 5 ) //// campo OLE para a musica MP3 de tamanho max de 5 Mb OBS: depois se voce quiser voce pode incrementar mais coisas ------------------------------------------------------------------------- depois crie uma nova aplicação coloque esses componentes para acesso a tabela paradox e faça os links entre os componentes e a tabela Query1 - DataSetProvider1 - ClientDataSet1 - DataSource1 ------------------------------------------------------------------------- vou criar um código para voce ver como fazer
-
qual é o banco de dados que voce quer usar... Paradox ou outro ?
-
ok... fica valendo esse agora para contornar esse problema, basta voce testar se o arquivo existe If not(fileexists(' C:\Lionel\ACD\ACDC If You Want Blood (You Got It)(Official Audio).mp3 ')) then Showmessage('Arquivo inexistente'); ou seja, quando voce escolher a musica, voce deve testar, para ver se ela existe na pasta outra solução seria voce salvar as suas musicas em uma tabela no delphi, atraves de um campo tipo BLOB abraço
-
se voce não entender lógica de programação, as outras coisas ficarão mais dificeis vejas esses links https://www.google.com.br/search?q=cursos+de+lógica+de+programação&ie=utf-8&oe=utf-8&client=firefox-b&gws_rd=cr&ei=TCqWWKKJDIm5wAShspfwCg para quem não tem conhecimento algum sobre linguagens de programação, começe por aquela que seja de mais facil entendimento e aprendizado exemplo: alguns sites tem cursos basicos gratis para voce aprender ( algoritmos e fluxogramas .. etc ) https://www.google.com.br/search?q=cursos+de+lógica+de+programação&ie=utf-8&oe=utf-8&client=firefox-b&gws_rd=cr&ei=TCqWWKKJDIm5wAShspfwCg#q=cursos+basicos+de+informatica+gratis como autodidata, esses cursos vão te dar o empurrão para começar depois faça os cursos em escolas com certificados legais por fim, a área de informática é bem ampla .... tudo vai depender de sua disposição, dedicação, paciencia, e muita determinação para alcançar esse objetivo P.S. Só pra esclarecer: a hipótese-Python só surgiu porque me interessei demais ao ler sobre a linguagem, sua simplicidade, versatilidade, etc. se voce gostou, faça ... tudo o que voce aprende, em algum dia lhe será util o sucesso vem com a experência abraço
-
é possível construir uma carreira "apenas" com cursos específicos, certificados e autodidatismo? é possivel sim ... mas se quiser um cargo senior, além de experiência vai precisar de um diploma universitário ( o que ajuda muito no curriculum e no salário ) mas se quiser trabalhar como freelancer, voce tambem vai ganhar bem ( só não pegue serviços que não poderá entregar no prazo do cliente ) com relação aos cursos, sempre escolha escolas com boa reputação de ensino e com diplomas certificados por orgãos competentes. já que voce não tem conhecimento algum sobre programação, sugiro a sua 1ª opção abraço
-
aqui isto está funcionando ... quando a musica muda, o listbox mostra qual a musica está tocando voce deve tentar descobrir ai, o motivo ... abraço
-
eu já coloquei isso ... não viu ? procedure TForm1.Timer1Timer(Sender: TObject); begin Gauge1.Refresh; if Gauge1.MaxValue <> 0 then Gauge1.Progress := GetMP3Pos; if Gauge1.Progress = Gauge1.MaxValue then begin Gauge1.Progress := 0; CloseMP3; if listbox1.itemindex+1 <= ListBox1.Items.Count then begin fname := ListBox1.Items.Strings[listbox1.itemindex+1]; // mostrar qual musica da lista esta tocando ListBox1.ItemIndex := listbox1.itemindex+1; end else Timer1.Enabled := false; OpenMP3(fname); PlayMP3; TrackBar1Change(sender); end; end; abraço
-
é só fazer essa modificação procedure TForm1.ListBox1Click(Sender: TObject); begin StopMP3; CloseMP3; fname := ListBox1.Items.Strings[listbox1.itemindex]; Gauge1.Progress := 0; Timer1.Enabled := false; Button8.Click; end; basta clicar na musica que voce quer ouvir abraço
-
amigo, era só corrigir isso no Timer procedure TForm1.Timer1Timer(Sender: TObject); begin Gauge1.Refresh; if Gauge1.MaxValue <> 0 then Gauge1.Progress := GetMP3Pos; if Gauge1.Progress = Gauge1.MaxValue then begin Gauge1.Progress := 0; CloseMP3; if listbox1.itemindex+1 <= ListBox1.Items.Count then begin fname := ListBox1.Items.Strings[listbox1.itemindex+1]; // mostrar qual musica da lista esta tocando ListBox1.ItemIndex := listbox1.itemindex+1; end else Timer1.Enabled := false; OpenMP3(fname); PlayMP3; TrackBar1Change(sender); end; end; basta fazer essa mudança nessas procedures para rodar no Delphi 3 procedure ForwardMP3; //(ToPlace: LongInt = 1); var TmpStr: PChar; begin GetMem(TmpStr, 128); mciSendString(PChar('set mp time format milliSeconds'), nil, 0, 0); mciSendString(PChar('status mp position wait'), TmpStr, 128, 0); mciSendString(PChar('play mp from ' + IntToStr(StrToInt(TmpStr) + 1 )), nil, 0, 0); mciSendString(PChar('set mp time format tmsf'), nil, 0, 0); FreeMem(TmpStr); end; procedure RewindMP3; //(ToPlace: LongInt = 1); var TmpStr: PChar; begin GetMem(TmpStr, 128); mciSendString(PChar('set mp time format milliSeconds'), nil, 0, 0); mciSendString(PChar('status mp position wait'), TmpStr, 128, 0); mciSendString(PChar('play mp from ' + IntToStr(StrToInt(TmpStr) - 1 )), nil, 0, 0); mciSendString(PChar('set mp time format tmsf'), nil, 0, 0); FreeMem(TmpStr); end; ---------------------------------------------------------------------- procedure SetMP3Pos; //(ToPlace: LongInt = 1); begin mciSendString(PChar('set mp time format milliSeconds'), nil, 0, 0); mciSendString(PChar('play mp from ' + IntToStr(1)), nil, 0, 0); mciSendString(PChar('set mp time format tmsf'), nil, 0, 0); end; OBS: onde estava a variavel ToPlace no código coloque 1 abraço
-
então tire as procedures que estão dando erro ... não vai precisar delas procedure ForwardMP3(ToPlace: LongInt = 1); procedure RewindMP3(ToPlace: LongInt = 1); abraço
-
crie um novo projeto e crie novamente esse form do zero com esse código não mude nada ... compile e execute .... depois faça as suas modificações OBS: é só copiar e colar no seu form e acrescentar os componentes e fazer os links dos componentes Outra coisa, foi compilado em delphi 7 o timer voce deixa false antes de exeutar o programa Timer1.Enabled := false; unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls,MMSystem, Forms, Dialogs, StdCtrls, MPlayer, ComCtrls, ExtCtrls, Gauges; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; Button3: TButton; Button4: TButton; Button5: TButton; Button6: TButton; Button7: TButton; Button8: TButton; ListBox1: TListBox; TrackBar1: TTrackBar; Button9: TButton; OpenDialog1: TOpenDialog; SaveDialog1: TSaveDialog; Timer1: TTimer; Gauge1: TGauge; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button8Click(Sender: TObject); procedure Timer1Timer(Sender: TObject); procedure Button4Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button5Click(Sender: TObject); procedure Button6Click(Sender: TObject); procedure ListBox1Click(Sender: TObject); procedure TrackBar1Change(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; fname : string; //FileName i : integer = 0; implementation {$R *.DFM} procedure TForm1.TrackBar1Change(Sender: TObject); var Count , i : longint; // 4369 begin Count := waveOutGetNumDevs; for i := 0 to Count do begin waveOutSetVolume(i,longint(TrackBar1.position*1369)*65536+longint(TrackBar1.position*1369)); end; end; procedure TForm1.Button1Click(Sender: TObject); begin If opendialog1.Execute = True Then //Shows open dialog begin fname := opendialog1.filename; //Makes fname the filename selected (If one was selected) listbox1.items.add(opendialog1.filename); //Add it to the list box end; end; procedure OpenMP3(FileName: String); begin mciSendString(PChar('open "' + FileName + '" alias mp wait'), nil, 0, 0); end; procedure PlayMP3; begin mciSendString(PChar('play mp'), nil, 0, 0); end; procedure StopMP3; begin mciSendString(PChar('stop mp'), nil, 0, 0); end; procedure PauseMP3; begin mciSendString(PChar('pause mp'), nil, 0, 0); end; procedure CloseMP3; begin mciSendString(PChar('close mp'), nil, 0, 0); end; procedure ForwardMP3(ToPlace: LongInt = 1); var TmpStr: PChar; begin GetMem(TmpStr, 128); mciSendString(PChar('set mp time format milliSeconds'), nil, 0, 0); mciSendString(PChar('status mp position wait'), TmpStr, 128, 0); mciSendString(PChar('play mp from ' + IntToStr(StrToInt(TmpStr) + ToPlace)), nil, 0, 0); mciSendString(PChar('set mp time format tmsf'), nil, 0, 0); FreeMem(TmpStr); end; procedure RewindMP3(ToPlace: LongInt = 1); var TmpStr: PChar; begin GetMem(TmpStr, 128); mciSendString(PChar('set mp time format milliSeconds'), nil, 0, 0); mciSendString(PChar('status mp position wait'), TmpStr, 128, 0); mciSendString(PChar('play mp from ' + IntToStr(StrToInt(TmpStr) - ToPlace)), nil, 0, 0); mciSendString(PChar('set mp time format tmsf'), nil, 0, 0); FreeMem(TmpStr); end; function GetMP3Len: LongInt; var TmpStr: PChar; begin GetMem(TmpStr, 128); mciSendString(PChar('set mp time format milliSeconds'), nil, 0, 0); mciSendString(PChar('status mp length wait'), TmpStr, 128, 0); mciSendString(PChar('set mp time format tmsf'), nil, 0, 0); Result := StrToInt(TmpStr); FreeMem(TmpStr); end; function GetMP3Pos: LongInt; var TmpStr: PChar; begin GetMem(TmpStr, 128); mciSendString(PChar('set mp time format milliSeconds'), nil, 0, 0); mciSendString(PChar('status mp position wait'), TmpStr, 128, 0); mciSendString(PChar('set mp time format tmsf'), nil, 0, 0); Result := StrToInt(TmpStr); FreeMem(TmpStr); end; procedure SetMP3Pos(ToPlace: LongInt = 1); begin mciSendString(PChar('set mp time format milliSeconds'), nil, 0, 0); mciSendString(PChar('play mp from ' + IntToStr(ToPlace)), nil, 0, 0); mciSendString(PChar('set mp time format tmsf'), nil, 0, 0); end; procedure TForm1.Button2Click(Sender: TObject); begin OpenMP3(fname); end; procedure TForm1.Button8Click(Sender: TObject); begin OpenMP3(fname); Gauge1.MaxValue := GetMP3Len; PlayMP3; Timer1.Enabled := true; end; procedure TForm1.Timer1Timer(Sender: TObject); begin Gauge1.Refresh; if Gauge1.MaxValue <> 0 then Gauge1.Progress := GetMP3Pos; if Gauge1.Progress = Gauge1.MaxValue then begin Gauge1.Progress := 0; CloseMP3; fname := ListBox1.Items.Strings[listbox1.itemindex+1]; OpenMP3(fname); PlayMP3; TrackBar1Change(sender); end; end; procedure TForm1.Button4Click(Sender: TObject); begin StopMP3; Timer1.Enabled := false; end; procedure TForm1.Button3Click(Sender: TObject); begin PauseMP3; Timer1.Enabled := false; end; procedure TForm1.Button5Click(Sender: TObject); begin RewindMP3; Gauge1.Progress := 0; end; procedure TForm1.Button6Click(Sender: TObject); begin ForwardMP3; end; procedure TForm1.ListBox1Click(Sender: TObject); begin StopMP3; CloseMP3; fname := ListBox1.Items.Strings[listbox1.itemindex]; Gauge1.Progress := 0; Timer1.Enabled := false; end; end. abraço