Utiliser le répertoire Temp de Widnows au lieu de celui du .exe

Utiliser le répertoire Temp de Widnows au lieu de celui du .exe - Delphi/Pascal - Programmation

Marsh Posté le 02-03-2004 à 12:25:50    

Voilà mon source : on rigole pas svp, je suis débutant et je comprend pas trop comment fonctionne la fonction GetTemp ... Je voudrais bien que mon Mp3 soit extrait dans le répertoire temporaire de Windows au lieu de celui de mon .exe et ensuite que mon mediaplayer le lise et que quand je quitte l'application, il l'efface ...
 
unit MoonBoot;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, jpeg, ExtCtrls, StdCtrls, Buttons, MPlayer;
 
type
  TForm1 = class(TForm)
    Image1: TImage;
    Image2: TImage;
    Image3: TImage;
    Image4: TImage;
    MediaPlayer1: TMediaPlayer;
    procedure Image2Click(Sender: TObject);
    procedure Image3Click(Sender: TObject);
    procedure Image4Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Image1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
 
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
{$R testressources.RES}
 
procedure TForm1.Image2Click(Sender: TObject);
var
 StrNomFichier:string;
begin
  StrNomFichier:='sound.mp3';
  MediaPlayer1.Stop;
  MediaPlayer1.Close;
  DeleteFile(StrNomFichier);
  Application.Terminate;
end;
 
procedure TForm1.Image3Click(Sender: TObject);
var
 StrNomFichier:string;
begin
  StrNomFichier:='sound.mp3';
  WinExec('MoonBoot\bcd.bat corpmb', SW_SHOWNORMAL);
  MediaPlayer1.Stop;
  MediaPlayer1.Close;
  DeleteFile(StrNomFichier);
  Application.terminate;
end;
 
procedure TForm1.Image4Click(Sender: TObject);
var
 StrNomFichier:string;
begin
  StrNomFichier:='sound.mp3';
  MediaPlayer1.Stop;
  MediaPlayer1.Close;
  DeleteFile(StrNomFichier);
  Application.Terminate;
end;
 
procedure TForm1.FormCreate(Sender: TObject);
var
 StrNomFichier:string;
 ResourceStream:TResourceStream;
 FichierStream :TFileStream;
 
begin
  StrNomFichier:=ExtractFilePath(Application.ExeName)+'sound.mp3';
  ResourceStream:=TResourceStream.Create(hInstance, 'sound', RT_RCDATA);
  try
    FichierStream:=TFileStream.Create(StrNomFichier, fmCreate);
    try
      FichierStream.CopyFrom(ResourceStream, 0);
    finally
      FichierStream.Free;
    end;
  finally
    ResourceStream.Free;
end;
 
  MediaPlayer1.FileName:='sound.mp3';
  MediaPlayer1.Open;
  MediaPlayer1.Play;
end;
 
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  ReleaseCapture;
  Self.Perform(WM_SYSCOMMAND,$f012,0);
end;
 
end.
 
 
Merci d'avance !!

Reply

Marsh Posté le 02-03-2004 à 12:25:50   

Reply

Marsh Posté le 02-03-2004 à 13:09:47    

C bon j'ai trouvé tout seul :
 
unit MoonBoot;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, jpeg, ExtCtrls, StdCtrls, Buttons, MPlayer;
 
type
  TForm1 = class(TForm)
    Image1: TImage;
    Image2: TImage;
    Image3: TImage;
    Image4: TImage;
    MediaPlayer1: TMediaPlayer;
    procedure FormCreate(Sender: TObject);
    procedure Image2Click(Sender: TObject);
    procedure Image3Click(Sender: TObject);
    procedure Image4Click(Sender: TObject);
    procedure Image1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
 
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
{$R testressources.RES}
 
function RepertoireTemp:string;
var Buffer : array[0..255] of char;
    BufferSize : DWORD;
begin
  BufferSize := sizeOf(Buffer);
  GetTempPath(BufferSize , @buffer );
  Result:=Buffer;
end;
 
procedure TForm1.FormCreate(Sender: TObject);
var
 ResourceStream:TResourceStream;
 StrNomFichier:string;
begin
  ResourceStream:=TResourceStream.Create(hInstance, 'sound', RT_RCDATA);
  ResourceStream.SaveToFile(RepertoireTemp + 'sound.mp3');
  ResourceStream.Free;
  StrNomFichier:=RepertoireTemp + 'sound.mp3';
  MediaPlayer1.Open;
  MediaPlayer1.Play
end;
 
procedure TForm1.Image2Click(Sender: TObject);
var
 StrNomFichier:string;
begin
  StrNomFichier:=RepertoireTemp + 'sound.mp3';
  MediaPlayer1.Stop;
  MediaPlayer1.Close;
  DeleteFile(StrNomFichier);
  Application.Terminate;
end;
 
procedure TForm1.Image3Click(Sender: TObject);
var
 StrNomFichier:string;
begin
  StrNomFichier:=RepertoireTemp + 'sound.mp3';
  WinExec('MoonBoot\bcd.bat corpmb', SW_SHOWNORMAL);
  MediaPlayer1.Stop;
  MediaPlayer1.Close;
  DeleteFile(StrNomFichier);
  Application.terminate;
end;
 
procedure TForm1.Image4Click(Sender: TObject);
var
 StrNomFichier:string;
begin
  StrNomFichier:=RepertoireTemp + 'sound.mp3';
  MediaPlayer1.Stop;
  MediaPlayer1.Close;
  DeleteFile(StrNomFichier);
  Application.Terminate;
end;
 
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  ReleaseCapture;
  Self.Perform(WM_SYSCOMMAND,$f012,0);
end;
 
end.
 
@+

Reply

Marsh Posté le 05-03-2004 à 20:32:42    

Salut,
 
si tu veux un bon conseil, nomme tous tes composants sur ta feuille, parce que si tu veux reprendre par la suite ton projet, tu seras complètement paumé. En effet, Image1 ca veut rien dire ...
 
Nomme donc tes boutons de commandes en Cmd_NomDuBouton, les images Img_NomDeLimage, les labels en _Nomdulabel ou bien Lbl_Nomdulabel, etc :)
 

Reply

Marsh Posté le 05-03-2004 à 21:01:14    

pourquoi un "_" ?
lblNomDuLabel ou btnNomDuBouton c'est plus pratique à taper


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 09-03-2004 à 21:37:07    

antp a écrit :

pourquoi un "_" ?
lblNomDuLabel ou btnNomDuBouton c'est plus pratique à taper


 
Chacun sa méthode :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed