::: µ¨ÆÄÀÌ Tip&Trick :::

µ¨ÆÄÀÌ Tip&Trick ¼º°Ý¿¡ ¸ÂÁö ¾Ê´Â ±¤°í,ºñ¹æ,Áú¹®ÀÇ ±ÛÀº Áï½Ã »èÁ¦Çϸç
³»¿ëÀ» º¹»çÇÏ¿© »ç¿ëÇÒ °æ¿ì ¹Ýµå½Ã À̰÷(http://www.howto.pe.kr)À» Ãâó·Î ¸í½ÃÇÏ¿© ÁÖ¼¼¿ä


Category

  ±è¿µ´ë(2003-03-06 22:02:08, Hit : 4433, Vote : 1060
 StringGrid ÀÇ ³»¿ëÀ» Ŭ¸³º¸µå·Î º¹»çÇϱâ

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Buttons, clipbrd, Grids;

type
  TForm1 = class(TForm)
    StringGrid1: TStringGrid;
    BitBtn1: TBitBtn;
    Memo1: TMemo;
    procedure FormActivate(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation
{$R *.DFM}

procedure CopyStreamToClipboard(S: TStream; fmt: Word);
var
  hMem: THandle;
  pMem: Pointer;
begin
  {streamÀÇ À§Ä¡¸¦ ¸Ç ¾ÕÀ¸·Î À̵¿½ÃŲ´Ù}
  S.Position := 0;

  {streamÀÇ Å©±â¸¸Å­ Àü¿ª Èü(heap)¿¡ ¸Þ¸ð¸® ºí·ÏÀ» ÇÒ´çÇÑÈÄ À©µµ¿ì ÇÚµéÀ» ¾ò´Â´Ù}
  hMem := GlobalAlloc(GHND or GMEM_DDESHARE, S.Size);
  if hMem <> 0 then
  begin
    {Àü¿ª ÈüÀÇ ÇÒ´çµÈ ¸Þ¸ð¸® ºí·ÏÀ» °íÁ¤(lock)½ÃŲ´Ù}
    pMem := GlobalLock(hMem);
    if pMem <> nil then
    begin
      {ÇÒ´ç¹ÞÀº ¸Þ¸ð¸® ºí·°¿¡ streamÀÇ ³»¿ëÀ» º¹»çÇÑ´Ù}
      S.Read(pMem^, S.Size);
      {À§ÀÇ S.Read()¿¡ ÀÇÇØ Áõ°¡µÈ Æ÷ÀÎÅ͸¦ ´Ù½Ã ¸Ç ¾ÕÀ¸·Î À̵¿½ÃŲ´Ù}
      S.Position := 0;
      {Àü¿ª Èü¿¡¼­ ¸Þ¸ð¸® ºí·ÏÀÇ Àá±Ý ÇØÁ¦}
      GlobalUnlock(hMem);

      {Ŭ¸³º¸µå¸¦ ¿­·¯¼­ ÁÖ¾îÁø Æ÷¸Ë(¿©±â¼­´Â CF_TEXT)°ú À©µµ¿ì ÇÚµé·Î ÁöÁ¤µÈ
       µ¥ÀÌŸ¸¦ Ŭ¸³º¸µå¿¡ ÁØ´Ù}
      Clipboard.Open;
      try
        Clipboard.SetAsHandle(fmt, hMem);
      finally
        Clipboard.Close;
      end;
    end
    else
    begin
      {¸Þ¸ð¸® lockÀÇ ½ÇÆÐ·Î memory block ¿¹¿Ü¸¦ ¹ß»ý½ÃŲ´Ù}
      GlobalFree(hMem);
      OutOfMemoryError;
    end;
  end
  else
  begin
    {¸Þ¸ð¸® ÇÒ´çÀÇ ½ÇÆÐ·Î memory block ¿¹¿Ü¸¦ ¹ß»ý½ÃŲ´Ù}
    OutOfMemoryError;
  end;
end;

procedure CopyGridToClipboard(theGrid: TStringGrid);
var
  m: TMemoryStream;
  i, j: Integer;
  S: String;
begin
  m := TMemoryStream.Create;
  try
    with theGrid do
      for i := 0 to Pred(RowCount) {RowCount-1} do
        for j := 0 to Pred(ColCount) {ColCount-1} do
        begin
          S := Cells[j, i];
          if j = Pred(ColCount) then // ¸Ç ¸¶Áö¸· ColumnÀ̸é CR/LF ¸¦ Ãß°¡ÇÏ¿© Ç౸ºÐ
            AppendStr(S, #13#10)
          else
            AppendStr(S, #9); // °¢ ColumnÀ» Tab ¹®ÀÚ·Î ±¸ºÐ
          m.WriteBuffer(S[1], Length(S));
        end;
    S[1] := #0; // ¹®ÀÚ¿­ streamÀÇ ³¡ Ç¥½Ã
    m.WriteBuffer(S[1], 1);
    CopyStreamToClipboard(m, CF_TEXT); // streamÀÇ ³»¿ëÀ» Ŭ¸³º¸µå·Î º¹»ç
  finally
    m.Free;
  end;
end;

procedure TForm1.FormActivate(Sender: TObject);
var
  i, j: Integer;
begin
  // ColumnÀÇ titleÀ» ¸¸µç´Ù
  for i := 1 to StringGrid1.ColCount - 1 do
   StringGrid1.Cells[i, 0] := Char(Ord('A')+i-1);

  // RowÀÇ titleÀ» ¸¸µç´Ù
  for i := 1 to StringGrid1.RowCount - 1 do
   StringGrid1.Cells[0, i] := IntToStr(i);;

  // ÀÓÀÇÀÇ ÀڷḦ ¸¸µé¾î¼­ °¢ cell¿¡ ÀÔ·ÂÇÕ´Ï´Ù
  for i := 1 to StringGrid1.ColCount - 1 do
    for j := 1 to StringGrid1.RowCount - 1 do
      StringGrid1.Cells[i, j] := Format('%.0n', [i * j * 10000.0]);
end;

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
  // StringGridÀÇ ³»¿ëÀ» Ŭ¸³º¸µå·Î ºÏ»ç
  CopyGridToClipboard(StringGrid1);

  // Ŭ¸³º¸µåÀÇ ³»¿ëÀ» ¸Þ¸ð·Î ºÙ¿©³Ö±â(Å×½ºÆ®¿ë)
  Memo1.Clear;
  Memo1.PasteFromClipboard;
end;

end.





611   [µ¥ÀÌÅͺ£À̽º] DB¿¡ ÀúÀåµÈ JPEG(JPG)¸¦ DBGrid¿¡ Ãâ·ÂÇÏ±â  ±è¿µ´ë 2003/03/06 5217 1252
610   [µ¥ÀÌÅͺ£À̽º] µ¿ÀûÀ¸·Î À妽º ¸¸µé±â  ±è¿µ´ë 2003/03/06 4424 1126
609   [µ¥ÀÌÅͺ£À̽º] Excel ODBC¸¦ »ç¿ëÇÏ¿© xls¸¦ Å×À̺í·Î »ç¿ëÇÏ±â  ±è¿µ´ë 2003/03/06 6804 1575
608   [µ¥ÀÌÅͺ£À̽º] DB aliasÁß ORACLE alias ¸í ±¸ÇÏ±â  ±è¿µ´ë 2003/03/06 3981 970
607   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] QuickReport¿¡¼­ ÇÁ¸°ÅÍ ¹Ù²Ù¾î¼­ Ãâ·ÂÇÏ±â  ±è¿µ´ë 2003/03/06 6175 1535
606   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] RichEdit ÀÇ ³»¿ëÀ» Bitmap À¸·Î ¸¸µé±â  ±è¿µ´ë 2003/03/06 3324 864
605   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] RichEdit ¿¡¼­ ¹®ÀÚ(¿­)¸¦ ã¾Æ ±ÛÀÚ¼Ó¼º ¹Ù²Ù±â  ±è¿µ´ë 2003/03/06 4698 1210
604   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] RichEdit ¿¡¼­ Ä¿¼­¸¦ óÀ½, ¸¶Áö¸·À¸·Î º¸³»±â  ±è¿µ´ë 2003/03/06 6828 1473
603   [À©µµ¿ìÁî API] ½ÇÇàÁßÀÎ ¸ðµç ÇÁ·Î±×·¥ Minimized ½ÃŰ±â  ±è¿µ´ë 2003/03/06 4631 1226
602   [½Ã½ºÅÛ] µ¨ÆÄÀÌ·Î DOS ÇÁ·Î±×·¥(Console application) ¸¸µé±â  ±è¿µ´ë 2003/03/06 14091 7518
601   [COM/OLE] Registering *.tlb files without Delphi  ±è¿µ´ë 2003/03/06 4937 1128
600   [³×Æ®¿÷/ÀÎÅͳÝ] How to bring a network down - "Win Nuke"  ±è¿µ´ë 2003/03/06 7261 1991
599   [À©µµ¿ìÁî API] Æú´õ³ª ÆÄÀÏÀÇ À©µµ¿ìÁî µî·ÏÁ¤º¸ dialog ¶ç¿ì±â  ±è¿µ´ë 2003/03/06 5070 1473
598   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] À̹ÌÁö¸¦ ¸¶¿ì½º·Î drag ÇØ¼­ zoom ÇÏ±â  ±è¿µ´ë 2003/03/06 3585 1019
597   [À©µµ¿ìÁî API] ¿ÜºÎ ÇÁ·Î±×·¥À» ÃÖ»óÀ§·Î ¼³Á¤ÇÏ±â  ±è¿µ´ë 2003/03/06 5191 1227
596   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] TObjectÀÇ ÇÁ·ÎÆÛƼ¸¦ ¹®ÀÚ¿­·Î ÂüÁ¶ÇÏ±â  ±è¿µ´ë 2003/03/06 5206 1591
595   [À©µµ¿ìÁî API] ÇÁ·Î±×·¥À¸·Î Screensaver µî·ÏÇÏ´Â µÎ°¡Áö ¹æ¹ý  ±è¿µ´ë 2003/03/06 4460 1267
594   [µ¥ÀÌÅͺ£À̽º] ƯÁ¤ ÆûÀÇ ÇöÀç ÆíÁýÁßÀÎ DB Field ±¸ÇÏ±â  ±è¿µ´ë 2003/03/06 4067 1110
593   [À©µµ¿ìÁî API] KeyDownÀÇ BeepÀ½À» ¾ø¾ÖÀÚ...  ±è¿µ´ë 2003/03/06 4586 1210
592   [½Ã½ºÅÛ] How do I use SetWindowsHookEx ?  ±è¿µ´ë 2003/03/06 6758 954
591   [½Ã½ºÅÛ] Redirecting DOS Application Output  ±è¿µ´ë 2003/03/06 4467 1201
590   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] µÎ°³ÀÇ RichEdit »çÀÌ¿¡ ³»¿ë º¹»çÇÏ±â  ±è¿µ´ë 2003/03/06 5816 1360
589   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] ƯÁ¤ ColorÀÇ Invert Color ±¸ÇÏ±â  ±è¿µ´ë 2003/03/06 4299 1315
588   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] ¹®ÀÚ¿­ ¼ö½Ä¹®Àå(expression)ÀÇ °á°ú ±¸ÇÏ±â  ±è¿µ´ë 2003/03/06 3260 868
587   [½Ã½ºÅÛ] ¿Àµð¿À CDÀÇ º¼·ý Á¶ÀýÇÏ±â  ±è¿µ´ë 2003/03/06 3584 1025
586   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] À©µµ¿ìÁî "³¯Â¥/½Ã°£" ¼³Á¤È­¸é ¶ç¿ì±â  ±è¿µ´ë 2003/03/06 6178 1822
585   [½Ã½ºÅÛ] ¸¶ÀÌÅ© º¼·ý Á¶ÀýÇÏ±â  ±è¿µ´ë 2003/03/06 4596 1284
584   [¸ÖƼ¹Ìµð¾î] JPEG, WAVE ¸¦ resource ÆÄÀÏ¿¡ ³Ö°í Àоî¿À±â  ±è¿µ´ë 2003/03/06 5206 1223
583   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] desktop ¹è°æÈ­¸éÀ» ÆûÀÇ ¹è°æÈ­¸éÀ¸·Î ±×¸®±â  ±è¿µ´ë 2003/03/06 3645 1037
582   [À©µµ¿ìÁî API] ·¹Áö½ºÆ®¸®ÀÇ º¯°æ¿©ºÎ ¾Ë¸®´Â 2°¡Áö ¹æ¹ý  ±è¿µ´ë 2003/03/06 4727 1277
  [ÀϹÝ/ÄÄÆ÷³ÍÆ®] StringGrid ÀÇ ³»¿ëÀ» Ŭ¸³º¸µå·Î º¹»çÇÏ±â  ±è¿µ´ë 2003/03/06 4433 1060
