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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.10.2009, 09:51   #1
MasterofCDM
Пользователь
 
Регистрация: 02.07.2008
Сообщений: 94
По умолчанию Вопрос о StringGrid

Как в ячейку забить фразу состоящую из двух строчек, т.е. возможно ли вставить символ перевода каретки?
MasterofCDM вне форума Ответить с цитированием
Старый 20.10.2009, 12:42   #2
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Цитата:
фразу состоящую из двух строчек
Это как так?
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 20.10.2009, 12:53   #3
S@fer
Форумчанин
 
Аватар для S@fer
 
Регистрация: 29.01.2009
Сообщений: 411
По умолчанию

#13#10 - перевод каретки
S@fer вне форума Ответить с цитированием
Старый 20.10.2009, 13:20   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
#13#10 - перевод каретки
Пробовал? получилось?
Цитата:
MasterofCDM
Единственное что могу предложить так это нестандартная отрисовка текста :
Код:
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
  var s:string;
begin
 s:= 'Строка'#13'И еще';
 DrawText(StringGrid1.Canvas.Handle,pchar(s),length(s),rect,DT_WORDBREAK);
end;
I'm learning to live...

Последний раз редактировалось Stilet; 20.10.2009 в 13:23.
Stilet вне форума Ответить с цитированием
Старый 20.10.2009, 13:29   #5
S@fer
Форумчанин
 
Аватар для S@fer
 
Регистрация: 29.01.2009
Сообщений: 411
По умолчанию

Извините не правильно понял вопрос.
вот статьи из DelphiWorld
Многострочный стринггрид
http://delphiworld.narod.ru/base/mul...tringgrid.html
http://delphiworld.narod.ru/base/mul...ringgrid2.html
http://delphiworld.narod.ru/base/sg_multilines.html
http://delphiworld.narod.ru/base/sg_mline.html

Последний раз редактировалось S@fer; 20.10.2009 в 13:42.
S@fer вне форума Ответить с цитированием
Старый 20.10.2009, 13:45   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
S@fer
А Ёхель то тут при чем?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 20.10.2009, 13:48   #7
MasterofCDM
Пользователь
 
Регистрация: 02.07.2008
Сообщений: 94
По умолчанию

Попробовал так:
Код:
StringGrid1.Cells[Xx, Yy] := Edit2.Text + #10 + 'Вот так';
и так
Код:
StringGrid1.Cells[Xx, Yy] := Edit2.Text + #13 + 'Вот так';
не получается, если ставить #32, то пробел ставится, а перевод строки никак

Код:
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
  var s:string;
begin
 s:= 'Строка'#13'И еще';
 DrawText(StringGrid1.Canvas.Handle,pchar(s),length(s),rect,DT_WORDBREAK);
end;
Это работает, но не совсем так, как нужно) Похоже в StringGrid этого не сделать, придеться мудрить. Всем спасибо)
MasterofCDM вне форума Ответить с цитированием
Старый 20.10.2009, 13:49   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
но не совсем так, как нужно)
А че у меня так как нужно работает? Что я не так делаю?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 20.10.2009, 18:05   #9
MasterofCDM
Пользователь
 
Регистрация: 02.07.2008
Сообщений: 94
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
А че у меня так как нужно работает? Что я не так делаю?
Сделал?
Код:
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
  var s:string;
begin
 s:= StringGrid1.Cells[ACol, ARow];
 DrawText(StringGrid1.Canvas.Handle,pchar(s),length(s),rect,DT_WORDBREAK);
end;
Текст котрый после #13 печатается два раза, т.е если текст = 'привет' + #13 + 'друг'
Код:
привет друг
друг
MasterofCDM вне форума Ответить с цитированием
Старый 21.10.2009, 09:53   #10
MasterofCDM
Пользователь
 
Регистрация: 02.07.2008
Сообщений: 94
По умолчанию

Сделал основываясь на примерах S@fer)
Код:
procedure TnSessia1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
var
  Format: Word;
  C: array[0..255] of Char;
begin
  with Sender as TStringGrid do
  begin
      if (ARow = 0) then Canvas.Font.Style := Canvas.Font.Style + [fsbold];
      Format := DT_CENTER or DT_WORDBREAK;
      Canvas.FillRect(Rect);
      StrPCopy(C, Cells[ACol, ARow]);
      DrawText(Canvas.Handle, C, StrLen(C), Rect, Format);
  end;
end;
MasterofCDM вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос по StringGrid artemavd Общие вопросы Delphi 5 12.09.2009 02:33
Вопрос по StringGrid MasterofCDM Компоненты Delphi 2 02.04.2009 17:06
Вопрос о компоненте StringGrid Arassir Помощь студентам 2 02.11.2008 11:15
Вопрос о StringGrid MasterofCDM Общие вопросы Delphi 2 23.09.2008 10:58