DBGrid - kilka wierszy w 1 komórce

0

Witam
Tak jak w temacie. Chciałbym się dowiedzieć jak w DBGridzie w 1 komórce zapisać kilka linijek tekstu. Chciałbym zorbić coś takiego jak bym w środku komórki nacisnął enter i dalszy tekst będzie już w nowej linijce ale ciągle w tej samej komórce. Korzystam z komponentów ZEOS, a wyniki wyświetlam w DBGrid. Może trzeba jakoś zmienić zapytanie SQL żeby osiągnąć taki rezultat?

0

Nikt nie wie jak można coś takiego zrobić? A może po prostu nie korzystać z DBGrid? Tylko w takim przypadku z czego?

0

eee....
A nie lepiej położyć gdzieś obok DBMemo, czy tam DBRichEdit i w tym wpisywać taki duży tekst?

0

Powracam jeszcze raz do tematu. Opiszę to inaczej. Może ktoś coś pomoże. Po prostu chodzi o to, żeby w jednym wierszu (w dbgridzie) zawierającym dane: imię, nazwisko, adres, wiek, adres był wpisany w 2 wierszach. Ulica wyżej, a kod pocztowy i miasto niżej. W pozostałych komórkach tego wiersza tekst byłby wyśrodkowany w pionie

0

OwnerDraw !

0

mógłbyś napisać coś więcej?

0

OwnerDraw
poza tym wątpię, czy uda Ci się coś takiego ze zwykłym DBGridem

0

Ja zrobiłem coś takiego ( nie wiem czy działa na DBGrid, ja robilem na AdvStringGrid ):

W KeyDown w DBGird

if key = VK_RETURN then
begin
AdvStringGrid1.RowHeights[yy+1] := AdvStringGrid1.RowHeights[yy+1] + 13;
 AdvStringGrid1.Cells[xx+1,yy+1] := AdvStringGrid1.Cells[xx+1,yy+1] + #13#10;
end;

W SelectCell:

xx := ACol;
yy := ARow;

i oczywiście zdeklaruj 2 zmienne (xx,yy) typu integer...

  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  xx,yy : integer;  // <-------------------------------

implementation


{$R *.dfm}

PS. Nie wiem czy ten sposób działa na DbGrid..!

0

ownerdraw powinien działać, o ile dopasuje sobie wysokość komórki.

0
snw napisał(a)

o ile dopasuje sobie wysokość komórki.

a to może być problem

0

czemu, znając czcionkę można sprawdzić jej wysokość + odstęp między wierszami choćby w paincie, potem:
row_height:=line_count*const_text_height+(line_count+1)*const_text_interspace
ewentualnie canvas.textheight ale funkcja zwraca chyba tylko wysokość tekstu.

1 użytkowników online, w tym zalogowanych: 0, gości: 1