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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.02.2010, 19:44   #1
OPF_Nik
Пользователь
 
Регистрация: 09.11.2009
Сообщений: 33
По умолчанию Сохранение текста с вкладок PageControl

Народ подскажите, есть простнекий блокнот, с возможностью создания вкладок, проблема в том, что текст сохраняться, везде, кроме первой, вот собственно код, для примера, тут всего 4 вкладки:
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, StdCtrls, Buttons, Menus;

type
  TForm1 = class(TForm)
    Button1: TButton;
    PageControl1: TPageControl;
    BitBtn1: TBitBtn;
    SaveDialog1: TSaveDialog;
    Button2: TButton;
    OpenDialog1: TOpenDialog;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  FileName : array [0..3] of string;
  TabSheet: array [0..3] of TTabSheet;
  Edit : array[0..3] of  TMemo;
  s: byte;

  implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  TabSheet[1]:= TTabSheet.Create(self);
  TabSheet[1].PageControl := PageControl1;
  TabSheet[1].Caption:= 'Листинг '+ IntToStr(PageControl1.PageCount);

  Edit[1]:= TMemo.Create(self);
  Edit[1].Parent:= TabSheet[1];
  Edit[1].Align:= alClient;
  s:= 0;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  if s < 3 then begin
  TabSheet[s]:= TTabSheet.Create(self);
  TabSheet[s].PageControl := PageControl1;
  TabSheet[s].Caption:= 'Листинг '+ IntToStr(s+2);

  Edit[s]:= TMemo.Create(self);
  Edit[s].Parent:= TabSheet[s];
  Edit[s].Align:= alClient;

  PageControl1.ActivePage:= TabSheet[s];
  s:= s +1;
  end;
end;

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
  if SaveDialog1.Execute then
    if SaveDialog1.FileName <> '' then begin
      TabSheet[PageControl1.ActivePageIndex-1].Caption:= ExtractFileName(SaveDialog1.fileName);
      FileName[PageControl1.ActivePageIndex-1]:= SaveDialog1.FileName;
      Edit[PageControl1.ActivePageIndex-1].Lines.SaveToFile(FileName[PageControl1.ActivePageIndex-1]);
    end;
  end;
end.
Как я понял, ошибка тут, т.к если выделана первая вкладка, отнимаем от нее 1 , получаеться -1, отсюда ошибка, но без этого, сохранения на других вкладках, будет ошибочным, подскажите способы, как можно это исправить, не используя if... then..else на определение какая вкладка активна, и если первая...
PS: извините, что без коментов

Последний раз редактировалось OPF_Nik; 11.02.2010 в 19:48.
OPF_Nik вне форума Ответить с цитированием
Старый 11.02.2010, 21:50   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Зачем вообще такие выверты с ActivePageIndex ?
Есть же свойства :
PageControl1.ActivePage.Caption
PageControl1.TabIndex
mihali4 вне форума Ответить с цитированием
Старый 12.02.2010, 12:35   #3
OPF_Nik
Пользователь
 
Регистрация: 09.11.2009
Сообщений: 33
По умолчанию

mihali4 что бы понять, с какой вкладки текст сохранять
OPF_Nik вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
сохранение текста из richTextBox TaTT DoGG Общие вопросы .NET 2 24.06.2016 17:24
сохранение текста из мемо BESS Компоненты Delphi 14 05.03.2012 15:26
PageControl. в процессе проектировки формы создать несколько вкладок. GN_ Помощь студентам 7 15.11.2011 20:56
TreeView и PageControl (переключение вкладок по дереву) Nevy Общие вопросы C/C++ 5 17.08.2008 19:17
Сохранение текста (RichEdit) без формата Air Помощь студентам 2 06.08.2008 17:50