2010-11-19 13 views

Antwort

1

Es gibt einige Probleme mit dem Zurückschreiben ... wie wäre es, wenn Sie den Wert memo1.lines.text mit einem großen Textblock belegen würden? Wenn Sie möchten, dass Fehler auftreten, werden die Daten auf 80 Zeichen/Zeile heruntergedrückt ...

Es klingt, als ob Sie anstelle eines TMemo eine Textverarbeitungssteuerung benötigen. Überprüfen Sie http://www.TRichView.com oder http://www.wpcubed.com/

1

Ich glaube nicht, gibt es eine einfache Möglichkeit, dies zu tun, ich habe ein OnKeyPress Ereignis eingestellt haben, bevor, dass sie zu begrenzen versucht (ich weiß nicht, ob es das Einfügen in Text behandelt)

procedure AddressMemoOnKeyPressEvent(Sender: TObject; var Key: Char); 
var 
    i, lineCount: Integer; 
begin 
    with Sender as TMemo do 
    begin 
     if (Key <> #13) and (Key <> #8) and (Length(Lines[CaretPos.Y]) >= MAX_CHARS_PER_LINE_IN_MEMO) then 
     Key := #0; 

     lineCount := 0; 
     for i := 1 to Length(TMemo(Sender).Lines.Text) do 
     begin 
     if (TMemo(Sender).Lines.Text[i] = #13) then 
      Inc(lineCount); 
     end; 

     if (Key = #13) AND (Key <> #8) AND (lineCount >= MAX_LINES_PER_MEMO - 1) then 
     Key := #0; 

     // if we got past the last line, no key can be entered... 
     if (CaretPos.Y >= MAX_LINES_PER_MEMO) then 
     Key := #0; 
    end; 
end; 
Verwandte Themen