Einzelnen Beitrag anzeigen

Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#2

Re: Simples Textausgeben mit DrawText

  Alt 11. Jul 2009, 15:07
Mach du mal so:

Delphi-Quellcode:
function WindowProc(Window : HWnd; Msg : LongWord; Param1, Param2 : LongInt) : LongInt; stdcall;
var
  PaintInfo : TPaintStruct;
begin
  Result := 0;
  case Msg of
    WM_DESTROY : PostQuitMessage(0);
    WM_PAINT : begin
      //WriteLn('Zeichne!');
      BeginPaint(Window, PaintInfo);

      SetTextColor(PaintInfo.hdc, $00000000);

      TimeString := 'Hallo Welt!'; // <--<<
      DrawText(PaintInfo.hdc, PCHAR(TimeString), Length(TimeString), WindowRect, DT_SINGLELINE or DT_CENTER or DT_VCENTER);

      EndPaint(Window, PaintInfo);
    end;
    else Result := DefWindowProc(Window, Msg, Param1, Param2);
  end;
end;
und schon (sollte) funktioniert es.

Warum ? Wei irgend etwas mit dem String schief läuft wenn er im Thread geändert wird.
Der Thread müsste ggf. noch Syncronisiert werden und die Variable TimeString als Parameter übergeben werden.

Das ist jetzt eine Vermutung, habe es noch nicht ausprobiert. Das wirst ja du machen.

Achso, diese Schreibweise:[i]@TimeString[1][i] sollte man vermeiden. Es kann bei manchen Compei. zu Fehlern bei der
Bereichsüberprüfung führen zB. wenn der String leer ist.
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat