AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

DBmemo in Grid

Ein Thema von Hansa · begonnen am 14. Jan 2004 · letzter Beitrag vom 31. Jan 2004
 
Benutzerbild von eddy
eddy

Registriert seit: 3. Jan 2003
Ort: Sachsen
573 Beiträge
 
Delphi 5 Professional
 
#7

Re: DBmemo in Grid

  Alt 15. Jan 2004, 00:18
Hallo Hansa,

hier noch eine getestete Variante.

Code:
procedure TFDaSi.dbg1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
const
  // Es werden die ersten 35 Zeichen des Memofeldes ausgelesen
  iDisplayWidth = 35;
var
  i : integer;
  szTxt: array[0..iDisplayWidth] of char;
  aBS: TBlobStream;
  s : string;
  sTxt: String[iDisplayWidth];

  vTBlobField : TBlobField;

begin
  vTBlobField := TBlobField.Create(Self);
  {muß für jedes Feld der möglichen Tabellen einzeln definiert werden,
   funktioniert also nur, wenn man genau weiß, wie die Felder heißen}
  if Column.FieldName = 'InklFilter' then vTBlobField := Tab1InklFilter;
  if Column.FieldName = 'ExklFilter' then vTBlobField := Tab1ExklFilter;

  if (Column.Field is TMemoField) then begin
    aBS := TBlobStream.Create(vTBlobField, bmRead);
    FillChar(szTxt, SizeOf(szTxt), #0);
    try
      aBS.Read(szTxt, iDisplayWidth);
    finally
      aBS.Free;
    end;
    s := StrPas(szTxt);
    sTxt := '';
    i := 1;
    while not ((i > length(s)) or (length(sTxt) >= iDisplayWidth)) do begin
      if (ord(s[i]) > $20)
        then sTxt := sTxt + s[i]
        else
          {nur wenn nicht zuvor bereits ein Leerzeichen steht}
          if (length(sTxt)>0) and (sTxt[length(sTxt)] <> ' ')
          then sTxt := sTxt + ' ';
      inc(i);
    end;

    with (Sender as TDBGrid).Canvas do begin
      FillRect(Rect);
      TextOut(Rect.Left, Rect.Top, sTxt);
    end;
  end;
end;
mfg
eddy
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:12 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz