Delphi и Pagecontrol
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
Delphi и Pagecontrol - 2008-12-12 17:57:10.676666
|
|
|
AloneHate
Сообщений: 76
Оценки: 0
Присоединился: 2008-01-13 07:36:57.400000
|
прошу помощи, т.к. уже мозг кипит, не могу разобраться. творю что то вроде браузера(пример: опера с динамическим созданием страниц-закладок), задача: при нажатие на ссылке должна создаться новая страница в Pagecontrol (создаётся, всё впорядке), далее на этой новой странице/закладке нужно так же создать WebBrowser и передать URL, и вот тут возникает проблема :( пытаюсь так:
with PageControl1.Pages[Pagecontrol1.PageCount-1] do
begin
ppDisp := WebBrowser1.DefaultDispatch;
Show;
end;
но не выходит (( ! если вместо with PageControl1.Pages[Pagecontrol1.PageCount-1] do вписать with TForm1.Create(Self) do то создаётся новая форма со всем содержимым (копия главной формы) попробывал создать панель вместо ppDisp := WebBrowser1.DefaultDispatch; Show; - создаётся но только на первой закладке :( чувствую что намудрил, но самому сложно разобраться (я только учусь)
|
|
|
RE: Delphi и Pagecontrol - 2008-12-12 18:22:35.966666
|
|
|
_SaZ_
Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
|
Ты как на закладках создаёшь TWebBrowser?
|
|
|
RE: Delphi и Pagecontrol - 2008-12-13 09:30:42.510000
|
|
|
AloneHate
Сообщений: 76
Оценки: 0
Присоединился: 2008-01-13 07:36:57.400000
|
создаю вот так:
procedure TForm1.WebBrowser1NewWindow2(Sender: TObject;
var ppDisp: IDispatch; var Cancel: WordBool);
var
ts: TTabSheet;
WB: TWebbrowser;
begin
// Create a new TabSheet
ts := TTabSheet.Create(PageControl);
try
// Assign TTabSheet Properties
ts.PageControl := PageControl;
ts.Parent := PageControl;
ts.PageIndex := PageControl.ActivePageIndex + 1;
ts.Caption:=form1.WebBrowser1.LocationName;
// Create a TWebbrowser instance
WB := TWebbrowser.Create(ts);
// put TWebbrowser on TTabSheet
TControl(WB).Parent := ts;
// or: Ts.InsertControl(WB);
WB.Align := alClient;
WB.Silent := True;
WB.Visible := True;
PageControl.ActivePage := ts;
// Assign Webbrowser Events
//++++++++++++++ Вот это нужно заменить, но незнаю чем(описание ниже)
ppDisp := WebBrowser1.DefaultDispatch;
Show;
//++++++++++++++++++++++++++++++++++++++++++++++++++++
except
ts.Free;
end;
end;
теперь создаётся новая "закладка", на новой закладке создаётся WB, но не передаётся URL от WebBrowser1. паралельно возникают вопросы: 1. будет ли этот код уневерсальным? (например в том оке которое создаётся, пользователь жмёт на другую ссылку и тогда так же создастся новая закладка, и на ней новые объекты, по свойствам как и первый WB) 2. после решения первого вопроса нужно будет всю эту конструкцию заталкать в ещё один PageControl, и при создании новой страницы нужно опять динамически воссоздать всё что было (компонент PageControl1, и одна страница с компонентом WebBrowser) уже на новой странице главного PageControl… Вроде бы гдето мне попадалась статья как можно всё это дело заталкать в массив! возникает вопрос - это самый лутший способ в решении этой задачи, или есть более рациональный способ? ***Исходник*** З.Ы. var ppDisp: IDispatch Dispatch interface types (Windows only) - туго у меня с вражеским языком, но это значит что это только для окон? например при создании нового окна? или я путаю…
|
|
|
RE: Delphi и Pagecontrol - 2008-12-14 04:21:49.953333
|
|
|
AloneHate
Сообщений: 76
Оценки: 0
Присоединился: 2008-01-13 07:36:57.400000
|
народ чё никто помочь неможет?
|
|
|
RE: Delphi и Pagecontrol - 2008-12-14 14:08:00.800000
|
|
|
_SaZ_
Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
|
А что тут помогать-то. Распиши на листике алгоритм, потом закодируй его. Только предварительно выкури документации по tabcontrol и webbrowser. Скорее всего у тебя проблема логического характера.
|
|
|
RE: Delphi и Pagecontrol - 2008-12-14 17:05:08.950000
|
|
|
AloneHate
Сообщений: 76
Оценки: 0
Присоединился: 2008-01-13 07:36:57.400000
|
с первой частью программы покончено :) вот теперь голову ломаю со второй частью: нужно всю эту конструкцию заталкать в ещё один PageControl, и при создании новой страницы нужно опять динамически воссоздать всё что было (компонент PageControl1, и одна страница с компонентом WebBrowser) уже на новой странице главного PageControl… в каком направлении копать? на сколько я понимаю нужно всю эту конструкцию заталкать в массив?
|
|
|
RE: Delphi и Pagecontrol - 2008-12-14 17:58:01.570000
|
|
|
alexbozhko
Сообщений: 1024
Оценки: 0
Присоединился: 2005-11-24 13:35:34
|
quote:
ORIGINAL: AloneHate с первой частью программы покончено :) вот теперь голову ломаю со второй частью: нужно всю эту конструкцию заталкать в ещё один PageControl, и при создании новой страницы нужно опять динамически воссоздать всё что было (компонент PageControl1, и одна страница с компонентом WebBrowser) уже на новой странице главного PageControl… в каком направлении копать? на сколько я понимаю нужно всю эту конструкцию заталкать в массив? Как-то ты сумбурно немного все объясняешь… В любом случае, ты можешь использовать для запихивания контролов не массив, а List. Возьми Марко Кэнту D7 Для профессионалов и там на стр.176 почитай про TObjectList.
|
|
|
RE: Delphi и Pagecontrol - 2008-12-17 19:45:41.773333
|
|
|
b[e]nd3p
Сообщений: 187
Оценки: 0
Присоединился: 2008-09-02 20:54:56.370000
|
Еще как вариант сделать свой класс и при создании новой страницы его воссоздать, если правильно помню.
|
|
|
RE: Delphi и Pagecontrol - 2008-12-18 04:40:56.330000
|
|
|
AloneHate
Сообщений: 76
Оценки: 0
Присоединился: 2008-01-13 07:36:57.400000
|
2 alexbozhko, спасибо за подсказку (книга интересная которую посоветовал) 2 b[e]nd3p, если первый вариант не смогу реализовать, буду ковырять в сторону классов ))
|
|
|
RE: Delphi и Pagecontrol - 2008-12-18 13:13:43.376666
|
|
|
_SaZ_
Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
|
Как можно писать на дэлфи, не зная ООП ("классов") о_О ??
|
|
|
RE: Delphi и Pagecontrol - 2008-12-18 19:45:48.406666
|
|
|
Denaturat
Сообщений: 1741
Оценки: 453
Присоединился: 2008-10-27 20:50:06.380000
|
quote:
ORIGINAL: _SaZ_ Как можно писать на дэлфи, не зная ООП ("классов") о_О ?? классы - это ещё не ООП; более того, это вообще не ООП. а насчёт того, "как" - формошлёпство никто не отменял, что тебя удивляет?
|
|
|
RE: Delphi и Pagecontrol - 2008-12-18 20:32:30.436666
|
|
|
_SaZ_
Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
|
"Классы" в кавычках не просто так =).
|
|
|
RE: Delphi и Pagecontrol - 2008-12-19 06:22:50.786666
|
|
|
AloneHate
Сообщений: 76
Оценки: 0
Присоединился: 2008-01-13 07:36:57.400000
|
народ, я же написал что УЧУСЬ, ещё в первом посте! что такое клас я знаю! а на счёт формашлёпства-думаю почти все с этого начинали! З.Ы. всем огромное "спасибо" за помощь!
|
|
|
RE: Delphi и Pagecontrol - 2008-12-19 06:41:15.370000
|
|
|
Denaturat
Сообщений: 1741
Оценки: 453
Присоединился: 2008-10-27 20:50:06.380000
|
quote:
ORIGINAL: AloneHate народ, я же написал что УЧУСЬ, ещё в первом посте! что такое клас я знаю! а на счёт формашлёпства-думаю почти все с этого начинали! З.Ы. всем огромное "спасибо" за помощь! а на тебя кто-то наезжает? мы это так, мысли вслух насчёт формошлёпства ты немножко ошибаешься - нормальные люди начинают с дискретной математики, а конкретно - универсальных вычислителей. потом уже теория алгоритмов, теория структур данных и разные парадигмы их объединения - в том числе и ООП формошлёпство вообще не нужно, делать GUI на IDE'шных RAD'ах - убожество; если тебе так интересно начинать именно с GUI - посмотри в сторону Tcl/Tk
|
|
|
RE: Delphi и Pagecontrol - 2008-12-19 09:50:36.336666
|
|
|
AloneHate
Сообщений: 76
Оценки: 0
Присоединился: 2008-01-13 07:36:57.400000
|
quote:
насчёт формошлёпства ты немножко ошибаешься - нормальные люди начинают с дискретной математики, а конкретно - универсальных вычислителей. потом уже теория алгоритмов, теория структур данных и разные парадигмы их объединения - в том числе и ООП согласен, погарячился :) но я самоучка и могу применять пока только формашлёпство, как бы это смешно/грустно не звучало :( З.Ы. качаю книги по дискретке :)
|
|
|
|
|