StringGrid uzunluğu

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
filiz
Üye
Mesajlar: 82
Kayıt: 24 Ara 2003 08:11
Konum: İzmir

StringGrid uzunluğu

Mesaj gönderen filiz »

merhabalar


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;
Cevapla