Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > VCL2OCX


Автор: efedron 6.6.2006, 13:47
Господа профессионалы своего дела! Может ли кто-нибудь скомпилировать VCL компоненту htmllite или richview в activeX control(ocx)? Дело в том, что очень нужна компонента для отображения форматированного текста и анимированных рисунков, но дельфей не владею а освоить не хватает времени да и помочь некому smile
Уж пожалуйста, не откажите в помощи! 

Автор: Snowy 6.6.2006, 16:03
Боюсь, что это невозможно по той самой причине, что это VCL.
И кроме, как в VCL она работать нигде не будет. 

Автор: Albinos_x 6.6.2006, 17:28
Цитата(Snowy @  6.6.2006,  16:03 Найти цитируемый пост)
Боюсь, что это невозможно по той самой причине, что это VCL.

да не... думаю возможно... покрайней мере кнопочки я себе делал в ocx, да и формы там можно делать...

PS: если не к спеху, то я могу сделать, но когда освобожусь... не ранее 10 числа... 

Автор: efedron 7.6.2006, 15:01
Albinos_x
конечно не к спеху, поскольку ищу подходящую компоненту уже несколько месяцев smile
главное, чтоб, результат был smile
хотя, задача, думаю, достаточно непростая, это все-таки не кнопочки....smile 

Автор: Albinos_x 7.6.2006, 17:56
мне только интересно... разве через html нельзя подобное сделать?
Зачем нужен компонент в activeX control(ocx)? 

Автор: efedron 8.6.2006, 10:54
Albinos_x
Цитата

разве через html нельзя подобное сделать

что конкретно ты имеешь ввиду?
мне нужно отображать на форме форматированный текст с анимированными рисунками с возможностью выделять/копировать текст, прокручивать содержимое...контрол для Internet Explorer тяжеловат для этих целей...все-таки полнофункциональный браузер мне не нужен... 

Автор: Albinos_x 8.6.2006, 13:13
для этого и не нужен 
Цитата(efedron @  8.6.2006,  10:54 Найти цитируемый пост)
контрол для Internet Explorer

в общих вопросах по делфи этот вопрос не раз поднимался...
я просто не пойму зачем делать ocx?... если ты хочешь его использовать в своей проге, то это лишний гемморой для тебя будет.... или хочешь сделать возможность программирования твоего приложения для пользователя? но тогда просто откопилированного компонента не достаточно... 

Автор: efedron 9.6.2006, 09:05
Albinos_x
просто других подходящих не нашел, сам написать не могу (не хватает знаний), а дельфевские компоненты для меня не подходят, поскольку я пишу на VB - следовательно вижу единственный выход - перекомпиллировать дельфевский в эктивикс и затем использовать в моей программе... 

Автор: Albinos_x 9.6.2006, 11:56
тогда всё ясно... 

Автор: efedron 13.6.2006, 14:19
Albinos_x
Цитата

тогда всё ясно...  

ну что ясно-то? как, момощи ожидать или как? smile 

Автор: Albinos_x 15.6.2006, 23:35
efedron, у меня просто сейчас времени нет... появится возможно в воскресенье... 

Автор: Albinos_x 18.6.2006, 17:32
вот держи на htmlLite smile 
http://www.albinos.nightmail.ru/htmlLiteXControl.rar 

Автор: efedron 19.6.2006, 15:50
Albinos_x
снкс...вот уж не ожидал smile на досуге посмотрю....сообщу о результатах ;) 

Автор: efedron 20.6.2006, 09:00
Albinos_x
htmlLiteXControl could not be loaded, говорит мне среда smile хотя вроде зарегистрировался компонент нормально... 

Автор: Albinos_x 20.6.2006, 21:35
у меня нормально регистрируется и через макрос в ворде его выводил...

Добавлено @ 21:36 
я ещё посмотрю.... но не ранее пятницы... 

Автор: efedron 26.6.2006, 07:24
Albinos_x
ну что, так ничего и не получилось?
им как библиотекой типов надо пользоваться? вроде все методы и свойства вижу, но так и не понял как на форму его вывести??
З.Ы. еще при закрытии приложения в режиме отладки среда зависает smile 

Автор: Albinos_x 27.6.2006, 17:06
Цитата(efedron @  26.6.2006,  07:24 Найти цитируемый пост)
ну что, так ничего и не получилось?

просто пока времени не было... работа млин... 

Автор: efedron 5.7.2006, 09:05
Albinos_x
есть новости? 

Автор: Albinos_x 12.7.2006, 23:08
выслал на почту перекомпилированный по новой... хотя в принципе ничего не изменилось...
но отмечу некоторые вещи:
1. Компонент должен находиться в папке с английским или цифровым путём ... иначе у меня тоже пишет что компонент не загружается...
2. Для проверки его функционирования набросал простенький макрос в Word ... следующего содержания:
Код

