// 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 |