AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Auf RichEdit zeichnen

Ein Thema von F.W. · begonnen am 30. Sep 2004 · letzter Beitrag vom 1. Okt 2004
Antwort Antwort
Benutzerbild von F.W.
F.W.

Registriert seit: 28. Jul 2003
Ort: Zittau
636 Beiträge
 
#1

Auf RichEdit zeichnen

  Alt 30. Sep 2004, 22:08
Halli hallo!

Ich habe seit 2 Tagen die Vostellung auf ein RichEdit zu zeichnen, hatte aber bis eben keine Zeit. Aber es hat auch nicht funktioniert!

Delphi-Quellcode:
  TREEx = class(TRichEdit)
  private
    procedure WMPaint(var Msg: TWMPaint); message WM_Paint;
  end;

    { ... }

procedure TREEx.WMPaint(var Msg: TWMPaint);
var
 C: TCanvas;
begin
 C := TCanvas.Create;
 try
   C.Handle := Msg.DC;
   C.Ellipse(10, 10, 100, 100);
 finally
   C.Free;
 end;
end;
Aber wenn's zum zeichnen in der WMPaint Methode kommt, bekomme ich ein Fehler, dass ich auf der Leinwand nicht zeichnen darf!
Welche Wege gibt es noch, um auf ein RichEdit zu zeichnen?

Danke schonmal!
  Mit Zitat antworten Zitat
Benutzerbild von mischerr
mischerr

Registriert seit: 6. Feb 2004
Ort: Konz
243 Beiträge
 
Delphi 12 Athens
 
#2

Re: Auf RichEdit zeichnen

  Alt 30. Sep 2004, 23:04
Also hier hatte ich bei sowas mal mit:
Code:
with TCanvas.Create do begin
     Handle:= GetDC(self.Handle);
     MoveTo(100, 100);
     LineTo(150, 150);
     Free;
end;
Erfolg...
  Mit Zitat antworten Zitat
franz

Registriert seit: 23. Dez 2003
Ort: Bad Waldsee
112 Beiträge
 
Delphi 5 Professional
 
#3

Re: Auf RichEdit zeichnen

  Alt 30. Sep 2004, 23:38
Hi,
du kannst aber auch eine neue RichEdit Komponente erstellen.

Delphi-Quellcode:
type
  TCanvasRichEdit = class(TRichEdit)
  private
    FCanvas: TControlCanvas;
    function GetCanvas: TCanvas;
  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;

    property Canvas: TCanvas
      read GetCanvas;
  end;

constructor TCanvasRichEdit.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  ScrollBars := ssBoth;
  FCanvas := TControlCanvas.Create;
  FCanvas.Control := Self;
end;

destructor TCanvasRichEdit.Destroy;
begin
  FCanvas.Free;
  inherited Destroy;
end;

function TCanvasRichEdit.GetCanvas: TCanvas;
begin
  Result := FCanvas;
end;
Anschließend kann die Eigenschaft Canvas der neue Kompo zum Zeichnen verwendet werden.

Nur mal so schnell - ungetestet.
  Mit Zitat antworten Zitat
Benutzerbild von F.W.
F.W.

Registriert seit: 28. Jul 2003
Ort: Zittau
636 Beiträge
 
#4

Re: Auf RichEdit zeichnen

  Alt 1. Okt 2004, 17:22
Danke! Hat geklappt!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:25 Uhr.
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