Sub Макрос1()
'
' Ìàêðîñ1 Ìàêðîñ
' Ìàêðîñ çàïèñàí 05.07.2006 Albinos_X
'
      Selection.MoveUp Unit:=wdLine, Count:=1
    Selection.MoveUp Unit:=wdLine, Count:=1
    Selection.TypeParagraph
    Selection.TypeText Text:="чччч"
    Selection.MoveLeft Unit:=wdCharacter, Count:=11, Extend:=wdExtend
    Selection.Font.Italic = wdToggle
    If Selection.Font.Underline = wdUnderlineNone Then
        Selection.Font.Underline = wdUnderlineSingle
    Else
        Selection.Font.Underline = wdUnderlineNone
    UserForm1.Show
    UserForm1.htmlLiteX1.LoadFromString s:="aaaaaa", Reference:="11111"
    
    End If
   
End Sub

Предварительно  соответственно зарегистрировав компонент и создав форму с этим компонентом... выполняется без проблем... появляется форма с контролом внутри текст 
Цитата

"aaaaaa"


Удачи! smile  

Автор: efedron 28.7.2006, 12:04
Albinos_x
разозобрался что не хватало компоненте - stdvcl40.dll - а без него никак?
а как же Runtime pakage? 

Автор: Albinos_x 28.7.2006, 15:19
пока видимо никак... как появитя время рассмотрю этот вопрос... но это будет не скоро.... 

Автор: efedron 2.8.2006, 13:45
Albinos_x
Цитата

tdvcl40.dll - а без него никак?

это-то еще не так критично, больше напрягает то, что при выгрузке формы с контролом в режиме отладки среда разработки зависает, приходится при выходе писать ExitProcess 0, но тогда среда вылетает без сохранения smile

Автор: Albinos_x 2.8.2006, 16:54
Цитата(efedron @  2.8.2006,  13:45 Найти цитируемый пост)
что при выгрузке формы с контролом в режиме отладки среда разработки зависает

тоже заметил эту фигню... в чём проблема пока не нашёл... smile ....

Автор: efedron 3.8.2006, 10:46
такое ощущение, что некоторых методов, которые есть в vcl нет в ocx, напр.
VScrollbarPosition,VScrollbarRange и т.д.
И потом, непонятно, как загрузить в него не весь документ, а только добавить необходимую строку?
Че-то на офсайте не найду справки по использованию...

Автор: Albinos_x 3.8.2006, 18:17
в моём ocx одна процедура отключена частично (IncludeEvent), т.к. из-за него возникали проблемы с компиляцией...т.е. полноченно работать не будет эта процедура...

набор имеющихся функций:
Код

