Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Делфи _ Procedure Getproperties - Help!

Автор: Артемий 6.07.2006 21:48

mega_chok.gif Помогите!!!!!! Я не понимаю как использовать следующий код

procedure TForm1.GetProperties(FileName: String; var MediaFrames, MediaLength, MediaWidth, MediaHeight: Integer);
begin
MediaPlayer1.FileName := FileName;
MediaPlayer1.Wait := False;
MediaPlayer1.Open;
MediaPlayer1.TimeFormat := tfFrames;
MediaFrames := MediaPlayer1.Length;
MediaPlayer1.TimeFormat := tfMilliseconds;
MediaLength := MediaPlayer1.Length;
MediaPlayer1.DisplayRect := Rect(1, 1, 0, 0);
MediaWidth := MediaPlayer1.DisplayRect.Right;
MediaHeight := MediaPlayer1.DisplayRect.Bottom;
if (MediaWidth <= 0) or (MediaHeight <= 0) then begin
{íåïðàâèëüíûå çíà÷åíèÿ îçíà÷àþò, ÷òî ýòî íå âèäåî-ôàéë}
MediaWidth := 0;
MediaHeight := 0;
end;

Куда его вставлять? В TListView? ПППППЛЛЛЛЛИИИИИИИИИЗЗЗЗЗЗЗЗЗЗЗЗЗ!!!!!!!
MediaPlayer1.Close;
end;

Автор: volvo 6.07.2006 22:03

Цитата(Артемий @ 6.07.2006 17:48)
Куда его вставлять? В TListView?

Ну, зачем же в TListView? Совсем не обязательно. Ты хочешь получить какую-то информацию о файле? Можешь отобразить ее в ShowMessage. Брось на форму TMediaPlayer + TButton + TOpenDialog и используй код вот так:
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, MPlayer;

type
TForm1 = class(TForm)
MediaPlayer1: TMediaPlayer;
Button1: TButton;
OpenDialog1: TOpenDialog;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
procedure GetProperties(FileName: String;
var MediaFrames, MediaLength, MediaWidth, MediaHeight: Integer);
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.GetProperties(FileName: String;
var MediaFrames, MediaLength, MediaWidth, MediaHeight: Integer);
begin
MediaPlayer1.FileName := FileName;
MediaPlayer1.Wait := False;
MediaPlayer1.Open;
MediaPlayer1.TimeFormat := tfFrames;
MediaFrames := MediaPlayer1.Length;
MediaPlayer1.TimeFormat := tfMilliseconds;
MediaLength := MediaPlayer1.Length;
MediaPlayer1.DisplayRect := Rect(1, 1, 0, 0);
MediaWidth := MediaPlayer1.DisplayRect.Right;
MediaHeight := MediaPlayer1.DisplayRect.Bottom;
if (MediaWidth <= 0) or (MediaHeight <= 0) then begin
MediaWidth := 0;
MediaHeight := 0;
end;
MediaPlayer1.Close;
end;

procedure TForm1.Button1Click(Sender: TObject);
var mmFrames, mmLength, mmWidth, mmHeight: integer;
begin
If opendialog1.Execute then begin
GetProperties(opendialog1.FileName,
mmFrames, mmLength, mmWidth, mmHeight);
showmessage(opendialog1.FileName + ' ->' +
' frames: ' + inttostr(mmFrames) +
' length: ' + inttostr(mmLength) +
' width: ' + inttostr(mmWidth) +
' height: ' + inttostr(mmHeight));
end;
end;

end.
Можно и в Memo весь вывод направить, если хочешь сохранить информацию (MessageBox же удалится...)

Автор: Артемий 7.07.2006 19:16

wacko.gifОн все показывает но пишет "No MCI device open!"

Автор: volvo 7.07.2006 19:21

Не знаю, с чего бы это. У меня ничего не пишет... Только выдает информацию...

Автор: Артемий 8.07.2006 15:21

А ты не знаешь можно ли всю информацию поместить в форму типа TListView или TLable или еще куда?

Автор: volvo 8.07.2006 15:34

Помести в TMemo:

procedure TForm1.Button1Click(Sender: TObject);
var mmFrames, mmLength, mmWidth, mmHeight: integer;
begin
If opendialog1.Execute then begin
GetProperties(opendialog1.FileName,
mmFrames, mmLength, mmWidth, mmHeight);
Memo1.Lines.Add(opendialog1.FileName + ':');
Memo1.Lines.Add('frames: ' + inttostr(mmFrames));
Memo1.Lines.Add('length: ' + inttostr(mmLength));
Memo1.Lines.Add('width: ' + inttostr(mmWidth));
Memo1.Lines.Add('height: ' + inttostr(mmHeight));
end;
end;

Автор: Артемий 9.07.2006 15:43

Спасибо тебе за помощь!! smile.gif

Автор: Артемий 11.07.2006 17:55

Я вот хотел еще вопрос можно ли сделать так, чтобы можно например щелкнуть по муз. файлу и откроется моя программа. Чтобы не запускать её отдельно!