Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не могу открыть файл, открыто не дочернее окно 
V
    Опции темы
Foley
Дата 21.3.2006, 23:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Фсемба Яцца
*


Профиль
Группа: Участник
Сообщений: 235
Регистрация: 31.1.2006
Где: Россия, Арх.обл

Репутация: 2
Всего: 7



Вот сделал по примеру Snowy, что бы прога открывала новый пэйдж при создании формы, но в этой форме не открываются файлы (что в мемо, что в веббраузер) с другими компонентами не пробовал. Открываю форму так:
Код

var
  form: TForm2;
  tab: TTabSheet;
begin
form := TForm2.Create(Application);
tab := TTabSheet.Create(PageControl1);
 tab.Caption := form.Caption;
 form.Parent := tab;
 form.Align := alClient;
tab.PageControl := PageControl1;
form.Show;

файл открыть пытаюсь так:
Код

if OpenDialog1.Execute then Form2.Memo1.Lines.LoadFromFile(OpenDialog1.FileName);

не выдает никакой ошибки, но и файл не открывает. Не подскажите в чем проблема?

Это сообщение отредактировал(а) Foley - 21.3.2006, 23:42
PM MAIL ICQ   Вверх
Guedda
Дата 22.3.2006, 08:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


Профиль
Группа: Завсегдатай
Сообщений: 3137
Регистрация: 27.12.2005
Где: Ростов-на-Дону

Репутация: 14
Всего: 78



А можето вот так попробуешь:
Код

if OpenDialog1.Execute then Form.Memo1.Lines.LoadFromFile(OpenDialog1.FileName);

И еще, где у тебя лежит OpenDialog? На главной, или дочерней форме?


--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
Snowy
Дата 22.3.2006, 09:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



Form2 не существует.
Существует форма типа TForm2.

Цитата(Foley @ 21.3.2006, 23:41 Найти цитируемый пост)
form := TForm2.Create(Application);

Вот мы ее создали. С ней и должны работать.
А как - зависит от дальнейшей реализации.
Если она у тебя в единственном экземпляре, то можно перестроить на Form2.
То есть убрать form := TForm2.Create(Application); и вместо form использовать Form2.
Если этой формы у небя несколько экземпляров на разных страницах, то тут все достаточно интересней...
PM MAIL   Вверх
Foley
Дата 22.3.2006, 20:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Фсемба Яцца
*


Профиль
Группа: Участник
Сообщений: 235
Регистрация: 31.1.2006
Где: Россия, Арх.обл

Репутация: 2
Всего: 7



Цитата(Snowy @ 22.3.2006, 09:35 Найти цитируемый пост)
Если этой формы у небя несколько экземпляров на разных страницах, то тут все достаточно интересней...

именно несколько экземпляров... а ошибку уже выдает
PM MAIL ICQ   Вверх
Foley
Дата 22.3.2006, 21:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Фсемба Яцца
*


Профиль
Группа: Участник
Сообщений: 235
Регистрация: 31.1.2006
Где: Россия, Арх.обл

Репутация: 2
Всего: 7



Вот картинка, которая надеюсь упростит ваше понимание моей проблемы.
процедура поиска сайта:
Код

var
     form: TF_child;
begin
if CheckUrl(ComboBox1.Text)=true then
StatusBar1.Panels[2].Text:='Узел найден'
else StatusBar1.Panels[2].Text:='Ошибка соединения с сайтом  '+ComboBox1.Text;
form.WebBrowser1.Navigate(WideString(ComboBox1.Text));
if ComboBox1.Items.IndexOF(Text) = -1 then
ComboBox1.Items.Add(ComboBox1.Text);
ComboBox1.Text:=form.WebBrowser1.LocationURL;

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

Присоединённый файл ( Кол-во скачиваний: 14 )
Присоединённый файл  browser.JPG 33,46 Kb
PM MAIL ICQ   Вверх
Pakshin A. S.
Дата 22.3.2006, 22:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 5056
Регистрация: 16.2.2003

Репутация: 21
Всего: 61



PageControl1.ActivePage? А на ней и WebBrowser можно найти...
PM   Вверх
Foley
Дата 22.3.2006, 23:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Фсемба Яцца
*


Профиль
Группа: Участник
Сообщений: 235
Регистрация: 31.1.2006
Где: Россия, Арх.обл

Репутация: 2
Всего: 7



Цитата(Pakshin A. S. @ 22.3.2006, 22:36 Найти цитируемый пост)
А на ней и WebBrowser можно найти...

Access Violation at address...

а при открытии файла - "Неопознанная ошибка", файл открываю так:
Код

var
  form: TF_child; // или как там у тебя ребенка зовут...
  tab: TTabSheet;
begin
  form := TF_child.Create(Application);
  tab := TTabSheet.Create(PageControl1);
  tab.Caption := form.Caption;
  form.Parent := tab;
  form.Align := alClient;
  tab.PageControl := PageControl1;
  form.Show;
if OpenDialog1.Execute then form.WebBrowser1.Navigate(OpenDialog1.FileName);

хотя с мемо у меня все получилось.(открывает без ошибки и правильно)
PM MAIL ICQ   Вверх
Quadr0
Дата 22.3.2006, 23:51 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











...

Это сообщение отредактировал(а) Quadr0 - 15.7.2011, 10:57
  Вверх
