Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Ахтун! TWebBrowser в Delphi - динамическое создание и уничтожение.

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Компилируемые языки] >> Ахтун! TWebBrowser в Delphi - динамическое создание и уничтожение.
Имя
Сообщение << Старые топики   Новые топики >>
Ахтун! TWebBrowser в Delphi - динамическое создание и уничтожение. - 2008-12-03 18:07:34.900000   
vertas

Сообщений: 14
Оценки: 0
Присоединился: 2007-11-22 19:58:36.823333
Нужно создать компонент TWebBrowser, после чего уничтожить старый.
Тема такая:
При открытии окна программы в программе уже есть компонент WebBrowser2… попользовавшись им я создаю повеху него одноименный компонент WebBrowser2 и передаю управление ему…
Как уничтожить старый WebBrowser2 компонент???
ТАК НЕ ПАШЕТ (вылазит ошибка):

вариант1:
WebBrowser2.Free; //уничтожать нельзя, хотя так и логично но вылезит ошибка, компонент то используется... WebBrowser2:=TWebBrowser.Create(Form62); TWinControl(WebBrowser2).Parent:=Form62; WebBrowser2.Width:=406; WebBrowser2.Height:=231; WebBrowser2.Left:=35; WebBrowser2.Top:=245; WebBrowser2.OnDocumentComplete:=WebBrowser2DocumentComplete; Вариант2:
WebBrowser2:=TWebBrowser.Create(Form62); TWinControl(WebBrowser2).Parent:=Form62; WebBrowser2.Width:=406; WebBrowser2.Height:=231; WebBrowser2.Left:=35; WebBrowser2.Top:=245; WebBrowser2.OnDocumentComplete:=WebBrowser2DocumentComplete; WebBrowser2.Free;// нельзя уничтожить потому что не понятно что уничтожаем, ведь теперь 2 компонента с одним именем!?&nbsp;
ВОТ ТАК РАБОТАЕТ:
 
WebBrowser2:=TWebBrowser.Create(Form62); TWinControl(WebBrowser2).Parent:=Form62; WebBrowser2.Width:=406; WebBrowser2.Height:=231; WebBrowser2.Left:=35; WebBrowser2.Top:=245; WebBrowser2.OnDocumentComplete:=WebBrowser2DocumentComplete;&nbsp;
Да, так действительно нет ошибок, но… когда компонентов станет слишком много повиснет комп и память грузит, всетаки нужно уничтожать старые…
Есть идеи??? может кто знает например через указатель как нить удалить?
[>:]
Post #: 1
RE: Ахтун! TWebBrowser в Delphi - динамическое создание и уничтожение. - 2008-12-03 19:40:53.030000   
FLIER

Сообщений: 628
Оценки: 0
Присоединился: 2007-08-29 01:31:15.400000
посмотри здесь: http://webfile.ru/2442332
Post #: 2
RE: Ахтун! TWebBrowser в Delphi - динамическое создание и уничтожение. - 2008-12-03 19:53:50.783333   
vertas

Сообщений: 14
Оценки: 0
Присоединился: 2007-11-22 19:58:36.823333
Это самый первый исходник который я посмотрел еще вчера :(
у меня скачаны все исходники по делфи из интернета так что это бестолку.
тут совсем другой пример, в интернете решения его нет.
 
я немного упростил задачу, смотрите:
но теперь новая проблема… если на кнопку жать много раз то уничтожится компонент только при первом нажатии, потом все снова как и раньше…
//на форме помещен компонент WebBrowser1 &nbsp;procedure TForm1.Button2Click(Sender: TObject); var wb:^TWebBrowser;//указатель begin New(wb); wb^:=WebBrowser1;//теперь указатель указывает на старый компонент WebBrowser1:=TWebBrowser.Create(Form1);//создаем новый одноименный компонент TWinControl(WebBrowser1).Parent:=Form1; WebBrowser1.Width:=406; WebBrowser1.Height:=231; WebBrowser1.Left:=350; WebBrowser1.Top:=15; WebBrowser1.OnDocumentComplete:=WebBrowser1DocumentComplete;//передаем компоненту все полномочия старого WebBrowser1.Navigate('www.google.ru');//загружаем страничку в компанент wb^.Free;//уничтожаем старый компонент по указателю на него end; &nbsp; procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject; &nbsp; const pDisp: IDispatch; var URL: OleVariant); begin ShowMessage('lol'); end;
Post #: 3
RE: Ахтун! TWebBrowser в Delphi - динамическое создание и уничтожение. - 2008-12-03 19:55:29.673333   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333

quote:

ORIGINAL: vertas
у меня скачаны все исходники по делфи из интернета так что это бестолку.


Громко сказано… Чел, сначала подучи дэлфи, потом берись за использование готовых компонент.
Post #: 4
RE: Ахтун! TWebBrowser в Delphi - динамическое создание и уничтожение. - 2008-12-03 20:20:01.866666   
vertas

Сообщений: 14
Оценки: 0
Присоединился: 2007-11-22 19:58:36.823333
:)
ухаха
тут учить нечего, программа элементарная.
только никак не удалить созданный компанент)
если бы я не знал делфи то не написал бы этот пример.
quote:

