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

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

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 17.12.2009, 14:00   #1
Len@09
Пользователь
 
Регистрация: 28.10.2009
Сообщений: 28
По умолчанию Колонки в DBGrid

Добрый день!
У меня есть таблица DBGrid, в ней около 20 столбцов, у одного из них очень длинное наименование. Ширина столбца 120 и полное наименование не входит. Если его растянуть до конца названия, то будет не очень красиво. Как можно в DBGrig строку для названия полей сделать шире и перенести слова (например, как в Excel)?
Len@09 вне форума
Старый 17.12.2009, 17:05   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Использовать DBGridEh:
sshot-1.png sshot-2.png
mihali4 вне форума
Старый 22.12.2009, 11:17   #3
Len@09
Пользователь
 
Регистрация: 28.10.2009
Сообщений: 28
По умолчанию

А как с помощью функции Pos вычислить где находится пробел и по его позиции разделить строку на две?
Len@09 вне форума
Старый 23.12.2009, 10:43   #4
Highlander1981
Пользователь
 
Регистрация: 12.11.2009
Сообщений: 20
По умолчанию

Цитата:
Сообщение от Len@09 Посмотреть сообщение
А как с помощью функции Pos вычислить где находится пробел и по его позиции разделить строку на две?
Не надо ничего вичислять. У DBGridEh есть свойство UseMultiTitle, установи его в True и он сам все перенесет с учетом пробелов.
Highlander1981 вне форума
Старый 24.12.2009, 08:26   #5
Len@09
Пользователь
 
Регистрация: 28.10.2009
Сообщений: 28
По умолчанию

Цитата:
Сообщение от mihali4 Посмотреть сообщение
Использовать DBGridEh:
Дело в том, что переделывать свой проект нет времени. Может кто-нибудь подскажет как с помощью функции Pos разделить строку на две?
Len@09 вне форума
Старый 24.12.2009, 14:24   #6
Highlander1981
Пользователь
 
Регистрация: 12.11.2009
Сообщений: 20
По умолчанию

Я бы сделал так:
Код:
Ind:=PosEx(' ',s,Length(s) Div 2);
s1:=Copy(s,1,Ind-1);
s2:=Copy(s,Ind+1,Length(s)-Ind);
Где s-твоя строка, а s1 и s2 соответсвенно первая и вторая половины.
ind-содержит номер позиции первого пробела в строке, начиная с середины (это на тот случай, если в строке несколько пробелов, и нужно ее разделить примерно по середине).
P.S.: Не забудь добавить StrUtils в Uses твоего модуля.
Highlander1981 вне форума
Старый 26.01.2010, 11:56   #7
Len@09
Пользователь
 
Регистрация: 28.10.2009
Сообщений: 28
По умолчанию

Я сделала так:
Код:
 procedure DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
      DataCol: Integer; Column: TColumn; State: TGridDrawState);
     function PosEx(const SubStr, S: string; Offset: Cardinal = 1): Integer;
private
    { Private declarations }
public
    { Public declarations }
end;

var
  Form3: TForm3;
implementation

uses Unit4, Unit1, Unit2, Unit6, Unit12, Unit15;

{$R *.dfm}
function PosEx(const SubStr, S: string; Offset: Cardinal = 1): Integer;
var
  s1, s2: string;
  ind: integer;
begin
Ind:=PosEx(' ',s,Length(s) Div 2);
s1:=Copy(s,1,Ind-1);
s2:=Copy(s,Ind+1,Length(s)-Ind);
end;
Ругается:

[Warning] Unit3.pas(61): Return value of function 'PosEx' might be undefined
[Error] Unit3.pas(39): Unsatisfied forward or external declaration: 'TForm3.PosEx'
[Fatal Error] NalogProject.dpr(22): Could not compile used unit 'Unit3.pas'
Len@09 вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
listview и колонки. blackstersl Общие вопросы Delphi 3 24.06.2009 15:52
колонки в dbgride Mihailhome БД в Delphi 3 21.05.2009 11:37
Сумма колонки Е Romuald Microsoft Office Excel 11 15.05.2009 15:34
Как из колонки DBGrid записать все значения в combobox dolunin БД в Delphi 1 16.03.2009 19:19
DBGrid ширина колонки Pinya БД в Delphi 7 07.08.2008 09:22