Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Текст в Memo в две колонки, Как реализовать? 
:(
    Опции темы
wind1
Дата 25.5.2008, 23:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 133
Регистрация: 29.6.2007

Репутация: нет
Всего: нет



Есть компонент TMemo. В него нужно записать текст в две колонки. Как это лучше сделать?
PM MAIL   Вверх
Poseidon
Дата 25.5.2008, 23:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 53
Всего: 133



1) Использовать другой компонент.
2) Табулировать в ручную
3) Использовать второй Мемо, поигравшись с бордюром так, что бы было ошюшение единого компонента
4) Написать свой компонент на основе ТМемо, реализующий эту возможность.

Варианты расставлены в порядке целесообразности. smile 


--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
wind1
Дата 25.5.2008, 23:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 133
Регистрация: 29.6.2007

Репутация: нет
Всего: нет



Цитата(Poseidon @  25.5.2008,  23:21 Найти цитируемый пост)
1) Использовать другой компонент.

Какой, например?

Вот для листбокса я нашел как это сделать:
Код

procedure TForm1.Button1Click(Sender: TObject);
 const
   // The maximum number of Tabs 
  // Die Anzahl der maximal aufretenen Tabs eintragen 
  MAX_TABS = 4;
   Tab = #9;
 var
   Tabulators: array[0..MAX_TABS] of Integer;
 begin
   { Set the Tabulator Widths / Tabulatorweiten festlegen}
   Tabulators[0] := 70;
   Tabulators[1] := 120;
   Tabulators[2] := 100;
   Tabulators[3] := 80;
   Listbox1.TabWidth := 1;
   { Set the Tabulators / Tabulatoren setzen }
   SendMessage(ListBox1.Handle, LB_SETTABSTOPS, MAX_TABS, Longint(@Tabulators));
   { Add some Items / Items hinzufugen.}
   Listbox1.Items.Add('Peter' + Tab + 'Meier' + Tab + '1234-56' + Tab + 'Otzlingen');
   Listbox1.Items.Add('Johann Jones' + Tab + 'Krauter' + Tab + '123-45');
 end;

А как для мемо то же самое сделать? Я попробовал как в этом примере - не получается.

Это сообщение отредактировал(а) wind1 - 25.5.2008, 23:39
PM MAIL   Вверх
aktuba
Дата 26.5.2008, 00:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Смышленный
***


Профиль
Группа: Завсегдатай
Сообщений: 1915
Регистрация: 24.4.2006
Где: Планета Земля

Репутация: 16
Всего: 38



Цитата(wind1 @  26.5.2008,  00:38 Найти цитируемый пост)
Какой, например?

TRichView, TWebBrowser и т.д... Их куча. Но принцип практически всегда одинаков: или использование табов или таблицы с невидимой границей. Кстати, можно попробовать и в TRichEdit использовать таблицы, но у меня такого опыта не было.


--------------------
user posted image
PM MAIL WWW Skype   Вверх
mr.Anderson
Дата 26.5.2008, 00:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: 3
Всего: 128



Имхо, либо второй TMemo, либо TWebBrowser. Второе все же проще.


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
wind1
Дата 26.5.2008, 00:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 133
Регистрация: 29.6.2007

Репутация: нет
Всего: нет



Цитата(mr.Anderson @  26.5.2008,  00:39 Найти цитируемый пост)
Имхо, либо второй TMemo, либо TWebBrowser. Второе все же проще.

Тогда покажите, пожалуйста, пример, как записать текст в две колонки в TWebBrowser.
И если можно, покажите, как распечатать содержимое компонента TWebBrowser.
PM MAIL   Вверх
aktuba
Дата 26.5.2008, 02:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Смышленный
***


Профиль
Группа: Завсегдатай
Сообщений: 1915
Регистрация: 24.4.2006
Где: Планета Земля

Репутация: 16
Всего: 38



Цитата(wind1 @  26.5.2008,  01:54 Найти цитируемый пост)
Тогда покажите, пожалуйста, пример, как записать текст в две колонки в TWebBrowser.

Код

WebBrowser.Navigate(''about:<table><tr><td>Первая колонка</td><td>Вторая колонка</td></tr></table>'');


Цитата(wind1 @  26.5.2008,  01:54 Найти цитируемый пост)
И если можно, покажите, как распечатать содержимое компонента TWebBrowser. 

Код

procedure TForm1.Button2Click(Sender: TObject); 
var 
  vaIn, vaOut: OleVariant; 
begin 
  WebBrowser1.ControlInterface.ExecWB(OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER, 
    vaIn, vaOut); 
end;


Подробнее про печать тут и тут.


--------------------
user posted image
PM MAIL WWW Skype   Вверх
wind1
Дата 26.5.2008, 11:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 133
Регистрация: 29.6.2007

Репутация: нет
Всего: нет



