Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2006.10.01;
Скачать: [xml.tar.bz2];

Вниз

из TWebbrowser в Memo   Найти похожие ветки 

 
Sergio77   (2006-08-22 18:27) [0]

Привет всем!
как перетащить выделенный текст из TWebbrowser в Memo?


 
Rentgen ©   (2006-08-23 10:17) [1]

скопировать, вставить?


 
tButton ©   (2006-08-23 10:28) [2]


> как перетащить

мышью?


 
Sergio77   (2006-08-23 11:02) [3]


> > как перетащить
>
> мышью?


интересует мышью

на счет скопровать и вставить:

function GetBrowserSelection(WB: TWebBrowser): string;
var
 Doc: Variant;
begin
 if WB.Document <> nil then
 begin
   Doc := WB.Document;
   try
     Result := Doc.Selection.createRange.Text
   finally
     Doc := Unassigned;
   end;
 end
 else
   Result := "";
end;

такая функция не всегда помогает, не помогает в частности тогда, когда слева какое-то дерево, а спрва уже информация по ссылкам дерева слева, и когда нажимаешь на ссылки дерева, то вверху не появляется ссылка (в строке ввода браузера обычного)


 
easy ©   (2006-08-23 13:39) [4]

Unit1.dfm
object Form1: TForm1
 Left = 0
 Top = 0
 Caption = "Form1"
 ClientHeight = 382
 ClientWidth = 521
 Color = clBtnFace
 Font.Charset = DEFAULT_CHARSET
 Font.Color = clWindowText
 Font.Height = -11
 Font.Name = "Tahoma"
 Font.Style = []
 OldCreateOrder = False
 OnCreate = FormCreate
 OnDestroy = FormDestroy
 PixelsPerInch = 96
 TextHeight = 13
 object StatusBar1: TStatusBar
   Left = 0
   Top = 363
   Width = 521
   Height = 19
   Panels = <>
 end
 object WebBrowser1: TWebBrowser
   Left = 0
   Top = 0
   Width = 521
   Height = 363
   Align = alClient
   TabOrder = 1
   ExplicitLeft = 288
   ExplicitTop = 112
   ExplicitWidth = 300
   ExplicitHeight = 150
   ControlData = {
     4C000000D9350000842500000000000000000000000000000000000000000000
     000000004C000000000000000000000001000000E0D057007335CF11AE690800
     2B2E126208000000000000004C0000000114020000000000C000000000000046
     8000000000000000000000000000000000000000000000000000000000000000
     00000000000000000100000000000000000000000000000000000000}
 end
end


Unit1.pas
unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, OleCtrls, SHDocVw, ComCtrls, StdCtrls,ActiveX;
type
 TadvMemo = class(TMemo, IDropTarget)
 protected
   function IDropTarget.DragOver = DragOverOLE;
   function DragEnter(const dataObj: IDataObject; grfKeyState: Longint;
     pt: TPoint; var dwEffect: Longint): HResult; stdcall;
   function DragOverOLE(grfKeyState: Longint; pt: TPoint;
     var dwEffect: Longint): HResult; stdcall;
   function DragLeave: HResult; stdcall;
   function Drop(const dataObj: IDataObject; grfKeyState: Longint; pt: TPoint;
     var dwEffect: Longint): HResult; stdcall;
   procedure CreateWnd; override;
   procedure DestroyWnd; override;
 end;

type
 TForm1 = class(TForm)
   StatusBar1: TStatusBar;
   WebBrowser1: TWebBrowser;
   procedure FormCreate(Sender: TObject);
   procedure FormDestroy(Sender: TObject);
 private
   { Private declarations }
   advMemo: TadvMemo;
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

{ TadvMemo }

procedure TadvMemo.CreateWnd;
begin
 inherited;
 RegisterDragDrop(Handle, self as IDropTarget);
end;

procedure TadvMemo.DestroyWnd;
begin
 inherited;
 RevokeDragDrop(Handle);
end;

function TadvMemo.DragEnter(const dataObj: IDataObject; grfKeyState: Integer;
 pt: TPoint; var dwEffect: Integer): HResult;
begin
 Result := S_OK;
end;

function TadvMemo.DragLeave: HResult;
begin
 Result := S_OK;
end;

function TadvMemo.DragOverOLE(grfKeyState: Integer; pt: TPoint;
 var dwEffect: Integer): HResult;
begin
 Result := S_OK;
end;

function TadvMemo.Drop(const dataObj: IDataObject; grfKeyState: Integer;
 pt: TPoint; var dwEffect: Integer): HResult;
var
 FMT: FORMATETC;
 MED: STGMEDIUM;
 Size: DWORD;
 Buffer: PChar;
 Text2: string;
begin
 Result := S_OK;
 FMT.cfFormat := CF_TEXT;
 FMT.ptd := nil;
 FMT.dwAspect := DVASPECT_CONTENT;
 FMT.lindex := -1;
 FMT.tymed := TYMED_HGLOBAL;
 try
   dataObj.GetData(FMT, MED);
   Size := GlobalSize(MED.hGlobal);
   Buffer := GlobalLock(MED.hGlobal);
   SetString(Text2, Buffer, Size);
   GlobalUnlock(MED.hGlobal);
   ReleaseStgMedium(MED);
   SelText := Text2;
 except
   Result := E_UNEXPECTED;
 end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 advMemo:= TadvMemo.Create(self);
 with advMemo do begin
   Align := alLeft;
   parent := self;
 end;
 WebBrowser1.Navigate("yandex.ru");
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
 advMemo.Free;
end;

initialization
 OleInitialize(nil);

finalization
 OleUninitialize;
end.


 
Sergio77   (2006-08-23 15:18) [5]


> easy ©  


спасибо огромное!!!

если не сложно, растолкуй как превратить этот мемо в компонент у которого будет событие до получения текста и после получения текста, ну и само свойство текст (хотя в мемо оно уже есть)??



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2006.10.01;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.015 c
3-1154031126
bumper
2006-07-28 00:12
2006.10.01
Битовые операции в SQL


1-1154204021
Destroyer
2006-07-30 00:13
2006.10.01
MS Outlook


15-1158037541
Ega23
2006-09-12 09:05
2006.10.01
С Днём рождения! 12 сентября


2-1157577757
PPartition
2006-09-07 01:22
2006.10.01
Корректна ли такая конструкция ?


1-1155860315
DDDeN
2006-08-18 04:18
2006.10.01
Сделать снимок раб. стола





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский