Einzelnen Beitrag anzeigen

SevenOfNine

Registriert seit: 11. Jan 2007
Ort: Giessen, Mittelhessen
41 Beiträge
 
Delphi 7 Professional
 
#1

Memo (LMDTools) Zeilennummer mit OnMarginRowPaint Event

  Alt 8. Nov 2009, 10:10
Hallo zusammen,

vielleicht kann mir hier jemand ja weiterhelfen ...

Ich möchte in dem Margin-Bereich eines LMDMemo die Zeilennummer ausgeben. Es soll im Prinzip so aussehen, wie in einem Sourcecode-Editor.

Zum "malen" im Margin-Bereich nutze ich OnMarginRowPaint-Event.

Delphi-Quellcode:
procedure TForm1.LMDMemo_TextPackageMarginRowPaint(Sender: TObject;
  Canvas: TCanvas; aRect: TRect; firstChar, length: Integer);
firstChar gibt mir anscheinend für jede Zeile die aktuelle Position des ersten Zeichens unter Berücksichtigung aller Zeilenumrüche (2Bytes?!) zurück.
length ist die Anzahl der Zeichen in der Zeile, in der sich der Cursor befindet.

Ich "male" folgendermaßen auf den Canvas:

Delphi-Quellcode:
procedure TForm1.LMDMemo_TextPackageMarginRowPaint(Sender: TObject;
  Canvas: TCanvas; aRect: TRect; firstChar, length: Integer);
var
  s: string;
begin

   s := inttostr( firstChar );

   DrawText(Canvas.Handle, PAnsiChar(AnsiString(s)), strlen(PAnsiChar(AnsiString(s))),
      aRect, DT_SINGLELINE or DT_RIGHT);

end;
Die Ausgabe von firstChar ist hier nur zum Testen.

Vielleicht hat ja jemand mal einen Tipp für mich parat.

Schöne Grüße,
seven
Mein Kindheitstraum: Die 32bit Farbpalette als Bundstiftsammlung.
  Mit Zitat antworten Zitat