Einzelnen Beitrag anzeigen

DRPEnc

Registriert seit: 20. Feb 2004
Ort: Noch unterm Mond
126 Beiträge
 
#16

Re: Nach ShellExecute Filesize anzeigen lassen - Wie?

  Alt 28. Feb 2004, 20:02
Delphi-Quellcode:
procedure TForm12.Button7Click(Sender: TObject);
var ProcID: Cardinal;
    a,b,c :real;
begin
  ProcID := 0;
  //if OpenDialog1.Execute then
    RunProcess('C:\DRPEncPrediction.bat', SW_SHOW, TRUE, @ProcID);
  //ShowMessage(IntToStr(ProcID));
listbox1.Items.add('Done');
//OpenFile('Hier irgendwie die MPEG-Datei öffnen...');
Edit8.Text:=GET_FILE_SIZE('Name der geöffneten Datei',true);
a:= StrToFloat(Edit8.text);
b:=(a / 1024) /1024;
c:= StrToFloat(Edit9.text);
listbox1.Items.add('This Pass has the filesize of ' +FloatToStr(b)+ ' MB');
if FloatToStr(b) < FloatToStr(c) then listbox1.Items.add('Higher the bitrate');
if FloatToStr(b) > FloatToStr(c) then listbox1.Items.add('Lower the bitrate');
end;
So sollte es ungefähr aussehen. Sprich die MPEG-datei soll ohne 'User-Aufruf' gestartet werden...

Delphi-Quellcode:
procedure TForm12.Button7Click(Sender: TObject);
var ProcID: Cardinal;
  var a,b,c :real;
begin
  ProcID := 0;
  //if OpenDialog1.Execute then
    RunProcess('C:\DRPEncPrediction.bat', SW_SHOW, TRUE, @ProcID);
  //ShowMessage(IntToStr(ProcID));
listbox1.Items.add('Done');
//OpenFile('C:\DRPEncPrediction.bat');
Edit8.Text:=GET_FILE_SIZE('C:\cococ102.m2v',true);
a:= StrToFloat(Edit8.text);
b:=(a / 1024) /1024;
c:= StrToFloat(Edit9.text);
listbox1.Items.add('This Pass has the filesize of ' +FloatToStr(b)+ ' MB');
if FloatToStr(b) < FloatToStr(c) then listbox1.Items.add('Higher the bitrate');
if FloatToStr(b) > FloatToStr(c) then listbox1.Items.add('Lower the bitrate');
end;
... gibt ne Fehlermeldung. 'Sample in B' sollte kein valid Floating point value sein...

Sample in B steht in der Edit 8, ergo wird mit Edit8.Text:=GET_FILE_SIZE('C:\cococ102.m2v',true); nicht die Datei geöffnet... wie dann?

Delphi-Quellcode:
procedure TForm12.Button7Click(Sender: TObject);
var ProcID: Cardinal;
    a,b,c :real;
    wndFile: Integer;
begin
  ProcID := 0;

RunProcess('C:\DRPEncPrediction.bat', SW_SHOW, TRUE, @ProcID);

listbox1.Items.add('Done');
wndFile := OpenFile('C:\cococ102.m2v');
//OpenFile('C:\cococ102.m2v');
Edit8.Text:=GET_FILE_SIZE(wndFile,true);
a:= StrToFloat(Edit8.text);
b:=(a / 1024) /1024;
c:= StrToFloat(Edit9.text);
listbox1.Items.add('This Pass has the filesize of ' +FloatToStr(b)+ ' MB');
if FloatToStr(b) < FloatToStr(c) then listbox1.Items.add('Higher the bitrate');
if FloatToStr(b) > FloatToStr(c) then listbox1.Items.add('Lower the bitrate');
end;
... auch falsch... Muss doch irgendwie ohne OpenDialog zu öffnen sein...

ShellExecute(Handle,'open', 'http://delphi.about.com',nil,nil, SW_SHOWNORMAL); Hmm... irgendwie so... Will aber die M2V-Datei nicht mit dem Mediaplayer starten sondern nur die Dateigröße vergleichen.

Eigentlich brauch ich ja nur den Pfad von der Datei für GET_FILE_SIZE

Delphi-Quellcode:
var pfad, name, ext, neuerName: string;
...
  pfad := ExtractFilePath(Application.ExeName); // der Pfad
  name := ExtractFileName(Application.ExeName); // der Name
  ext := ExtractFileExt(Application.ExeName); // die Dateierweiterung

  // Um im String die Dateierweiterung zu ändern, benutzt man folgende Funktion:
  neuerName := ChangeFileExt(Application.ExeName, '.tmp');
Hmm... Wie anwenden... Bringts überhaupt was?
CU

DRPEnc
  Mit Zitat antworten Zitat