Pakshin A. S.
Дата 22.3.2006, 23:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 5056
Регистрация: 16.2.2003

Репутация: 21
Всего: 61



Скопировал код... Запустил... работает...

Как я понял, на каждом TabSheet'е у нас должна загружаться картиночка... Может тогда стоит отказаться от дочерних окон и заменить вот на это:
Код

var
 wb: TWebBrowser;
 tab: TTabSheet;
begin
  tab := TTabSheet.Create(PageControl1);
  tab.Caption := '';
  tab.PageControl := PageControl1;
  wb:=TWebBrowser.Create(tab);
  wb.ParentWindow:=tab.Handle;
  if OpenDialog1.Execute
    then
     wb.Navigate(OpenDialog1.FileName);
end;

Добавлено @ 00:09
О... И название у TabSheet'а культурное:
Код

procedure TForm1.Button1Click(Sender: TObject);
var
 TabSheet: TTabSheet;
 WebBrowser: TWebBrowser;
begin
 if OpenDialog1.Execute
  then
   begin
    TabSheet:=TTabSheet.Create(PageControl1);
    TabSheet.PageControl:=PageControl1;
    WebBrowser:=TWebBrowser.Create(TabSheet);
    WebBrowser.ParentWindow:=TabSheet.Handle;
    WebBrowser.Align:=alClient;
    WebBrowser.Navigate(OpenDialog1.FileName);
    Application.ProcessMessages;
    TabSheet.Caption:=WebBrowser.LocationName
   end
end;

PM   Вверх
Foley
Дата 23.3.2006, 09:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Фсемба Яцца
*


Профиль
Группа: Участник
Сообщений: 235
Регистрация: 31.1.2006
Где: Россия, Арх.обл

Репутация: 2
Всего: 7



Так, все создает без ошибки (2-й код щас попробую), но как мне максимизировать на весь пэйдж?
пробовал так
Код

PageControl1.ActivePageIndex:=PageControl1.PageCount;
  PageControl1.TabIndex.wb.Align:=alClient;

не получается, и как мне с адресной строки в активном пэйдже искать?
Добавлено @ 09:44
как работать с мемо разобрался, с бравзером немного посложней оказалось...
PM MAIL ICQ   Вверх
Pakshin A. S.
Дата 23.3.2006, 10:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 5056
Регистрация: 16.2.2003

Репутация: 21
Всего: 61



Цитата(Foley @ 23.3.2006, 09:44 Найти цитируемый пост)
и как мне с адресной строки в активном пэйдже искать

Код

// Код писал здесь же, потому могут быть неточности...
with PageControl1.ActivePage do
 for i:=0 to ComponentCount-1 do
  if Components[i].ClassType = TWebBrowser
   then
    (Components[i] AS TWebBrowser).Navigate(Edit1.Text);

Вроде ак, если у тебя на активном располагается WebBrowser, а если у тебя на активном располагается окно, то сначала ищем окно, а потом в окре ищем WebBrowser...
PM   Вверх
Pakshin A. S.
Дата 23.3.2006, 10:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 5056
Регистрация: 16.2.2003

Репутация: 21
Всего: 61



Цитата(Foley @ 23.3.2006, 09:44 Найти цитируемый пост)
но как мне максимизировать на весь пэйдж?

вот доарботанный код:
Код

var
 TabSheet: TTabSheet;
 WebBrowser: TWebBrowser;
begin
 if OpenDialog1.Execute
  then
   begin
    TabSheet:=TTabSheet.Create(PageControl1);
    TabSheet.PageControl:=PageControl1;
    WebBrowser:=TWebBrowser.Create(TabSheet);
    WebBrowser.ParentWindow:=TabSheet.Handle;
    WebBrowser.ClientHeight:=TabSheet.Height; // Вот тут установка высоты,
    WebBrowser.ClientWidth:=TabSheet.Width; // а здесь ширины от предка...
    WebBrowser.Navigate(OpenDialog1.FileName);
    Application.ProcessMessages;
    TabSheet.Caption:=WebBrowser.LocationName
   end
end;



PM   Вверх
Foley
Дата 23.3.2006, 22:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Фсемба Яцца
*


Профиль
Группа: Участник
Сообщений: 235
Регистрация: 31.1.2006
Где: Россия, Арх.обл

Репутация: 2
Всего: 7



Ну что товариши програмисты, научили молодца уму-разуму!!!! Общими усилиями проблема решена!!!!!! Кроме огромного спасибо на человека даже не знаю чем благодарить!!!! (ОСОБАЯ БЛАГОДАРНОСТЬ - Pakshin A.S. // не знаю что бы я без твоей помощи делал)!!!!!!!!!!!!

Это сообщение отредактировал(а) Foley - 23.3.2006, 22:48
PM MAIL ICQ   Вверх
Pakshin A. S.
Дата 24.3.2006, 12:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 5056
Регистрация: 16.2.2003

Репутация: 21
Всего: 61



Цитата(Foley @ 23.3.2006, 22:45 Найти цитируемый пост)
ОСОБАЯ БЛАГОДАРНОСТЬ - Pakshin A.S.

Всегда рад помочь... smile

Кстати, динамическое создание WebBrowser'ов, а не использование уже заготовленных форм сокращает размеры exe-файла... smile
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

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

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0561 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.