Delphi - Как добавить вкладки в TMEMO?

Как показано здесь.

рис.: вкладки с памяткой

В настоящее время мой TMEMO отображает кучу разных данных, например:

Данные #1 Абзацы

Данные #2 Абзацы

Данные #N абзацев

Поэтому, чтобы избежать прокрутки, я хочу добавить вкладки к N-му номеру.

Итак, какие компоненты мне нужны и как я должен инициировать процесс?


person Sick Series    schedule 06.01.2014    source источник
comment
Если вам нужно более 5 вкладок, вам следует пересмотреть этот тип графического интерфейса. Возможно есть лучшие варианты. Может быть, вы можете иметь список слева от заметки с пунктом для каждого абзаца? Будет приятнее пролистать это, чем пролистать множество вкладок.   -  person Wouter van Nifterick    schedule 07.01.2014


Ответы (3)


вам нужно использовать комбинацию TMemo и TTabControl.

person Z..    schedule 06.01.2014

Не знаю, как вы получаете свои абзацы, но вам придется перебирать их, создавая TabSheet и Memo для каждого.

procedure TfrmMemo.CreateTabsWithMemo;
var
  pgControl: TPageControl;
  TabSheet: TTabSheet;
  Memo: TMemo;
begin
  pgControl := TPageControl.Create(self);
  pgControl.Parent := Self;
  pgControl.Align := alClient;

  //Do this for each paragraph
  TabSheet := TTabSheet.Create(pgControl);
  TabSheet.PageControl := pgControl;
  TabSheet.Caption := Format('Tab %d', [pgControl.PageCount]);

  Memo := TMemo.Create(TabSheet);
  Memo.Parent := TabSheet;
  Memo.Align := alClient;

  Memo.Lines.Text := 'Your Paragraph here'
  ///
end;
person Agustin Seifert    schedule 06.01.2014
comment
Во многих случаях лучше использовать элемент управления вкладками и одиночный редактор. - person Andreas Rejbrand; 07.01.2014
comment
но таким образом вы должны чистить и писать текст при каждом изменении вкладки - person Agustin Seifert; 07.01.2014

Используйте TPageControl и TTabSheet. Поместите компонент TMemo на каждый TTabSheet.

Вы можете перетащить TPageControl на форму, чтобы начать.

person Danny Rancher    schedule 08.01.2014