Q&A

  • format string..
procedure TForm.FormClose(Sender: TObject; var Action: TCloseAction);
var i : integer;
begin
  form1.grid1.Clear;
  for i := 0 to dbgrid1.Columns.Count - 1 do
  begin
    form1.grid1.Lines.add(format('%2s',[inttostr(length(DBGrid1.Columns[i].Fieldname))]) +
                        format('%-20s',[DBGrid1.Columns[i].Fieldname]) +
                        format('%10s',[inttostr(DBGrid1.Columns[i].width)]));
  end;
  form1.grid1.Lines.SaveToFile('c:\....');
end;

폼이 닫힐때 그리드에 대한 정보를 저장해두는 프로시져입니다.
여기서 format에 관한 부분을 잘 모르겠네요.
자세하게 가르켜 주실 분 없나요?
1  COMMENTS
  • Profile
    ^ㅡ^ 2004.01.30 02:52



    일단 님이 쓰시고 계시는 format은요
    간단히 설명하자면 자리를 잡는건데요
    앞에는 자리를 어게 잡을껀가를 정의 하는 구분입니다
    %2s : 문자열 2자리를 잡겠다는거구요 만일 데이타가 3자라면 3자 자리를
             위치합니다.
             근데 문자가 한자라면 왼쪽부터 써지고 한칸은 빈칸이 되겠죠
            예 : 02 -> 02
                  003 -> 003
                  2    -> 2
                  
    %-2s : 문자열 2자리를 잡겠다는거구요 만일 데이타가 3자라면 3자 자리를
             위치합니다.
             근데 문자가 한자라면 오른쪽부터 써지고 한칸은 빈칸이 되겠죠
             예 : 02 -> 02
                  003 -> 003
                  2    ->   2

    이런식으로 알고계시면 될꺼 같구요

    s : 문자열  f : float형
    d :  숫자형
            
    format('%-20s',[DBGrid1.Columns[i].Fieldname])
               자리수            데이타 값

    님이 하신 코딩을 응용하자면요

    form1.grid1.Lines.add(format('%2s%-20s%10s',
       [inttostr(length(DBGrid1.Columns[i].Fieldname)),DBGrid1.Columns [i].Fieldname,inttostr(DBGrid1.Columns[i].width)]));

    이것도 가능하죠

    예제 1 : -20인 경우
    '%2s%-20s%10s'
    inttostr(length(DBGrid1.Columns[i].Fieldname)) := 3
    DBGrid1.Columns [i].Fieldname                       := kkkkk
    inttostr(DBGrid1.Columns[i].width)                    := 300
    일 경후   시작:3                kkkkk300       :끝

    예제 2 그냥 20인경우
    '%2s%20s%10s'
    inttostr(length(DBGrid1.Columns[i].Fieldname)) := 3
    DBGrid1.Columns [i].Fieldname                       := kkkkk
    inttostr(DBGrid1.Columns[i].width)                    := 300
    일 경후   시작:3 kkkkk              300       :끝
            

    .
    그리고 -있는거랑 없는거랑 왼쪽인지 오른쪽인지 가물 가물하네요
    함 테스트 해보시면 되요

    도움이 될려나 모르겠습니다.

    그럼 즐코 하세요