Autor Téma: AdvRichEditor - nepovoliť vloženie grafiky (obrázka)  (Přečteno 2110 krát)

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4420
  • Karma: 39
    • Verze Delphi: XE7 professional
Nakoľko FastReport v frxRichView nepodporuje grafiku, tak potrebujem zakázať jej vloženie užívateľom do AdvRichEditor. Ono to síce zbehne správne, ale užívateľ sa bude diviť prečo na zostave nevidí obrázok.
Tlačidlo na vloženie obrázka v TAdvRichEditorFormatButtonBar prekryjem panelom. O inej možnosti neviem. Ale potrebujem to aj pri Ctrl+C - Ctrl+V. Ale text sa má vložiť.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4420
  • Karma: 39
    • Verze Delphi: XE7 professional
Re:AdvRichEditor - nepovoliť vloženie grafiky (obrázka)
« Odpověď #1 kdy: 29-10-2016, 19:27:22 »
Nemám nádej? Aspoň som na formulár vložil text "Nevkladajte žiaden obrázok. V zostave bude ignorovaný."
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline vandrovnik

  • Guru
  • *****
  • Příspěvků: 766
  • Karma: 43
    • Verze Delphi: 10.3
Re:AdvRichEditor - nepovoliť vloženie grafiky (obrázka)
« Odpověď #2 kdy: 29-10-2016, 21:01:06 »
U mě funguje i obrázek - viz příloha, akorát kvalita zobrazení a nejspíš pak i tisku je příšerná. Možná je někde nastavení, které to ovlivňuje (podobně jako u obrázků se musela nastavit vyšší kvalita), ale nevím o něm.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4420
  • Karma: 39
    • Verze Delphi: XE7 professional
Re:AdvRichEditor - nepovoliť vloženie grafiky (obrázka)
« Odpověď #3 kdy: 29-10-2016, 21:03:56 »
Ja obsah AdvRichEditor posielam do FastReport.frxRichView a tam sa obrázok nezobrazí. frxRichView funguje presne ako RichEdit. Preto ich tam nechcem mať.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline vandrovnik

  • Guru
  • *****
  • Příspěvků: 766
  • Karma: 43
    • Verze Delphi: 10.3
Re:AdvRichEditor - nepovoliť vloženie grafiky (obrázka)
« Odpověď #4 kdy: 29-10-2016, 21:09:35 »
No právě že v té ukázkové sestavě, co jsem dal snímek do přílohy, je použité frxRichView a obrázek v něm zobrazený je. (Ošklivě.)

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4420
  • Karma: 39
    • Verze Delphi: XE7 professional
Re:AdvRichEditor - nepovoliť vloženie grafiky (obrázka)
« Odpověď #5 kdy: 29-10-2016, 21:14:05 »
Je pravda, že ja obsah najprv uložím do súboru a až odtiaľ ho načítam do FastReprt. A tam sa neukáže. Nekontroloval som, či sa vôbec uloží do súboru. Ale asi nie, lebo na to používam AdvRichEditorRTFIO.
Neviem ináč dostať obsah AdvRichEditor do FastReport. Viď príslušnú diskusiu. http://forum.delphi.cz/index.php/topic,15464.0.html
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline vandrovnik

  • Guru
  • *****
  • Příspěvků: 766
  • Karma: 43
    • Verze Delphi: 10.3
Re:AdvRichEditor - nepovoliť vloženie grafiky (obrázka)
« Odpověď #6 kdy: 29-10-2016, 21:20:47 »
Na to načtení ze streamu mi funguje (i s tím obrázkem):

Kód: Delphi [Vybrat]
  1.  var f:TFileStream;
  2.      pComponent:tFrxComponent;
  3.      pRichView:TfrxRichView;
  4.  begin
  5.  pComponent:=frxReport1.FindObject('Rich1');
  6.  if (pComponent<>nil)and(pComponent is TfrxRichView) then begin
  7.   pRichView:=pComponent as TfrxRichView;
  8.   f:=TFileStream.Create('R:\test.rtf', fmOpenRead);
  9.   try
  10.    pRichView.RichEdit.Lines.LoadFromStream(f);
  11.   finally
  12.    FreeAndNil(f);
  13.   end;
  14.  end;
  15.  frxReport1.ShowReport();
  16.  

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4420
  • Karma: 39
    • Verze Delphi: XE7 professional