Цитата(aktuba @ 26.5.2008,  02:25)
Цитата(wind1 @  26.5.2008,  01:54 Найти цитируемый пост)
Тогда покажите, пожалуйста, пример, как записать текст в две колонки в TWebBrowser.

Код

WebBrowser.Navigate(''about:<table><tr><td>Первая колонка</td><td>Вторая колонка</td></tr></table>'');

Не работает. После вставки этой строки в код компилятор выдает ошибки:
Цитата

[Error] Unit1.pas(29): ')' expected but identifier 'about' found
[Error] Unit1.pas(29): Expression expected but '<' found
[Error] Unit1.pas(29): Illegal character in input file: 'в' ($E2)
[Error] Unit1.pas(29): Expression expected but '<' found
[Error] Unit1.pas(29): Illegal character in input file: 'о' ($EE)
[Error] Unit1.pas(29): Illegal character in input file: 'а' ($E0)
[Error] Unit1.pas(29): Expression expected but '<' found
[Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'

29 строка - вставленная строка.

Это сообщение отредактировал(а) wind1 - 26.5.2008, 11:37
PM MAIL   Вверх
aktuba
Дата 26.5.2008, 22:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Смышленный
***


Профиль
Группа: Завсегдатай
Сообщений: 1915
Регистрация: 24.4.2006
Где: Планета Земля

Репутация: 16
Всего: 38



А если лишние кавычки убрать?  smile 

Неужели просто код уже посмотреть нельзя???


--------------------
user posted image
PM MAIL WWW Skype   Вверх
wind1
Дата 27.5.2008, 14:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 133
Регистрация: 29.6.2007

Репутация: нет
Всего: нет



Спасибо, лишние кавычки убрал - заработало. Но заработал только вывод первых двух слов:
WebBrowser1.Navigate('about:<table><tr><td>Слово первой колонки 1</td><td>Слово второй колонки 1</td></tr></table>');
Когда я попытался вывести вторые два слова:
WebBrowser1.Navigate('about:<table><tr><td>Слово первой колонки 2</td><td>Слово второй колонки 2</td></tr></table>');
они перезаписали первые два слова.
Покажите, пожалуйста, вывод двух колонок, состоящих из нескольких строк.
PM MAIL   Вверх
aktuba
Дата 27.5.2008, 15:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Смышленный
***


Профиль
Группа: Завсегдатай
Сообщений: 1915
Регистрация: 24.4.2006
Где: Планета Земля

Репутация: 16
Всего: 38



Цитата(wind1 @  27.5.2008,  15:53 Найти цитируемый пост)
Покажите, пожалуйста, вывод двух колонок, состоящих из нескольких строк. 

Код

WebBrowser1.Navigate('about:<table><tr><td>Первая строка в первой колонке</td><td>Первая строка во второй колонке</td></tr><tr><td>Вторая строка в первой колонке</td><td>Вторая строка во второй колонке</td></tr></table>');


В кратце, используешь html и можешь творить все что угодно.


--------------------
user posted image
PM MAIL WWW Skype   Вверх
wind1
Дата 29.5.2008, 19:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 133
Регистрация: 29.6.2007

Репутация: нет
Всего: нет



Цитата(aktuba @  27.5.2008,  15:01 Найти цитируемый пост)
В кратце, используешь html и можешь творить все что угодно.

Заполняю таким образом, как вы показали, таблицу из 3-х столбцов. Но происходит какая-то странная вещь: TWebBowser никак не хочет выводить таблицу, если в ней больше 6-ти строк. Если число строк меньше или равно 6-ти, то нормально выводит. Ничего не могу понять.
PM MAIL   Вверх
aktuba
Дата 29.5.2008, 20:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Смышленный
***


Профиль
Группа: Завсегдатай
Сообщений: 1915
Регистрация: 24.4.2006
Где: Планета Земля

Репутация: 16
Всего: 38



Цитата(wind1 @  29.5.2008,  20:28 Найти цитируемый пост)
Заполняю таким образом, как вы показали, таблицу из 3-х столбцов. Но происходит какая-то странная вещь: TWebBowser никак не хочет выводить таблицу, если в ней больше 6-ти строк. Если число строк меньше или равно 6-ти, то нормально выводит. Ничего не могу понять. 


Не может такого быть. Я таким образом выводил сотни строк.


--------------------
user posted image
PM MAIL WWW Skype   Вверх
wind1
Дата 29.5.2008, 22:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 133
Регистрация: 29.6.2007

Репутация: нет
Всего: нет



Вот и я думаю, странно это как-то. Пишет "не могу отобразить страницу" и всё.
PM MAIL   Вверх
Poseidon
Дата 30.5.2008, 16:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 53
Всего: 133



Цитата(wind1 @  29.5.2008,  22:01 Найти цитируемый пост)
Вот и я думаю, странно это как-то. Пишет "не могу отобразить страницу" и всё.
Код показывай, каким выводить пытаешься.



--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0580 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.