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

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


Category

  ±è¿µ´ë(2003-03-06 21:34:53, Hit : 4072, Vote : 1110
 Æ¯Á¤ ÆûÀÇ ÇöÀç ÆíÁýÁßÀÎ DB Field ±¸Çϱâ

// ¼Ò½º¸¦ ½ÇÇàÇÏ·Á¸é DBGrid1, DBEdit1, DBEdit2, DBEdit3 Àº ÀüºÎ
// DataSource1 ¿¡ ¿¬°á½ÃÄÑ¾ß Çϸç DBEdit1, DBEdit2, DBEdit3´Â
// ÀÓÀÇÀÇ DataField¸¦ °¡Áö°í ÀÖ¾î¾ß Å×½ºÆ®°¡ µË´Ï´Ù
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  TypInfo, StdCtrls, Db, DBTables, Grids, DBGrids, Mask, DBCtrls, Buttons;

type
  TForm1 = class(TForm)
    DBGrid1: TDBGrid;
    Table1: TTable;
    DataSource1: TDataSource;
    DBEdit1: TDBEdit;
    DBEdit2: TDBEdit;
    DBEdit3: TDBEdit;
    SpeedButton1: TSpeedButton;
    procedure SpeedButton1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation
{$R *.DFM}

// ÁÖ¾îÁø ControlÀÌ data aware control ÀÎÁö °Ë»çÇÏ´Â ÇÔ¼ö
// °Ë»ç ¹æ¹ýÀº data aware control Àº ÀüºÎ DataSource ÇÁ·ÎÆÛƼ¸¦ °¡Áö°í Àִµ¥
// property Á¤º¸¸¦ °Ë»çÇÏ¿© DataSource ÇÁ·ÎÆÛƼÀÇ Á¸Àç¿©ºÎ¸¦ °Ë»çÇÑ´Ù
function IsDBControl(AC: TControl; var Datasource: TDataSource): Boolean;
var
  ptrPropInfo: PPropInfo;
begin
  Result := False;
  if AC <> nil then
  begin
    // controlÀÇ ÇÁ·ÎÆÛƼµéÁß DataSource ÇÁ·ÎÆÛƼ Á¤º¸¸¦ Àд´Ù(¾øÀ¸¸é nil)
    ptrPropInfo := GetPropInfo(AC.ClassInfo, 'DataSource');
    if Assigned(ptrPropInfo) and (ptrPropInfo^.PropType^.Kind = tkClass) then
    begin
      DataSource := Pointer(GetOrdProp(AC , ptrPropInfo));
      Result := Assigned(DataSource);
    end;
  end;
end;

// ÁÖ¾îÁø FormÀÇ ÇöÀç ÆíÁýÁßÀÎ Field¸¦ ±¸ÇÑ´Ù
// ±¸ÇÏ´Â ¹æ¹ýÀº ¸ÕÀú ÁÖ¾îÁø ÆûÀÇ ActiveµÈ ControlÀÌ data aware controlÀÎÁö
// °Ë»çÇÏ°í ±×°ÍÀÌ DBGridÀÌ¸é ¼±ÅÃµÈ Çʵ带 ¸®ÅÏÇÏ°í ±×·¸Áö ¾ÊÀº ControlÀ̸é
// DataField ÇÁ·ÎÆÛƼ¸¦ °¡Áö°í ÀÖÀ¸¸é ±× Çʵ带 ¸®ÅÏÇÑ´Ù
function GetActiveField(Form: TForm): TField;
var
  Datasource: TDatasource;
  ptrPropInfo: PPropInfo;
  AC: TControl;
begin
  Result := nil;
  if Form <> nil then
  begin
    AC := Form.ActiveControl; // ÆûÀÇ Æ÷Ä¿½º°¡ ÀÖ´Â control À» ±¸ÇÑ´Ù
    if IsDBControl(AC, DataSource) and // AC°¡ data aware control ÀÎÁö °Ë»ç
      (Datasource <> nil) and
      (Datasource.DataSet <> nil) then
    begin
      if AC is TCustomDBGrid then // AC°¡ DBGridÀÌ¸é ¼±ÅÃµÈ Çʵ带
        Result := (AC as tCustomDBGrid).SelectedField
      else
      begin
        // controlÀÇ ÇÁ·ÎÆÛƼµéÁß DataField ÇÁ·ÎÆÛƼ Á¤º¸¸¦ Àд´Ù(¾øÀ¸¸é nil)
        ptrPropInfo := GetPropInfo(AC.ClassInfo, 'DataField');
        if Assigned(ptrPropInfo) and (ptrPropInfo^.PropType^.Kind = tkLString) then
          Result := Datasource.Dataset.FindField(GetStrProp(AC, ptrPropInfo));
      end;
    end;
  end;
end;

procedure TForm1.SpeedButton1Click(Sender: TObject);
var
  cField: TField;
begin
  // ActiveµÈ ÆûÀÇ ÇöÀç ÆíÁýÁßÀÎ Field¸¦ ±¸ÇÑ´Ù
  cField := GetActiveField(Screen.ActiveForm);
  if cField <> nil then
    ShowMessage(cField.FieldName);
end;

end.





611   [µ¥ÀÌÅͺ£À̽º] DB¿¡ ÀúÀåµÈ JPEG(JPG)¸¦ DBGrid¿¡ Ãâ·ÂÇÏ±â  ±è¿µ´ë 2003/03/06 5219 1252
610   [µ¥ÀÌÅͺ£À̽º] µ¿ÀûÀ¸·Î À妽º ¸¸µé±â  ±è¿µ´ë 2003/03/06 4439 1127
609   [µ¥ÀÌÅͺ£À̽º] Excel ODBC¸¦ »ç¿ëÇÏ¿© xls¸¦ Å×À̺í·Î »ç¿ëÇÏ±â  ±è¿µ´ë 2003/03/06 6824 1584
608   [µ¥ÀÌÅͺ£À̽º] DB aliasÁß ORACLE alias ¸í ±¸ÇÏ±â  ±è¿µ´ë 2003/03/06 3987 971
607   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] QuickReport¿¡¼­ ÇÁ¸°ÅÍ ¹Ù²Ù¾î¼­ Ãâ·ÂÇÏ±â  ±è¿µ´ë 2003/03/06 6183 1536
606   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] RichEdit ÀÇ ³»¿ëÀ» Bitmap À¸·Î ¸¸µé±â  ±è¿µ´ë 2003/03/06 3329 869
605   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] RichEdit ¿¡¼­ ¹®ÀÚ(¿­)¸¦ ã¾Æ ±ÛÀÚ¼Ó¼º ¹Ù²Ù±â  ±è¿µ´ë 2003/03/06 4706 1210
604   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] RichEdit ¿¡¼­ Ä¿¼­¸¦ óÀ½, ¸¶Áö¸·À¸·Î º¸³»±â  ±è¿µ´ë 2003/03/06 6840 1473
603   [À©µµ¿ìÁî API] ½ÇÇàÁßÀÎ ¸ðµç ÇÁ·Î±×·¥ Minimized ½ÃŰ±â  ±è¿µ´ë 2003/03/06 4636 1230
602   [½Ã½ºÅÛ] µ¨ÆÄÀÌ·Î DOS ÇÁ·Î±×·¥(Console application) ¸¸µé±â  ±è¿µ´ë 2003/03/06 16992 7520
601   [COM/OLE] Registering *.tlb files without Delphi  ±è¿µ´ë 2003/03/06 4963 1129
600   [³×Æ®¿÷/ÀÎÅͳÝ] How to bring a network down - "Win Nuke"  ±è¿µ´ë 2003/03/06 7265 1991
599   [À©µµ¿ìÁî API] Æú´õ³ª ÆÄÀÏÀÇ À©µµ¿ìÁî µî·ÏÁ¤º¸ dialog ¶ç¿ì±â  ±è¿µ´ë 2003/03/06 5077 1473
598   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] À̹ÌÁö¸¦ ¸¶¿ì½º·Î drag ÇØ¼­ zoom ÇÏ±â  ±è¿µ´ë 2003/03/06 3587 1019
597   [À©µµ¿ìÁî API] ¿ÜºÎ ÇÁ·Î±×·¥À» ÃÖ»óÀ§·Î ¼³Á¤ÇÏ±â  ±è¿µ´ë 2003/03/06 5202 1231
596   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] TObjectÀÇ ÇÁ·ÎÆÛƼ¸¦ ¹®ÀÚ¿­·Î ÂüÁ¶ÇÏ±â  ±è¿µ´ë 2003/03/06 5206 1591
595   [À©µµ¿ìÁî API] ÇÁ·Î±×·¥À¸·Î Screensaver µî·ÏÇÏ´Â µÎ°¡Áö ¹æ¹ý  ±è¿µ´ë 2003/03/06 4466 1267
  [µ¥ÀÌÅͺ£À̽º] ƯÁ¤ ÆûÀÇ ÇöÀç ÆíÁýÁßÀÎ DB Field ±¸ÇÏ±â  ±è¿µ´ë 2003/03/06 4072 1110
