StringGrid içerisinde adres bilgisi var.Ve bu alan bazı kayıtlarda tek bir satıra sıgmıyor.Bu nedenle aşagıdaki kodu kullanarak iki satır olarak yazabiliyorum
ancak
stringride her bir satır ekledğimde bana stringridin uzunlugu gerekiyor(StringGrid1.GridHeight)
ama StringGrid1.GridHeight bana satırın son uzunluğunu vermiyor.
once uzunluğu gosterip sonra StringGrid1DrawCell procedurune giriyor .Dolayısıyla gercek uzunlugu tam satır eklediğim anda alamıyorum
bunun için ne yapabilirim?
Kod: Tümünü seç
procedure TForm1.Button1Click(Sender: TObject);
begin
StringGrid1.Cells[1,1] := qadres.Fileds[1].asstring ;
ShowMessage(inttostr(StringGrid1.GridHeight));
end;
Kod: Tümünü seç
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
var
Grid: TStringGrid;
S: String;
rDrawRect: TRect;
begin
Grid := TStringGrid(Sender);
S := Grid.Cells[ACol, ARow];
if Length(S) > 0 then
begin
rDrawRect := Rect;
DrawText(Grid.Canvas.Handle, PChar(S), Length(S), rDrawRect,
DT_CALCRECT or DT_WORDBREAK or DT_LEFT);
if (rDrawRect.Bottom - rDrawRect.Top) > Grid.RowHeights[Arow] then
begin
Grid.RowHeights[ARow] :=
(rDrawRect.Bottom - rDrawRect.Top)
end
else
begin
rDrawRect.Right := Rect.right;
Grid.Canvas.FillRect(rDrawRect);
DrawText(Grid.Canvas.Handle, PChar(S), Length(S), rDrawRect,
DT_WORDBREAK or DT_LEFT);
end; {if (rDrawRect.Bottom...}
end;
end;