Einzelnen Beitrag anzeigen

Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#3
  Alt 30. Aug 2002, 12:29
Zitat von Christian Seehase:
Moin Sharky,

nur mal so als Idee:
Prüfe doch im OnKeyDown ab, wo sich das Caret befindet (Zeile), und lösche das eingegebene Zeichen einfach wieder. Anschliessend das Caret auf den Anfang des zugelassenen Bereiches setzen.
Oder aber mach das ganze zweigeteilt:
Oben ein Memo, dessen Inhalt nicht geändert werden darf, unten eines wo Änderungen zulässig sind.
Letzters fände ich persönlich sauberer.
Moin Christian,
an das OnKeyDown hatte ich auch gedacht. Aber dann muss ich es natürlich auch noch im OnMouseDown machen.

Das mit den zwei Memos hatte ich zuerst. Das Problem ist aber das es ohne Problem 8-10 Zeilen Text sein können die aus der Datenbank kommen.
Darum müsste auch das obere scrollbar sein. Sieht aber nicht gut aus finde ich.

Zur Zeit löse ich das ganz im OnChange-Event:

Code:
procedure TFRM_Neu_Vorgang.Memo1Change(Sender: TObject);
var
 sel_start : LongInt;
begin
 sel_start := SendMessage(memo1.Handle, EM_LINEFROMCHAR, memo1.SelStart, 0);
 If (sel_start <= art_bezeichnung_zeilen-1) then
  begin
   Memo1.Perform (EM_UNDO,0,0);
   Memo1.Perform (EM_EMPTYUNDOBUFFER,0,0);
  end;
end;
Wobei art_bezeichnung_zeilen die Anzahl der Zeilen angibt die aus der Datenbank kommen.


P.S.: Wie kann ich eigentlich meinen Quellcode im Forum formatieren?
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat