![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
В таблице есть поле, которое связано с другой таблицей (один ко многим). Так в этом поле отображается (MEMO), вместо идентификаторов полей в другой таблице. Так и должно быть? )
http://s54.radikal.ru/i145/1209/6b/bd624af32b7f.jpg |
|
#2
|
||||
|
||||
|
Цитата:
Подключи к этому полю компонент TDBMemo - он умеет работать с многострочным текстом. Если необходимо, чтобы именно в ячейке DBGrid отображался текст, то можно на обработчик события OnGetText этого поля прицепить такой обработчик: Код:
procedure TForm1.ADOQuery1_OnGetText(Sender: TField; var Text: String; DisplayText: Boolean); begin Text := Sender.AsString; end; |
|
#3
|
|||
|
|||
|
Спасибо. Еще вопрос: как в dbgrid сделать авторазмер на колонки?
|
|
#4
|
||||
|
||||
|
Цитата:
|
|
#5
|
|||
|
|||
|
Ширина в зависимости от ширины содержимого
|
|
#6
|
||||
|
||||
|
Цитата:
Так как DBGrid автоматически очень неудачно делает ширину, то я когда-то написал процедурку выравнивающую колонки по содержимому и в нужных местах её использую (обычно сразу после открытия таблицы): Код:
procedure CalcDBGridColumnWidths(DBGrid: TDBGrid);
var
DataSet: TDataSet;
OldRecNo: Integer;
MaxWidths: array of Integer;
i, Width: Integer;
begin
if (DBGrid = nil) or (DBGrid.DataSource = nil) or (DBGrid.DataSource.DataSet = nil) then Exit;
DataSet := DBGrid.DataSource.DataSet;
OldRecNo := DataSet.RecNo;
DataSet.DisableControls;
try
SetLength(MaxWidths, DBGrid.Columns.Count);
for i := 0 to DBGrid.Columns.Count - 1 do
begin
MaxWidths[i] := DBGrid.Canvas.TextWidth(DBGrid.Columns[i].Title.Caption) + 4;
end;
DataSet.First;
while not DataSet.Eof do
begin
for i := 0 to DBGrid.Columns.Count - 1 do
begin
Width := DBGrid.Canvas.TextWidth(DBGrid.Columns[i].Field.DisplayText) + 4;
if Width > MaxWidths[i] then MaxWidths[i] := Width;
end;
DataSet.Next;
end;
for i := 0 to DBGrid.Columns.Count - 1 do
begin
DBGrid.Columns[i].Width := MaxWidths[i];
end;
finally
DataSet.RecNo := OldRecNo;
DataSet.EnableControls;
end;
end; |
| Этот пользователь сказал Спасибо poli-smen за это полезное сообщение: | ||
ART (16.09.2012)
| ||
|
#7
|
||||
|
||||
|
Цитата:
есть EhLib очень рекомендую http://www.ehlib.com/RUS/default.htm EhLib 3.6 бесплатен |
|
#8
|
||||
|
||||
|
Добрый вечер. В вашей теме зашла речь о компоненте "DBMemo" , что он может отображать "поля memo"(с большим объемом текста) или "Поле объекта OLE".Подскажите как можно подключить DBMemo к нужному столбцу таблицы access?
|
|
#9
|
||||
|
||||
|
Цитата:
|
| Этот пользователь сказал Спасибо poli-smen за это полезное сообщение: | ||
Evgen_Balbes (30.09.2012)
| ||