Re:AdvRichEditor - nepovoliť vloženie grafiky (obrázka)
« Odpověď #7 kdy: 29-10-2016, 21:23:16 »
Skúsim. Všetky moje pokusy so stream vždy skončili neúspechom.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4420
  • Karma: 39
    • Verze Delphi: XE7 professional
Re:AdvRichEditor - nepovoliť vloženie grafiky (obrázka)
« Odpověď #8 kdy: 29-10-2016, 21:34:27 »
Neverím, funguje to
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline vandrovnik

  • Guru
  • *****
  • Příspěvků: 766
  • Karma: 43
    • Verze Delphi: 10.3
Re:AdvRichEditor - nepovoliť vloženie grafiky (obrázka)
« Odpověď #9 kdy: 29-10-2016, 21:35:50 »
To jsem rád :-) Jinak při tisku ten obrázek kupodivu vyšel normálně, takže asi jen náhled mají tak trochu nedotažený.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4420
  • Karma: 39
    • Verze Delphi: XE7 professional
Re:AdvRichEditor - nepovoliť vloženie grafiky (obrázka)
« Odpověď #10 kdy: 29-10-2016, 21:52:38 »
Ja by som to mal rád bez toho medzi kroku so súborom. Ale to by si už určite reagoval.
A ďakujem.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline vandrovnik

  • Guru
  • *****
  • Příspěvků: 766
  • Karma: 43
    • Verze Delphi: 10.3
Re:AdvRichEditor - nepovoliť vloženie grafiky (obrázka)
« Odpověď #11 kdy: 29-10-2016, 22:01:51 »
Neznám ten AdvRichEditor, možná umí svůj obsah zapsat do streamu sám o sobě, ale tohle funguje:

Kód: Delphi [Vybrat]
  1.  var m:TMemoryStream;
  2.      Rtf:string;
  3.      RtfAnsi:AnsiString;
  4.      pComponent:tFrxComponent;
  5.      pRichView:TfrxRichView;
  6.  begin
  7.  m:=TMemoryStream.Create;
  8.  try
  9.   Rtf:=AdvRichEditor1.ContentAsRTF;
  10.   RtfAnsi:=AnsiString(Rtf);
  11.   if RtfAnsi='' then exit;
  12.   m.Write(RtfAnsi[1], length(RtfAnsi));
  13.   m.Seek(0, soBeginning);
  14.   pComponent:=frxReport1.FindObject('Rich1');
  15.   if (pComponent<>nil)and(pComponent is TfrxRichView) then begin
  16.    pRichView:=pComponent as TfrxRichView;
  17.    pRichView.RichEdit.Lines.LoadFromStream(m);
  18.   end;
  19.   frxReport1.ShowReport();
  20.  finally
  21.   FreeAndNil(m);
  22.  end;
  23.  

Dřív jsem se nedostal k tomu to zkusit :-)

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4420
  • Karma: 39
    • Verze Delphi: XE7 professional
Re:AdvRichEditor - nepovoliť vloženie grafiky (obrázka)
« Odpověď #12 kdy: 29-10-2016, 22:09:22 »
Ďakujem. Ja som na internete na niečo narazil a stačí ten stream vytvoriť takto
Kód: Delphi [Vybrat]
  1.   stream := TStringStream.Create(rchedtArrears.ContentAsRTF);
  2.  
a ide to. Túto konštrukciu so nepoznal. Máš to aj Ty. A som celý bez seba ;D ;D ;D
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline vandrovnik

  • Guru
  • *****
  • Příspěvků: 766
  • Karma: 43
    • Verze Delphi: 10.3
Re:AdvRichEditor - nepovoliť vloženie grafiky (obrázka)
« Odpověď #13 kdy: 29-10-2016, 22:13:02 »
A jo, opravdu stačí - já nevěděl, jak si to poradí s dvoubajtovými znaky, které tvoří ten string, tak jsem radši použil, asi zbytečně, ten AnsiString.