Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Работа с фреймами  (Прочитано 1583 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Shouldercannon
Постоялец

ru
Offline Offline

« : 25-09-2016 11:22 » 

Помогите, пожалуйста, одолеть фреймы. Сколько делал подходов и никак не могу с ними совладать.
Хочу из из какого-либо контрола Frame прочитать/записать/показать данные, но на практике это не так просто.
Если бы
Код: (Delphi)
procedure TFormMain.BShowClick(Sender: TObject);
begin
// Показать данные из frame_Settings из TEdit
  ShowMessage(FrameSettings.Edit1.Text); // Не катит
end;
но увы.
Так создаю фремы и показываю их
Код: (Delphi)
unit frm_Main;

...

var
  FormMain: TFormMain;
  LastFrame: TFrame;

implementation

uses frame_Settings, frame_Misc;

{$R *.dfm}

procedure TFormMain.FormCreate(Sender: TObject);
begin
  // Создаём список фреймов
  with ListBox1 do
  begin
    AddItem('Настройки', TFrameSettings.Create(ListBox1));
    AddItem('Разное', TFrameMisc.Create(ListBox1));
  end;

  LastFrame := nil;
end;

procedure TFormMain.ListBox1Click(Sender: TObject);
begin
  // Активируем из списка нужный фрейм
  if LastFrame <> nil then LastFrame.Visible := False;

  with TListBox(Sender) do
  begin
    LastFrame := TFrame(Items.Objects[ItemIndex]);
    LastFrame.Align := alClient;
    LastFrame.Parent := Panel1;
    LastFrame.Visible := True;
  end;
end;

procedure TFormMain.BReadClick(Sender: TObject);
begin
// Прочитать данные из frame_Settings из TEdit
end;

procedure TFormMain.BWriteClick(Sender: TObject);
begin
// Записать данные из frame_Settings из TEdit
end;

procedure TFormMain.BShowClick(Sender: TObject);
begin
// Показать данные из frame_Settings из TEdit
  ShowMessage(FrameSettings.Edit1.Text); // Не катит
end;

end.
Записан
v2
Помогающий

ua
Offline Offline

« Ответ #1 : 25-09-2016 22:58 » 

// Не катит
кто кого куда не катит?
Записан
Shouldercannon
Постоялец

ru
Offline Offline

« Ответ #2 : 26-09-2016 05:07 » 

// Не катит
кто кого куда не катит?
Такой способ обращения к контролам TFrame
Записан
zubr
Модератор

by
Offline Offline
Пол: Мужской

« Ответ #3 : 26-09-2016 08:18 » 

TFrameSettings.Create(Application);
Записан
v2
Помогающий

ua
Offline Offline

« Ответ #4 : 26-09-2016 11:45 » 

> Такой способ обращения к контролам

Компилятор ошибку говорит?
Что такое FrameSettings, где и какое туда пишется значение?
 
Код: (Delphi)
implementation

uses frame_Settings, frame_Misc;

var
  FrameSettings:TFrameSettings;
  FrameMisc: TFrameMisc;

{$R *.dfm}

procedure TFormMain.FormCreate(Sender: TObject);
begin
 
 FrameSettings := TFrameSettings.Create(ListBox1);
 FrameMisc := TFrameMisc.Create(ListBox1);

  // Создаём список фреймов
  with ListBox1 do
  begin
    AddItem('Настройки', FrameSettings);
    AddItem('Разное', FrameMisc);
  end;

  LastFrame := nil;
end;

procedure TFormMain.BShowClick(Sender: TObject);
begin
  if LastFrame = FrameSettings then
    ShowMessage( FrameSettings.Edit1.Text );
end;

Записан
Shouldercannon
Постоялец

ru
Offline Offline

« Ответ #5 : 26-09-2016 19:34 » 

А если нужно сразу обратиться к конкретному фрейму в обход LastFrame?
Записан
v2
Помогающий

ua
Offline Offline

« Ответ #6 : 26-09-2016 21:20 » 

 Здесь была моя ладья... так пожалуйста
Код: (Delphi)
 Caption := 'Настройки: ' FrameSettings.Edit1.Text + ' Разное: ' + FrameMisc.Edit1.Text;
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines