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.