|
// Hiermit
kann man ein TBitmap in ein TRichEdit einfügen uses RichBmp;
var
BMP: TBitmap;
// Bitmap einsetzen ...
procedure TForm1.Button1Click(Sender: TObject);
begin
Screen.Cursor := crHourGlass;
BMP := TBitmap.Create;
BMP.LoadFromFile('D:\Bilder\032145.bmp');
RichEdit1.Selstart := 100; // z.B.
InsertBitmapToRE(RichEdit1.Handle, BMP.Handle);
FreeAndNil(BMP);
RichEdit1.SetFocus;
Screen.Cursor := crDefault;
end;
// ... und sofort zurücksetzen
procedure TForm1.Button2Click(Sender: TObject);
begin
RichEdit1.Undo;
RichEdit1.SetFocus;
end;
// Speichern
procedure TForm1.Button3Click(Sender: TObject);
begin
RichEdit1.PlainText := False;
RichEdit1.Lines.SaveToFile('D:\Versuch.rtf');
RichEdit1.SetFocus;
end;
// ---------------------Kursorabfrage------------------------- // Kursor steht direkt rechts oder links neben dem Bild
// bzw. das Bild ist ausgewählt
procedure AmImBild(RE: TRichEdit);
var
c0, c1: Char;
begin
with RE do
begin
try
c0 := lines[CaretPos.Y][CaretPos.X];
c1 := lines[CaretPos.Y][succ(CaretPos.X)];
except
c0 := #0;
c1 := #0;
end;
end;
if (c0 = #$FFFC) or (c1 = #$FFFC) then
showmessage('Bild'); // z.B.
end;
// Abfrage mit Strg+b
procedure TForm1.RichEdit1KeyPress(Sender: TObject; var Key: Char);
begin
if (Key = #2) then
AmImBild(TRichEdit(Sender));
end;
// ------------------Bilderanzahl feststellen---------------------- function CountSubStr(const SubStr, Txt: String; Offset: Integer): Word;
var
Lg: Integer;
begin
Result := 0;
Lg := Length(SubStr);
repeat
Offset := System.StrUtils.PosEx(SubStr, Txt, Offset);
if Offset = 0 then
break;
Inc(Result);
Offset := Offset + Lg;
until False;
end;
function NrOfPic(RE: TRichEdit): Word; // Anzahl gefundener Bilder
var
SS: TStringStream;
M: Boolean;
begin
SS := TStringStream.Create;
M := RE.PlainText;
RE.PlainText := False;
RE.Lines.SaveToStream(SS);
Result := CountSubStr('{\pict', SS.DataString, 1);
SS.Free;
RE.PlainText := M;
end;
|
|
Zugriffe seit
6.9.2001 auf Delphi-Ecke |