procedure HistoryChangeEvent(Sender: TObject);
    procedure HotSpotClickEvent(Sender: TObject; const SRC: String;
      var Handled: Boolean);
    procedure HotSpotCoveredEvent(Sender: TObject; const SRC: String);
    procedure IncludeEvent(Sender: TObject; const Command: String;
      Params: TStrings; var IString: String);
    procedure KeyPressEvent(Sender: TObject; var Key: Char);
    procedure MetaEvent(Sender: TObject; const HttpEq, Name, Content: String);
    procedure MetaRefreshEvent(Sender: TObject; Delay: Integer;
      const URL: String);
    procedure ProcessingEvent(Sender: TObject; ProcessingOn: Boolean);
    procedure SoundRequestEvent(Sender: TObject; const SRC: String;
      Loop: Integer; Terminate: Boolean);
  protected
    { Protected declarations }
    procedure DefinePropertyPages(DefinePropertyPage: TDefinePropertyPage); override;
    procedure EventSinkChanged(const EventSink: IUnknown); override;
    procedure InitializeControl; override;
    function DisplayPosToXy(DisplayPos: Integer; var X, Y: Integer): WordBool;
      safecall;
    function DrawTextBiDiModeFlagsReadingOnly: Integer; safecall;
    function Find(const S: WideString; MatchCase: WordBool): WordBool;
      safecall;
    function FindDisplayPos(SourcePos: Integer; Prev: WordBool): Integer;
      safecall;
    function FindSourcePos(DisplayPos: Integer): Integer; safecall;
    function Get_AlignDisabled: WordBool; safecall;
    function Get_Base: WideString; safecall;
    function Get_BaseTarget: WideString; safecall;
    function Get_BorderStyle: TxHTMLBorderStyle; safecall;
    function Get_CaretPos: Integer; safecall;
    function Get_CharSet: Byte; safecall;
    function Get_CurrentFile: WideString; safecall;
    function Get_DefBackground: OLE_COLOR; safecall;
    function Get_DefFontColor: OLE_COLOR; safecall;
    function Get_DefFontName: WideString; safecall;
    function Get_DefFontSize: Integer; safecall;
    function Get_DefHotSpotColor: OLE_COLOR; safecall;
    function Get_DefOverLinkColor: OLE_COLOR; safecall;
    function Get_DefPreFontName: WideString; safecall;
    function Get_DefVisitedLinkColor: OLE_COLOR; safecall;
    function Get_DocumentTitle: WideString; safecall;
    function Get_DoubleBuffered: WordBool; safecall;
    function Get_Enabled: WordBool; safecall;
    function Get_History: IStrings; safecall;
    function Get_HistoryIndex: Integer; safecall;
    function Get_HistoryMaxCount: Integer; safecall;
    function Get_ImageCacheCount: Integer; safecall;
    function Get_MarginHeight: Integer; safecall;
    function Get_MarginWidth: Integer; safecall;
    function Get_NoSelect: WordBool; safecall;
    function Get_Palette: LongWord; safecall;
    function Get_Position: Integer; safecall;
    function Get_Processing: WordBool; safecall;
    function Get_ScrollBars: TxScrollStyle; safecall;
    function Get_SelLength: Integer; safecall;
    function Get_SelStart: Integer; safecall;
    function Get_SelText: WideString; safecall;
    function Get_ServerRoot: WideString; safecall;
    function Get_Target: WideString; safecall;
    function Get_TitleHistory: IStrings; safecall;
    function Get_URL: WideString; safecall;
    function Get_ViewImages: WordBool; safecall;
    function Get_Visible: WordBool; safecall;
    function Get_VisibleDockClientCount: Integer; safecall;
    function Get_VisitedMaxCount: Integer; safecall;
    function Get_VScrollBarPosition: Integer; safecall;
    function Get_VScrollBarRange: Integer; safecall;
    function HTMLExpandFilename(const Filename: WideString): WideString;
      safecall;
    function IsRightToLeft: WordBool; safecall;
    function PositionTo(const Dest: WideString): WordBool; safecall;
    function UseRightToLeftReading: WordBool; safecall;
    function UseRightToLeftScrollBar: WordBool; safecall;
    procedure BumpHistory(const FileName, Title: WideString; OldPos: Integer;
      ft: TxhtmlFileType); safecall;
    procedure Clear; safecall;
    procedure ClearHistory; safecall;
    procedure CopyToClipboard; safecall;
    procedure DoEnter; safecall;
    procedure DoExit; safecall;
    procedure InitiateAction; safecall;
    procedure LoadFromFile(const FileName: WideString); safecall;
    procedure LoadFromString(const S, Reference: WideString); safecall;
    procedure LoadImageFile(const FileName: WideString); safecall;
    procedure LoadStrings(const Strings: IStrings;
      const Reference: WideString); safecall;
    procedure LoadTextFile(const FileName: WideString); safecall;
    procedure LoadTextFromString(const S: WideString); safecall;
    procedure LoadTextStrings(const Strings: IStrings); safecall;
    procedure Reload; safecall;
    procedure SelectAll; safecall;
    procedure Set_Base(const Value: WideString); safecall;
    procedure Set_BorderStyle(Value: TxHTMLBorderStyle); safecall;
    procedure Set_CaretPos(Value: Integer); safecall;
    procedure Set_CharSet(Value: Byte); safecall;
    procedure Set_DefBackground(Value: OLE_COLOR); safecall;
    procedure Set_DefFontColor(Value: OLE_COLOR); safecall;
    procedure Set_DefFontName(const Value: WideString); safecall;
    procedure Set_DefFontSize(Value: Integer); safecall;
    procedure Set_DefHotSpotColor(Value: OLE_COLOR); safecall;
    procedure Set_DefOverLinkColor(Value: OLE_COLOR); safecall;
    procedure Set_DefPreFontName(const Value: WideString); safecall;
    procedure Set_DefVisitedLinkColor(Value: OLE_COLOR); safecall;
    procedure Set_DoubleBuffered(Value: WordBool); safecall;
    procedure Set_Enabled(Value: WordBool); safecall;
    procedure Set_HistoryIndex(Value: Integer); safecall;
    procedure Set_HistoryMaxCount(Value: Integer); safecall;
    procedure Set_ImageCacheCount(Value: Integer); safecall;
    procedure Set_MarginHeight(Value: Integer); safecall;
    procedure Set_MarginWidth(Value: Integer); safecall;
    procedure Set_NoSelect(Value: WordBool); safecall;
    procedure Set_Palette(Value: LongWord); safecall;
    procedure Set_Position(Value: Integer); safecall;
    procedure Set_ScrollBars(Value: TxScrollStyle); safecall;
    procedure Set_SelLength(Value: Integer); safecall;
    procedure Set_SelStart(Value: Integer); safecall;
    procedure Set_ServerRoot(const Value: WideString); safecall;
    procedure Set_ViewImages(Value: WordBool); safecall;
    procedure Set_Visible(Value: WordBool); safecall;
    procedure Set_VisitedMaxCount(Value: Integer); safecall;
    procedure Set_VScrollBarPosition(Value: Integer); safecall;
    procedure SetSubComponent(IsSubComponent: WordBool); safecall;

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)