Einzelnen Beitrag anzeigen

Schwedenbitter

Registriert seit: 22. Mär 2003
Ort: Finsterwalde
622 Beiträge
 
Turbo Delphi für Win32
 
#1

Messages abfangen/mitlesen

  Alt 20. Jan 2016, 22:54
Hallo,

ich habe folgendes Problem: ich will/muss eine große Anzahl von bmp-Dateien in jpg-/png-Dateien umwandeln. Das wollte ich in einen Thread auslagern, u.a. um die Forms flüssig laufen zu lassen. Allerdings scheitert das an dem nicht threadsicheren TBitmap(.Canvas).

Also habe ich die Idee, die Berechnung in einem (unsichtbaren) Konsolenprogramm ausführen zu lassen und dieses wiederum über Messages vom Hauptprogramm zu steuern. Den Rumpf stelle ich mir so vor:
Delphi-Quellcode:
Program Packer;

{$APPTYPE CONSOLE}

{$R *.res}

{$DEFINE DEBUG}

Uses
   Winapi.Windows, System.SysUtils, System.Classes, Vcl.Graphics;

Var
   bRet            : Integer;
   Msg            : Winapi.Windows.TMsg;

Begin
   While True Do
   Try

      // Hier kommt das Laden und Komprimieren des Bitmap

      Sleep(50);
   Except
      On E: Exception Do
      With TStringList.Create Do
      Try
         Try LoadFromFile('Log.txt'); Except End;
         Append(E.ClassName + ': ' + E.Message);
         SaveToFile('Log.txt');
      Finally
         Free;
      End;

   End;
End.
Wo/wie kann ich die Messages abfangen?

Wie das mit dem Message Loop grundsätzlich funktioniert, habe ich anhand diverser Beispiel-Codes gesehen (GetMessage , TranslateMessage , DispatchMessage ). Dann hätte ich die Messages. Allerdings habe ich Test-Code an diversen Stellen eingefügt, ohne dass dieser ausgeführt würde...


Gruß, Alex
Alex Winzer

Geändert von Schwedenbitter (20. Jan 2016 um 23:03 Uhr)
  Mit Zitat antworten Zitat