593   [À©µµ¿ìÁî API] KeyDownÀÇ BeepÀ½À» ¾ø¾ÖÀÚ...  ±è¿µ´ë 2003/03/06 4600 1210
592   [½Ã½ºÅÛ] How do I use SetWindowsHookEx ?  ±è¿µ´ë 2003/03/06 6776 954
591   [½Ã½ºÅÛ] Redirecting DOS Application Output  ±è¿µ´ë 2003/03/06 4473 1201
590   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] µÎ°³ÀÇ RichEdit »çÀÌ¿¡ ³»¿ë º¹»çÇÏ±â  ±è¿µ´ë 2003/03/06 5823 1360
589   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] ƯÁ¤ ColorÀÇ Invert Color ±¸ÇÏ±â  ±è¿µ´ë 2003/03/06 4300 1315
588   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] ¹®ÀÚ¿­ ¼ö½Ä¹®Àå(expression)ÀÇ °á°ú ±¸ÇÏ±â  ±è¿µ´ë 2003/03/06 3279 872
587   [½Ã½ºÅÛ] ¿Àµð¿À CDÀÇ º¼·ý Á¶ÀýÇÏ±â  ±è¿µ´ë 2003/03/06 3588 1025
586   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] À©µµ¿ìÁî "³¯Â¥/½Ã°£" ¼³Á¤È­¸é ¶ç¿ì±â  ±è¿µ´ë 2003/03/06 6184 1822
585   [½Ã½ºÅÛ] ¸¶ÀÌÅ© º¼·ý Á¶ÀýÇÏ±â  ±è¿µ´ë 2003/03/06 4609 1284
584   [¸ÖƼ¹Ìµð¾î] JPEG, WAVE ¸¦ resource ÆÄÀÏ¿¡ ³Ö°í Àоî¿À±â  ±è¿µ´ë 2003/03/06 5216 1223
583   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] desktop ¹è°æÈ­¸éÀ» ÆûÀÇ ¹è°æÈ­¸éÀ¸·Î ±×¸®±â  ±è¿µ´ë 2003/03/06 3651 1037
582   [À©µµ¿ìÁî API] ·¹Áö½ºÆ®¸®ÀÇ º¯°æ¿©ºÎ ¾Ë¸®´Â 2°¡Áö ¹æ¹ý  ±è¿µ´ë 2003/03/06 4733 1278
581   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] StringGrid ÀÇ ³»¿ëÀ» Ŭ¸³º¸µå·Î º¹»çÇÏ±â  ±è¿µ´ë 2003/03/06 4437 1060
580   [µ¥ÀÌÅͺ£À̽º] Save DBGrid To Excel  ±è¿µ´ë 2003/03/06 6682 1723
579   [COM/OLE] DelphiÀÇ OCX¸¦ InstallShield·Î ¹èÆ÷ÇÏ´Â ¹æ¹ý  ±è¿µ´ë 2003/03/06 6737 5615
578   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] ASCII printing  ±è¿µ´ë 2003/03/06 5140 1211
577   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] OEM conversion  ±è¿µ´ë 2003/03/06 4295 1262
576   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] MemoÀÇ ÇàÀÇ ¹®ÀÚ¼ö¸¦ Á¦ÇÑÇϰí WordWrap½ÃŰ±â  ±è¿µ´ë 2003/03/06 5182 1314
575   [À©µµ¿ìÁî API] DDE ¾²Áö ¾Ê°í IEÀÇ ÇöÀç URL °¡Á®¿À±â  ±è¿µ´ë 2003/03/06 5966 1673
574   [À©µµ¿ìÁî API] RichEdit¿¡ ÀÔ·ÂÇÑ ¹®ÀåÀÇ ½ÇÁ¦ ³ôÀÌ ±¸ÇÏ±â  ±è¿µ´ë 2003/03/06 5021 1426
573   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] StringGrid ÀÇ ¼±Åÿµ¿ª¸¸ Ŭ¸³º¸µå·Î º¹»çÇÏ±â  ±è¿µ´ë 2003/03/06 4825 1047
572   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] StringGrid ¿¡¼­ ÇÁ·Î±×·¥À¸·Î MultiSelect ½ÃŰ±â  ±è¿µ´ë 2003/03/06 5373 1187

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

Copyright 1999-2022 Zeroboard / skin by zero