Eigenen Caret in TMemo |
|
| System | Win9x, WinNT, Win2000, WinXP, Vista, Win7 |
|---|---|
| Ab Delphi-Version | Delphi 1 |
| Letzte Änderung | 28.09.2010 |
Dieser Artikel zeigt, wie Sie einem TMemo-Feld einen eigenen Caret zuweisen können. Zuständig dafür sind die Windows-API Funktionen CreateCaret zum Erstellen und ShowCaret zum Anzeigen.Dieses erste Beispiel vergrößert den Cursor auf das Wunschformat:
procedure TForm1.Memo1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if CreateCaret(Memo1.Handle, 1, 8, 15) then
ShowCaret(Memo1.Handle)
else
RaiseLastOSError;
end;
CreateCaret erwartet 4 Parameter. Dem Ersten muss das Handle übergeben werden. Steht der zweite Parameter auf 0, wird der Cursor schwarz, steht er auf 1 wird er gräulich schattiert. Die letzten Parameter geben die horizontale und vertikale Ausdehnung an.Dem zweiten Parameter kann auch ein Handle von einem Bitmap übergeben werden, um ihn grafisch aufzuwerten. Dabei werden die letzten beiden Parameter ignoriert:
procedure TForm1.Memo1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if CreateCaret(Memo1.Handle, Image1.Picture.Bitmap.Handle, 0, 0) then
ShowCaret(Memo1.Handle)
else
RaiseLastOSError;
end;
Das Bild wird in seinen Negativ-Farben dargestellt.RaiseLastOSError ist erst ab Delphi 6 verfügbar. Programmierer, die mit älteren Versionen arbeiten, müssen an dieser Stelle RaiseLastWin32Error verwenden.
- Laden und Speichern von Texten aus Memofeldern in Dateien
- In einem Memo-Feld navigieren
- Blinkenden Cursor verstecken
- Ränder von mehrzeiligen Textfeldern setzen/lesen
- Sichtbare Zeilen in TMemo ermitteln
- Rückgängig/Wiederherstellen für Textfelder
- Aktuelle Zeile/Spalte in Memofeldern bestimmen
- Wort aus einem String an einer Position extrahieren
- Tabulatoren-Größe in TCustomMemo setzen
- Inhalt eines Memos drucken