Utiliser le répertoire Temp de Widnows au lieu de celui du .exe - Delphi/Pascal - Programmation
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.
@+
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
Marsh Posté le 05-03-2004 à 21:01:14
pourquoi un "_" ?
lblNomDuLabel ou btnNomDuBouton c'est plus pratique à taper
Marsh Posté le 09-03-2004 à 21:37:07
antp a écrit : pourquoi un "_" ? |
Chacun sa méthode
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 !!