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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.07.2014, 19:49   #1
Fahman
Форумчанин
 
Аватар для Fahman
 
Регистрация: 03.04.2013
Сообщений: 703
По умолчанию page control

Всем хай нужна помощь ваша ребята.
В общем я взял компонент кинул на форму потом на
Код:
procedure TForm1.ts4Enter(Sender: TObject);
begin
 Chromium3.Load('l');
end;
Поставил функцию вот так этакую но когда я открываю программу и кликаю по окну и у меня не открывается сайт а если подождать секунд 10-15 и потом опять перейти по какому нить окну то у меня открывается сразу сайт.. В чем мой косяк?
99% ошибок компьютера сидит в полуметре от монитора.
Fahman вне форума Ответить с цитированием
Старый 04.07.2014, 20:07   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
ts4Enter
Это что за событие?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 04.07.2014, 20:19   #3
Fahman
Форумчанин
 
Аватар для Fahman
 
Регистрация: 03.04.2013
Сообщений: 703
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Это что за событие?
99% ошибок компьютера сидит в полуметре от монитора.
Fahman вне форума Ответить с цитированием
Старый 04.07.2014, 20:27   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Лучше опиши это действие в событии OnChange самого PageControl.
Дело в том что сам TabSheet не получает никакого фокуса (по которому срабатывает OnEnter). Событие сработает если какое-то содержимое этого таба, способное получить фокус его получает, но при смене вкладок этого не произойдет.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 04.07.2014, 20:30   #5
Fahman
Форумчанин
 
Аватар для Fahman
 
Регистрация: 03.04.2013
Сообщений: 703
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Лучше опиши это действие в событии OnChange самого PageControl.
Дело в том что сам TabSheet не получает никакого фокуса (по которому срабатывает OnEnter). Событие сработает если какое-то содержимое этого таба, способное получить фокус его получает, но при смене вкладок этого не произойдет.
OnChange самого PageControl. поставлю а у меня таких вкладок не одна же а 4 пока 4 )

Код:
if TabControl1.TabIndex = 0
 then Chromium1.load('site');
Так же надо проверять?
99% ошибок компьютера сидит в полуметре от монитора.

Последний раз редактировалось Stilet; 04.07.2014 в 21:11.
Fahman вне форума Ответить с цитированием
Старый 04.07.2014, 21:29   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ану колись, что ты там такое задумал? Ась? Гуглохром переплюнуть?
Знаешь на твоем месте я бы организовал глобальную переменку для списка вкладок, и сделал так:
Код:
unit Unit1;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ComCtrls;

type

  { TForm1 }

  TForm1 = class(TForm)
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
    procedure FormCreate(Sender: TObject);
    procedure PageControl1Change(Sender: TObject);
  private
    { private declarations }
  public
    urls:TStringList;
    { public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.lfm}

{ TForm1 }

procedure TForm1.FormClose(Sender: TObject; var CloseAction: TCloseAction);
begin
  urls.Free;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  urls:=TStringList.Create;
  // Создаем вкладку добавления
  with PageControl1.AddTabSheet do begin
    Caption:='+';
  end;
end;

procedure TForm1.PageControl1Change(Sender: TObject);
var tbs:TTabSheet; i:integer;
begin
  // Если выбрана она
  if PageControl1.ActivePage.Caption='+' then begin
    // Создаем новую вкладку
    tbs:=PageControl1.AddTabSheet;
    // Назначаем ей заглавие
    with tbs do begin
      Caption:=IntToStr(PageControl1.PageCount);
      // Ставим ее перед кнопкой добавления вкладки
      PageControl1.OnChange:=nil;
      PageIndex:=PageControl1.ActivePageIndex;
      PageControl1.OnChange:=@PageControl1Change;
    end;
    // И задаем ей в глобальном списке вкладок сайт
    urls.Objects[urls.Add(tbs.Caption+'='+'www.site.com')]:=tbs;
    // После активируем
    PageControl1.ActivePage:=tbs
  end else begin
    //Если же выбрана вкладка с сайтом
    i:=urls.IndexOfObject(PageControl1.ActivePage);
    //Получаем из глобального списка урл, связанный с этой вкладкой
    Chromium1.load(urls.ValueFromIndex[i]);
  end;
