Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.08.2014, 23:07   #11
Fahman
Форумчанин
 
Аватар для Fahman
 
Регистрация: 03.04.2013
Сообщений: 703
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Вот о чем:
1) У меня нет желания ставить себе хромиум. Никакого.
2) Ты как с ним работаешь? Покажи. Создаешь динамически? Отлично. Записывай то что создано в переменку типа TObjectList, потом по ней проходись и выясняй данные.
3) Если компонент хрома у тебя один единственный то найди в нем свойство, отвечающее за адрес запрошенной страницы. Его и проверяй.
К чему лишние переменные? Это хорошо еще если компонент один, а что делать когда их будет сотня? Сто глобалок создавать?
их и не 1 а 10 )))
99% ошибок компьютера сидит в полуметре от монитора.
Fahman вне форума Ответить с цитированием
Старый 18.08.2014, 10:01   #12
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

ВотЪ. Стало быть предлагаю использовать TObjectList в качестве массива для твоих хромчиков, чтоб потом циклом проходить по ним.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 18.08.2014, 11:12   #13
Fahman
Форумчанин
 
Аватар для Fahman
 
Регистрация: 03.04.2013
Сообщений: 703
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
ВотЪ. Стало быть предлагаю использовать TObjectList в качестве массива для твоих хромчиков, чтоб потом циклом проходить по ним.
Хорошо, я вам благодарен но я же совсем точно вас понял.... может есть урок? ну по читать)) знаете я же самоучка тут)))
99% ошибок компьютера сидит в полуметре от монитора.
Fahman вне форума Ответить с цитированием
Старый 18.08.2014, 11:44   #14
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Урок могу преподать на примере страниц в PageControls:
Код:
unit Unit1;

{$mode objfpc}{$H+}

interface

uses    contnrs, //Модуль для контейнеров
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics,
  Dialogs, ComCtrls, StdCtrls;

type

  { TForm1 }

  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    PageControl1: TPageControl;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
  private
    Chromes:TObjectList; // переменка контейнер для массива объектов
    { private declarations }
  public
    { public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.lfm}

{ TForm1 }

procedure TForm1.FormCreate(Sender: TObject);
begin
  Chromes:=TObjectList.create;   // Создаем ее
end;

procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
begin
 // Если нужно добавть новый в контейнер, но с проверкой на уникальность по заголовку
 for i:=0 to Chromes.Count-1 do begin
   // Проходимся циклом по контейнеру
   if TTabSheet(Chromes[i]).Caption=Edit1.Text then begin
    // Если такой найден  -переходим к нему без добавления
    PageControl1.ActivePage:=TTabSheet(Chromes[i]);
    // И выходим вон.
    Exit;
   end;
 end;
 //Иначе добавим в контейнер новый объект
 Chromes.Add(PageControl1.AddTabSheet);
 // И зададим ему нужные свойства
 with TTabSheet(Chromes[Chromes.Count-1]) do begin
   Caption:=Edit1.Text;
 end;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  Chromes.Free;   // Освобождаем
end;

end.
Если что не понятно - спрашивай. Комментану подробнее.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 18.08.2014, 12:27   #15
Fahman
Форумчанин
 
Аватар для Fahman
 
Регистрация: 03.04.2013
Сообщений: 703
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Урок могу преподать на примере страниц в

Если что не понятно - спрашивай. Комментану подробнее.
Это мы сейчас создали chromium динамический так? Ну если есть например вкладка с именем которое хранится в edit1.text то такое же не создаем а переходим?

А вот это зачем?
{$mode objfpc}{$H+}
99% ошибок компьютера сидит в полуметре от монитора.
Fahman вне форума Ответить с цитированием
Старый 18.08.2014, 12:54   #16
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Это мы сейчас создали chromium динамический так? Ну если есть например вкладка с именем которое хранится в edit1.text то такое же не создаем а переходим?
Да. Именно.
Цитата:
А вот это зачем?
А это защита от копипасте для новичков )
Чтоб не бездумно код вставляли, а анализировали и делали по образу и подобию
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 18.08.2014, 13:03   #17
Fahman
Форумчанин
 
Аватар для Fahman
 
Регистрация: 03.04.2013
Сообщений: 703
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Да. Именно.

А это защита от копипасте для новичков )
Чтоб не бездумно код вставляли, а анализировали и делали по образу и подобию
Ну я хоть и иногда делаю копипаст но смотрю код) вникать то надо...
В общем я ща по пробую написать то что мне надо половину я понял а остальное нет.... Ща или чуток позже покажу что у меня получилось...
99% ошибок компьютера сидит в полуметре от монитора.
Fahman вне форума Ответить с цитированием
Старый 18.08.2014, 13:50   #18
Fahman
Форумчанин
 
Аватар для Fahman
 
Регистрация: 03.04.2013
Сообщений: 703
По умолчанию

Стойте а зачем мне создавать динамический этот компонент? у меня уже есть парочку вкладок и там есть этот компонент а вот зачем создавать не пойму? просто надо было изначально проверить есть ли ссылка в браузере и все если браузер не пустой то ничего ни делаем....
Еще 2 вопроса
Ошибка [Error] Unit1.pas(51): Undeclared identifier: 'AddTabSheet'
как и где взять описание всех ошибок?
к примеру такие
[Error] Unit1.pas(151)
[Error] Unit1.pas(54)
[Error] Unit1.pas(43)
99% ошибок компьютера сидит в полуметре от монитора.
Fahman вне форума Ответить с цитированием
Старый 18.08.2014, 14:24   #19
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
надо было изначально проверить
Тогда правду-матку: 10 IF с проверками каждого из компонентов.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 18.08.2014, 14:27   #20
Fahman
Форумчанин
 
Аватар для Fahman
 
Регистрация: 03.04.2013
Сообщений: 703
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Тогда правду-матку: 10 IF с проверками каждого из компонентов.
Да вот у меня было так
Код:
try
if ts1.tabindex = 1
 then Chromium2.load('')
else
тут уже не чо не делаю....

Это при переключениях и проверка в хроме
Код:
procedure TForm1.Chromium1BeforeBrowse(Sender: TObject;
  const browser: ICefBrowser; const frame: ICefFrame;
  const request: ICefRequest; navType: TCefHandlerNavtype;
  isRedirect: Boolean; out Result: Boolean);
begin
     if not chrload then
 begin
  chrload := True;
        Chromium1.Load(Edit1.Text);
 end;
end;
только переменных будет 10)
99% ошибок компьютера сидит в полуметре от монитора.

Последний раз редактировалось Fahman; 18.08.2014 в 14:30.
Fahman вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Повторное нажатие HTTqp Общие вопросы Delphi 5 23.05.2014 09:17
Повторное использование формы kogtishka Общие вопросы Delphi 1 16.04.2012 19:57
Повторное нажатие Vitalya_1993 Помощь студентам 2 16.12.2011 04:47
Повторное вхождение слов as1212 Помощь студентам 1 02.11.2011 20:55
Повторное соединение (Indy) palm Работа с сетью в Delphi 4 24.02.2011 21:06