안녕하세요~
하드웨어 자산의 Spec값을 메모필드로 저장하고
메모필드를 DBGrid에 표시하게 하는 것은 아래의 코드로 해결 했습니다.
<!--CodeS-->
Procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect;
Field: TField; State: TGridDrawState);
var
P:array [0..50] of char; {array size is number of characters needed}
BS: TblobStream; {from the memo field}
S:String;
begin
If Field is TMemoField then
begin
with (Sender as TDBGrid).Canvas do
begin
{Table1Notes is the TMemoField}
BS := TblobStream.Create(Query1.FieldByName('Column') as TBlogField, bmRead);
FillChar(P,SizeOf(P),#0); {terminate the null string}
BS.Read(P, 50); {read 50 chars from memo into blobStream}
BS.Free;
S:=StrPas(P);
While pos(#13, S) > 0 do {remove carriage returns and}
S[Pos(#13, S)]:=' '; {line feeds}
While Pos(#10, S) > 0 do
S[Pos(#10, S)]:=' ';
FillRect(Rect); {clear the cell}
TextOut(Rect.Left, Rect.Top, S); {fill cell with memo data}
end;
end;
end;
<!--CodeE-->
문제는 이 필드값을 그리드상에서 클릭하면 (MEMO)란 내용으로 바뀌어서 보이게 되네요.
이걸 막으려면 어떻게 해야하나요?