&nbsp;&nbsp;Чел, сначала подучи дэлфи, потом берись за использование готовых компонент.

найди мне хоть один справочник по этому компоненту, чтобы можно было решить поставленную задачу.
Post #: 5
RE: Ахтун! TWebBrowser в Delphi - динамическое создание и уничтожение. - 2008-12-03 20:31:29.680000   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
Ты хоть один свой компонент написал?

Проблема твоя возникла из-за незнания основ языка, т.к. ты - очередной формошлёп, судя по твоему коду.
Post #: 6
RE: Ахтун! TWebBrowser в Delphi - динамическое создание и уничтожение. - 2008-12-03 20:56:39.036666   
vertas

Сообщений: 14
Оценки: 0
Присоединился: 2007-11-22 19:58:36.823333
не смеши

в программе кода слишком много чтобы имена менять, да и то что по логике должно работать в программе не работает, куча ошибок библиотеки длл вываливает, такую я программу написал и дело не в том что она неправильная а в том что она сложная, выполняет кучу процессов одновременно.
конечно если рассматривать по книге, то сначала должны удалить старый потом создать новый, но книги для кого написаны? для того кто научился только по клавиатуре барабанить.
я и пишу что компоненты должны подменяться, а не в лом удаляться а потом создаваться, имена при этом должны сохраняться.
 
Post #: 7
RE: Ахтун! TWebBrowser в Delphi - динамическое создание и уничтожение. - 2008-12-03 22:24:03.960000   
vertas

Сообщений: 14
Оценки: 0
Присоединился: 2007-11-22 19:58:36.823333
Все, написал сам:8D
Может кому потребуется… Смысл таков, уничтожаем компонент на форме и создаем динамически, после чего динамические подменяем.
для того чтобы понятней было вот готовый код.
на форму кидаем компонент WebBrowser1 и кнопку Button1
var Form1: TForm1; i: integer; bym: boolean; procedure TForm1.FormCreate(Sender: TObject); begin i:=1; bym:=true; end; procedure TForm1.Button1Click(Sender: TObject); var wb: ^TWebBrowser; begin if bym then begin &nbsp; bym:=false; &nbsp; WebBrowser1.Free; &nbsp; WebBrowser1:=TWebBrowser.Create(Form1); &nbsp; TWinControl(WebBrowser1).Parent:=Form1; &nbsp; WebBrowser1.Width:=406; &nbsp; WebBrowser1.Height:=231; &nbsp; WebBrowser1.Left:=35+i; &nbsp; WebBrowser1.Top:=350-i; &nbsp; i:=i+10; &nbsp; WebBrowser1.OnDocumentComplete:=WebBrowser1DocumentComplete; &nbsp; WebBrowser1.Navigate('www.google.ru'); end else begin &nbsp; New(wb); &nbsp; wb^:=WebBrowser1; &nbsp; WebBrowser1:=TWebBrowser.Create(Form1); &nbsp; TWinControl(WebBrowser1).Parent:=Form1; &nbsp; WebBrowser1.Width:=406; &nbsp; WebBrowser1.Height:=231; &nbsp; WebBrowser1.Left:=35+i; &nbsp; WebBrowser1.Top:=350-i; &nbsp; i:=i+10; &nbsp; WebBrowser1.OnDocumentComplete:=WebBrowser1DocumentComplete; &nbsp; WebBrowser1.Navigate('www.google.ru'); &nbsp; wb^.Free; &nbsp; Dispose(wb); end; end;
А смысл всего этого? Все очень просто, это нужно чтобы удалить сессию и куки файлы (если куки удаляются после перезагрузки браузера)
8|
Post #: 8
RE: Ахтун! TWebBrowser в Delphi - динамическое создание и уничтожение. - 2008-12-04 01:58:14.980000   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
Ты ламер. Книги написаны как раз для таких, как ты. Чтобы такие как ты пореже задавали такие тупые вопросы касательно того, что и когда удалять.
Post #: 9
RE: Ахтун! TWebBrowser в Delphi - динамическое создание и уничтожение. - 2009-07-09 17:39:33.610000   
Yugen667