end;
end.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 04.07.2014, 21:59   #7
Fahman
Форумчанин
 
Аватар для Fahman
 
Регистрация: 03.04.2013
Сообщений: 703
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Ану колись, что ты там такое задумал? Ась? Гуглохром переплюнуть?
Знаешь на твоем месте я бы организовал глобальную переменку для списка вкладок, и сделал так:
Код:
unit Unit1;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ComCtrls;

type

  { TForm1 }

  TForm1 = class(TForm)
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
    procedure FormCreate(Sender: TObject);
    procedure PageControl1Change(Sender: TObject);
  private
    { private declarations }
  public
    urls:TStringList;
    { public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.lfm}

{ TForm1 }

procedure TForm1.FormClose(Sender: TObject; var CloseAction: TCloseAction);
begin
  urls.Free;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  urls:=TStringList.Create;
  // Создаем вкладку добавления
  with PageControl1.AddTabSheet do begin
    Caption:='+';
  end;
end;

procedure TForm1.PageControl1Change(Sender: TObject);
var tbs:TTabSheet; i:integer;
begin
  // Если выбрана она
  if PageControl1.ActivePage.Caption='+' then begin
    // Создаем новую вкладку
    tbs:=PageControl1.AddTabSheet;
    // Назначаем ей заглавие
    with tbs do begin
      Caption:=IntToStr(PageControl1.PageCount);
      // Ставим ее перед кнопкой добавления вкладки
      PageControl1.OnChange:=nil;
      PageIndex:=PageControl1.ActivePageIndex;
      PageControl1.OnChange:=@PageControl1Change;
    end;
    // И задаем ей в глобальном списке вкладок сайт
    urls.Objects[urls.Add(tbs.Caption+'='+'www.site.com')]:=tbs;
    // После активируем
    PageControl1.ActivePage:=tbs
  end else begin
    //Если же выбрана вкладка с сайтом
    i:=urls.IndexOfObject(PageControl1.ActivePage);
    //Получаем из глобального списка урл, связанный с этой вкладкой
    Chromium1.load(urls.ValueFromIndex[i]);
  end;
end;
end.
Спасибо за код ну в общем не совсем гугл хром я хочу а вот


ну или вы как по советуете чтоб было красиво и удобно?
99% ошибок компьютера сидит в полуметре от монитора.
Fahman вне форума Ответить с цитированием
Старый 04.07.2014, 22:32   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Если вкладок не много то делай как ты говорил - через if или Case
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 04.07.2014, 22:48   #9
Fahman
Форумчанин
 
Аватар для Fahman
 
Регистрация: 03.04.2013
Сообщений: 703
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Если вкладок не много то делай как ты говорил - через if или Case
Да максимум 6-8 вкладок будет это максимум но еще будут только они динамические будут и тут я подумал если я создам вкладку динамический можно ли будет сохранить ее? просто я создавал вкладку пустую а после того как закрыл программу и открыл по новой она у меня пропала... а пользователь там сам будет выбирать какую именно ему вкладку оставить а какую удалить кроме чата так как в основном я хотел сделать чат а остальное не так важно. Ну и потом понеслась добавить это добавить то)
99% ошибок компьютера сидит в полуметре от монитора.
Fahman вне форума Ответить с цитированием
Старый 04.07.2014, 23:06   #10
doktor255
Заблокирован
 
Регистрация: 31.03.2011
Сообщений: 976
По умолчанию

Цитата:
можно ли будет сохранить ее?
Свободное пространство на HDD в помощь. Сохраняй что пожелаешь.
doktor255 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
крестик на вкладке в page control admin-one Работа с сетью в Delphi 18 20.09.2012 20:23
Start Page на HTML MrRockchip HTML и CSS 1 08.04.2012 22:20
Отключение реакции на Page UP и Page Down для определенной формы TimRus Microsoft Office Access 2 06.06.2010 00:10
Копирование Page'ов SanekIrk Компоненты Delphi 4 16.10.2009 19:05
Page Number DarksideNv Microsoft Office Excel 6 15.10.2008 07:05