580   [µ¥ÀÌÅͺ£À̽º] Save DBGrid To Excel  ±è¿µ´ë 2003/03/06 6661 1721
579   [COM/OLE] DelphiÀÇ OCX¸¦ InstallShield·Î ¹èÆ÷ÇÏ´Â ¹æ¹ý  ±è¿µ´ë 2003/03/06 6725 5613
578   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] ASCII printing  ±è¿µ´ë 2003/03/06 5104 1209
577   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] OEM conversion  ±è¿µ´ë 2003/03/06 4291 1261
576   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] MemoÀÇ ÇàÀÇ ¹®ÀÚ¼ö¸¦ Á¦ÇÑÇϰí WordWrap½ÃŰ±â  ±è¿µ´ë 2003/03/06 5175 1314
575   [À©µµ¿ìÁî API] DDE ¾²Áö ¾Ê°í IEÀÇ ÇöÀç URL °¡Á®¿À±â  ±è¿µ´ë 2003/03/06 5958 1670
574   [À©µµ¿ìÁî API] RichEdit¿¡ ÀÔ·ÂÇÑ ¹®ÀåÀÇ ½ÇÁ¦ ³ôÀÌ ±¸ÇÏ±â  ±è¿µ´ë 2003/03/06 5017 1426
573   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] StringGrid ÀÇ ¼±Åÿµ¿ª¸¸ Ŭ¸³º¸µå·Î º¹»çÇÏ±â  ±è¿µ´ë 2003/03/06 4818 1045
572   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] StringGrid ¿¡¼­ ÇÁ·Î±×·¥À¸·Î MultiSelect ½ÃŰ±â  ±è¿µ´ë 2003/03/06 5360 1187

[1][2][3][4][5][6][7][8][9] 10 ..[25] [´ÙÀ½ 10°³]
 

Copyright 1999-2022 Zeroboard / skin by zero