Сообщений: 4
Оценки: 0
Присоединился: 2009-07-09 17:35:45.683333
ты сам ламер, если не можешь толково объяснить человеку!!!

vertas, респект!!! весь инет перерыл, тоже нигде не было решений, пока не наткнулся на твое! ВСЕ работает еще раз респект! Желаю поменьше тебе иметь ответов таких идиотов

p.s. ради сообщения не поленился зарегиться
Post #: 10
RE: Ахтун! TWebBrowser в Delphi - динамическое создание и уничтожение. - 2009-07-14 19:33:17.710000   
NightmareZz

Сообщений: 1087
Оценки: 0
Присоединился: 2006-10-15 11:16:16.833333
Топикстартер - далбаёп. Вопрос из серии "Я отрубил себе топором палец! Как его теперь приклеить?"
Post #: 11
RE: Ахтун! TWebBrowser в Delphi - динамическое создание и уничтожение. - 2009-07-14 20:01:57.866666   
DenCoder

Сообщений: 49
Оценки: 0
Присоединился: 2009-07-07 19:45:30.303333
Серьезно, присоединяюсь к мнению _SaZ_. Vertas не мешало бы 1) Delphi подучить; 2) Писать код внимательнее. Ладно, у меня тоже бывают ошибки, как и у всех. На это есть отладчик, и… если очень непонятно, что происходит - 3) Изучить немного Asm и отлаживаем asm-код. Но только не отладчиком от Borland, а берем OllyDbg!
 
Vertas, тебе очень далеко до тех, кто писал JScript.dll, где вроде все работает, а на самом деле баг на баге. Иногда баг1 + баг2 = нормальная работа. :) Но в итоге теряем производительность…
Post #: 12
RE: Ахтун! TWebBrowser в Delphi - динамическое создание и уничтожение. - 2009-07-28 14:10:56.730000   
=OutlaW=

Сообщений: 382
Оценки: 0
Присоединился: 2009-01-08 17:19:13.703333
Не хотел создавать тему по такому глупому вопросу. В чем ошибка:

responseres.Text := Idhttp1.Get('http://www.site.ru/?page='+IntToStr(Random(1000)));

Почему страница не грузится рандомно? А грузится только http://www.site.ru/?page=
Post #: 13
RE: Ахтун! TWebBrowser в Delphi - динамическое создание и уничтожение. - 2009-07-28 14:41:52.930000   
furiousangel

Сообщений: 1116
Оценки: 0
Присоединился: 2005-05-28 06:31:47
Возможно при обращении к несуществующей странице тебя редиректит на http://www.site.ru/?page= ?
Ты ведь не проверяешь есть ли такая страница.

Топикстартеру: Вобщем впосне согласен что код ламерский. РТФМ итд итп. А еще бросай делфи. Зря тратишь время.
Post #: 14
RE: Ахтун! TWebBrowser в Delphi - динамическое создание и уничтожение. - 2009-07-28 14:47:36.496666   
=OutlaW=

Сообщений: 382
Оценки: 0
Присоединился: 2009-01-08 17:19:13.703333
В том то и дело что на сайте точно есть страницы с  http://www.site.ru/?page=1 по http://www.site.ru/?page=1000
Значит тут нет ошибки?: Idhttp1.Get('http://www.site.ru/?page='+IntToStr(Random(1000)));


ЗЫ Я уже и целочисленную переменную пробовал создавать, потом рандомить ее и преобразовывать в стринг. Эффект - тот же =(
Post #: 15
RE: Ахтун! TWebBrowser в Delphi - динамическое создание и уничтожение. - 2009-07-28 14:58:51.026666   
furiousangel

Сообщений: 1116
Оценки: 0
Присоединился: 2005-05-28 06:31:47
1) функция Random(1000) псевдослучайно генерирует одно из 1000 чисел в диапазоне от 0 до 999
2) если есть страница с page=1000, то это вовсе не значит что есть page=999, page=998 или page=521
Post #: 16
Страниц:  [1]
Все форумы >> [Компилируемые языки] >> Ахтун! TWebBrowser в Delphi - динамическое создание и уничтожение.







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.