Delphi-PRAXiS
Seite 4 von 4   « Erste     234   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi [Bug?] Delphi ist zu langsam? (https://www.delphipraxis.net/124225-%5Bbug-%5D-delphi-ist-zu-langsam.html)

The Riddler 17. Nov 2008 15:10

Re: [Bug?] Delphi ist zu langsam?
 
Ich hab es ja bereits gelöst mit ProgressBars (zwei) und nem Label. Der Anwender sollte also nicht länger als 5s denken das das Programm eingefroren ist. ;=)

Übrigens kommt es mir gelegen das der User die Funktion nicht abbrechen kann, weil sonst nichts mehr funktionieren würde wenn die Funktion nicht bis zum Ende ausgeführt werden würde. :mrgreen:

jfheins 17. Nov 2008 15:10

Re: [Bug?] Delphi ist zu langsam?
 
Puffern kannst du übrigens ungefähr so:
Delphi-Quellcode:
var
  fs: TFileStream;
  mem: TmemoryStream;
begin
  fs := TFileStream.Create(FileName, fmOpenReadWrite or fmShareExclusive);
  mem := TMemoryStream.Create();
  try
    mem.CopyFrom(fs, 0);
   
    // Mach was mit memstream
   
    fs.CopyFrom(mem, 0);
  finally
    mem.Free;
    fs.Free;
  end;
end;
Andererseits ... durch Byteweisen Zugriff auf eine normale Festplatte förderst du die Flash-SSD-Festplatten, da diese dann einen echten Vorteil bieten. Falls du es schaffst, noch mehr Programmierer zu überreden, Byteweise und ungepuffert Daten zu lesen und zu schreiben, kannst du Arbeitsplätze in diesem Segement nachhaltig sichern :mrgreen:

Sir Rufo 17. Nov 2008 15:16

Re: [Bug?] Delphi ist zu langsam?
 
Zitat:

Zitat von The Riddler
Übrigens kommt es mir gelegen das der User die Funktion nicht abbrechen kann, weil sonst nichts mehr funktionieren würde wenn die Funktion nicht bis zum Ende ausgeführt werden würde. :mrgreen:

Einen Thread kann der User auch nur dann beenden, wenn der Programmierer ihm diese Möglichkeit gibt.

Wenn du mein Beispiel-Programm daran hindern möchtest beendet zu werden, bevor der Thread entsorgt wurde, dann füg doch für das MainForm-Event folgenden Code hinzu:
Delphi-Quellcode:
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
  CanClose := Not Assigned( FMyThread );
end;
cu

Oliver

igel457 17. Nov 2008 15:30

Re: [Bug?] Delphi ist zu langsam?
 
Wenn es mit dem Buffern etwas komfortabler sein soll, kannst du auch die folgende Unit verwenden:
http://andorra.cvs.sourceforge.net/v...s?revision=1.6

Verwendung:
Delphi-Quellcode:
uses
  ..., AdBuffer;

var
  fs: TFileStream;
begin
  fs := TFileStream.Create('C:\test.mp3', fmCreate);
 
  QueryBufferedStream(fs);

  //Gebuffert auf den Stream zugreifen...

  FreeBufferedStream(fs);

  fs.Free;
end;

Apollonius 17. Nov 2008 16:19

Re: [Bug?] Delphi ist zu langsam?
 
Nochmal zur allerersten Frage: Wenn es nur darum geht, dass ein Control sich neuzeichnen soll, ist die Method Update genau richtig. Damit kann es nämlich auch nicht passieren, dass ein weiterer Buttonklick empfangen wird.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:51 Uhr.
Seite 4 von 4   « Erste     234   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz