Q&A

  • 프로그램 완전 종료
안녕하세요

메인폼을 비롯해서 10개정도 폼을 사용하고 있는데요

모든폼(메인폼 포함)의 Close event에 폼.free를 모두 했는데요

실행하고 나면 폼은 없어지는데 여전히 main [Running]으로 되어있어

완전히 끝나지 않거든요

왜그런지 혹시 아래의 Main의 내용을 확인 좀......

unit Main;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Menus, StdCtrls, Grids, DBGrids;

type
  TfrmMain = class(TForm)
    MainMenu1: TMainMenu;
    Part1: TMenuItem;
    mnPartReg: TMenuItem;
    mnPartModDel: TMenuItem;
    mnPartSearch: TMenuItem;
    btnLogout: TButton;
    DBGrid1: TDBGrid;
    btnReg: TButton;
    Customer1: TMenuItem;
    mnCusReg: TMenuItem;
    mnCusModDel: TMenuItem;
    mnCusSearch: TMenuItem;
    PO1: TMenuItem;
    mnPOReg: TMenuItem;
    mnPOModDel: TMenuItem;
    POSearch: TMenuItem;
    submnDateSearch: TMenuItem;
    submnPOCusSearch: TMenuItem;
    submnPOPartSearch: TMenuItem;
    submnPOLocSearch: TMenuItem;
    N1: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    Local: TMenuItem;
    N4: TMenuItem;
    mnLocalReg: TMenuItem;
    mnLocalModDel: TMenuItem;
    mnLocalSearch: TMenuItem;
    mnLocalView: TMenuItem;
    Local1: TMenuItem;
    Local2: TMenuItem;
    Parts1: TMenuItem;
    Parts2: TMenuItem;
    History1: TMenuItem;
    LoginOutHistory1: TMenuItem;
    procedure mnPartRegClick(Sender: TObject);
    procedure mnPartModDelClick(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure btnLogoutClick(Sender: TObject);
    procedure btnLoginClick(Sender: TObject);
    procedure mnPartSearchClick(Sender: TObject);
    procedure btnRegClick(Sender: TObject);
    procedure mnCusRegClick(Sender: TObject);
    procedure mnCusModDelClick(Sender: TObject);
    procedure mnCusSearchClick(Sender: TObject);
    procedure mnPORegClick(Sender: TObject);
    procedure mnPOModDelClick(Sender: TObject);
    procedure submnDateSearchClick(Sender: TObject);
    procedure submnPOCusSearchClick(Sender: TObject);
    procedure submnPOPartSearchClick(Sender: TObject);
    procedure submnPOLocSearchClick(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormCreate(Sender: TObject);
    procedure N1Click(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure N3Click(Sender: TObject);
    procedure mnLocalRegClick(Sender: TObject);
    procedure Local1Click(Sender: TObject);
    procedure Parts1Click(Sender: TObject);
  private
    { Private declarations }
  public
    procedure refreshData(strAct: String);
    { Public declarations }
  end;

var
  frmMain: TfrmMain;
  str: String;


implementation
  uses
    RegDelMod, Login, JaigoModule, Search, Reg, Registerinfo, CusReg,
  CusModDel, CusSearch, POReg, POModDel, PODateSearch, POCusSearch,
  POPartSearch, POLocSearch, SharedCode, JaigoReport, PartJaigoSearch,
  PartJaigoReport, JaigoLocSearch, LocalReg, LocalJaigo, PartStock;
{$R *.DFM}

{
접속한 사람이 어떤일을 했는지를 써 넣기 위한 함수 입니다
어떠한 작업을 할 때마다 그것에 대한 내용이 추가 됩니다
}
procedure TfrmMain.refreshData(strAct: String);
begin
  with Jaigo.UserTimeTable do
  begin
    Active := TRUE;
    // 추가시키는 것은 로그인 시간을 기준으로 합니다
    FindKey([Login.Logtime]);
    Edit;
    if StrComp(PChar(str), PChar('')) = 0 then
    begin
      str := '';
    end
    else
      str := FieldByName('ACTION').Value;
    // 계속적으로 값을 뒤에서 추가 시켜줍니다
    FieldByName('ACTION').Value := str + strAct;
    str := FieldByName('ACTION').Value;
    Refresh;
    Active := FALSE;
  end;
end;


// 메뉴에서 파트쪽을 누르면 파트 테이블을 활성화 시키고
// 디비 그리드에 파트를 보여준다
procedure TfrmMain.mnPartRegClick(Sender: TObject);
begin
  with Jaigo.PartTable do
  begin
    Jaigo.CustomerTable.Active := FALSE;
    Jaigo.POTable.Active := FALSE;
    Jaigo.PartJaigoTable.Active := FALSE;

    if not Active = TRUE then
    Active := TRUE;
    DBGrid1.DataSource := Jaigo.PartSource;
    DBGrid1.Columns.Items[4].Visible := FALSE;
  end;
  frmReg := TfrmReg.Create(Self);
  frmReg.ShowModal;
  frmReg.free;
end;


// 메뉴에서 파트쪽을 누르면 파트 테이블을 활성화 시키고
// 디비 그리드에 파트를 보여준다
procedure TfrmMain.mnPartModDelClick(Sender: TObject);
begin
  with Jaigo.PartTable do
  begin
    Jaigo.CustomerTable.Active := FALSE;
    Jaigo.POTable.Active := FALSE;
    Jaigo.PartJaigoTable.Active := FALSE;

    if not Active = TRUE then
      Active := TRUE;
//    First;
//    DBGrid1.Columns.Items[4].Visible := FALSE;
    DBGrid1.DataSource := Jaigo.PartSource;
//    FieldByName('PRICE').Visible := FALSE;
  end;
  frmRegModDel := TfrmRegModDel.Create(Self);
  frmRegModDel.ShowModal;
  frmRegModDel.free;
end;


// 메뉴에서 파트쪽을 누르면 파트 테이블을 활성화 시키고
// 디비 그리드에 파트를 보여준다
procedure TfrmMain.mnPartSearchClick(Sender: TObject);
begin
  with Jaigo.PartTable do
  begin
    Jaigo.CustomerTable.Active := FALSE;
    Jaigo.POTable.Active := FALSE;
    Jaigo.PartJaigoTable.Active := FALSE;

    if not Active = TRUE then
      Active := TRUE;
    Filtered := FALSE;
//    First;
    DBGrid1.DataSource := Jaigo.PartSource;
//ㅓㅓ    FieldByName('PRICE').Visible := FALSE;
  end;
  frmSearch := TfrmSearch.Create(Self);
  frmSearch.ShowModal;
  frmSearch.free;
end;


// 로그 아웃 버튼이 눌려졌을 경우.
procedure TfrmMain.btnLogoutClick(Sender: TObject);
var
  CurrentTime : String;
  Id, Pass : String;
begin
  // 로그 아웃한 시간을 사용자 시간 정보 테이블에 기록한다.
  CurrentTime := frmLogin.GetCurrentDateTime;
  Id := frmLogin.edtLogId.Text;
  Pass := frmLogin.edtLogPass.Text;
  frmLogin.LogoutTime(CurrentTime, Id, Pass);
//  btnLogin.Enabled := TRUE;
  btnLogout.Enabled := FALSE;
  bLog := FALSE;
  Close;
end;


// 다시 로그인을 했을 경우.
procedure TfrmMain.btnLoginClick(Sender: TObject);
begin
  frmLogin := TfrmLogin.Create(Self);
  frmLogin.ShowModal;
  frmLogin.free;
//  btnLogin.Enabled := FALSE;
//  btnLogout.Enabled := TRUE;
end;


// 종료되면 종료시간을 테이블에 기록한다
procedure TfrmMain.FormDestroy(Sender: TObject);
var
  CurrentTime : String;
  Id, Pass : String;
begin
  CurrentTime := frmLogin.GetCurrentDateTime;
  Id := frmLogin.edtLogId.Text;
  Pass := frmLogin.edtLogPass.Text;
  frmLogin.LogoutTime(CurrentTime, Id, Pass);
//  btnLogin.Enabled := TRUE;
  self.Enabled := FALSE;
end;


// 사용자의 등록을 위한 다이얼로그를 생성한다
procedure TfrmMain.btnRegClick(Sender: TObject);
begin
  frmRegister := TfrmRegister.Create(Self);
  frmRegister.ShowModal;
  frmRegister.free;
end;


// 메뉴에서 고객쪽을 누르면 파트 테이블을 활성화 시키고
// 디비 그리드에 고객를 보여준다
procedure TfrmMain.mnCusRegClick(Sender: TObject);
begin
  with Jaigo.CustomerTable do
  begin
    Jaigo.PartTable.Active := FALSE;
    Jaigo.POTable.Active := FALSE;
    Jaigo.PartJaigoTable.Active := FALSE;

    if not Active = TRUE then
    Active := TRUE;
    DBGrid1.DataSource := Jaigo.CustomerSource;
  end;
  frmCusReg := TfrmCusReg.Create(Self);
  frmCusReg.ShowModal;
  frmCusReg.free;
end;


// 메뉴에서 고객쪽을 누르면 파트 테이블을 활성화 시키고
// 디비 그리드에 고객를 보여준다
procedure TfrmMain.mnCusModDelClick(Sender: TObject);
begin
  with Jaigo.CustomerTable do
  begin
    Jaigo.PartTable.Active := FALSE;
    Jaigo.POTable.Active := FALSE;
    Jaigo.PartJaigoTable.Active := FALSE;

    if not Active = TRUE then
      Active := TRUE;
//    First;
    DBGrid1.DataSource := Jaigo.CustomerSource;
  end;
  frmCusModDel := TfrmCusModDel.Create(Self);
  frmCusModDel.ShowModal;
  frmCusModDel.free;
end;


// 메뉴에서 고객쪽을 누르면 고객 테이블을 활성화 시키고
// 디비 그리드에 고객를 보여준다.
procedure TfrmMain.mnCusSearchClick(Sender: TObject);
begin
  with Jaigo.CustomerTable do
  begin
    Jaigo.PartTable.Active := FALSE;
    Jaigo.POTable.Active := FALSE;
    Jaigo.PartJaigoTable.Active := FALSE;

    if not Active = TRUE then
      Active := TRUE;
//    First;
    Filtered := FALSE;
    DBGrid1.DataSource := Jaigo.CustomerSource;
  end;

  frmCusSearch := TfrmCusSearch.Create(Self);
  frmCusSearch.ShowModal;
  frmCusSearch.free;
end;


// 입출고 등록 버튼을 눌렀을 경우
// 위와 동일한 일을 한다.
procedure TfrmMain.mnPORegClick(Sender: TObject);
begin
  with Jaigo.POTable do
  begin
    Jaigo.PartTable.Active := FALSE;
    Jaigo.CustomerTable.Active := FALSE;
    Jaigo.PartJaigoTable.Active := FALSE;
    jaigo.PartJaigotable.Active := FALSE;

    if not Active = TRUE then
      Active := TRUE;
    Filtered := FALSE;

//    First;
    DBGrid1.DataSource := Jaigo.POSource;
  end;

  frmPOReg := TfrmPOReg.Create(Self);
  frmPOReg.ShowModal;
  frmPOReg.free;
end;


// 입출고 수정 버튼을 눌렀을 경우
// 위와 동일한 동작을 한다.
procedure TfrmMain.mnPOModDelClick(Sender: TObject);
begin
  with Jaigo.POTable do
  begin
    Jaigo.PartTable.Active := FALSE;
    Jaigo.CustomerTable.Active := FALSE;
    Jaigo.PartJaigoTable.Active := FALSE;

    if not Active = TRUE then
    begin
      ShowMessage('수정 삭제할 것에 대한 데이터를 선택하지 않았습니다');
      Active := TRUE;
      exit;
    end;
//    First;
    DBGrid1.DataSource := Jaigo.POSource;
    if RecordCount = 0 then
    begin
      ShowMessage('테이블에 데이터가 존재하지 않습니다. 수정/삭제를 할 수 없습니다.');
      exit;
    end;
//    edit;
  end;
  frmPOModDel := TfrmPOModDel.Create(Self);
  frmPOModDel.ShowModal;
  frmPOModDel.free;
end;


// 입출고 내역을 날짜별로 검색할 때
procedure TfrmMain.submnDateSearchClick(Sender: TObject);
begin
  with Jaigo.POTable do
  begin
    Jaigo.PartTable.Active := FALSE;
    Jaigo.CustomerTable.Active := FALSE;
    Jaigo.PartJaigoTable.Active := FALSE;

    if not Active = TRUE then
      Active := TRUE;
    Filtered := FALSE;
//    First;
    DBGrid1.DataSource := Jaigo.POSource;
  end;
  frmPODateSearch := TfrmPODateSearch.Create(Self);
  frmPODateSearch.ShowModal;
  frmPODateSearch.free;
end;


// 고객명으로서 입출고 내역을 검색할 때
procedure TfrmMain.submnPOCusSearchClick(Sender: TObject);
begin
  with Jaigo.POTable do
  begin
    Jaigo.PartTable.Active := FALSE;
    Jaigo.CustomerTable.Active := FALSE;
    Jaigo.PartJaigoTable.Active := FALSE;

    if not Active = TRUE then
      Active := TRUE;
    Filtered := FALSE;
    DBGrid1.DataSource := Jaigo.POSource;
  end;
  frmPOCusSearch := TfrmPOCusSearch.Create(Self);
  frmPOCusSearch.ShowModal;
  frmPOCusSearch.free;
end;


// 입출고 내역을 파트 넘버로서 검색할 때
procedure TfrmMain.submnPOPartSearchClick(Sender: TObject);
begin
  with Jaigo.POTable do
  begin
    Jaigo.PartTable.Active := FALSE;
    Jaigo.CustomerTable.Active := FALSE;
    Jaigo.PartJaigoTable.Active := FALSE;

    if not Active = TRUE then
      Active := TRUE;
    Filtered := FALSE;
    DBGrid1.DataSource := Jaigo.POSource;
  end;
  frmPOPartSearch := TfrmPOPartSearch.Create(Self);
  frmPOPartSearch.ShowModal;
  frmPOPartSearch.free;
end;


// Local로 입출고 내역을 검색할 때
procedure TfrmMain.submnPOLocSearchClick(Sender: TObject);
begin
  with Jaigo.POTable do
  begin
    Jaigo.PartTable.Active := FALSE;
    Jaigo.CustomerTable.Active := FALSE;
    Jaigo.PartJaigoTable.Active := FALSE;

    if not Active = TRUE then
      Active := TRUE;
    Filtered := FALSE;


    DBGrid1.DataSource := Jaigo.POSource;
  end;
  frmPOLocSearch := TfrmPOLocSearch.Create(Self);
  frmPOLocSearch.ShowModal;
  frmPOLocSearch.free;
end;


// 폼이 닫힐 때에는 활성화 되어있는 테이블들을 모두 닫는다.
procedure TfrmMain.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  if Jaigo.PartTable.Active = TRUE then
  begin
    Jaigo.PartTable.Refresh;
    Jaigo.PartTable.Active := FALSE;
  end;

  if Jaigo.CustomerTable.Active = TRUE then
  begin
    Jaigo.CustomerTable.Refresh;
    Jaigo.CustomerTable.Active := FALSE;
  end;

  if Jaigo.POTable.Active = TRUE then
  begin
    Jaigo.POTable.Refresh;
    Jaigo.POTable.Active := FALSE;
  end;

  if Jaigo.PartJaigoTable.Active = TRUE then
  begin
    Jaigo.PartJaigoTable.Refresh;
    Jaigo.PartJaigoTable.Active := FALSE;
  end;

  Action := cafree;
  frmMain := nil;
end;


// 폼이 생성되었을 때
procedure TfrmMain.FormCreate(Sender: TObject);
begin
//  btnLogin.Enabled := FALSE;
  bLog := TRUE;
  btnLogout.Enabled := TRUE;
end;

// 입출고 내역을 보고자 할 때
procedure TfrmMain.N1Click(Sender: TObject);
begin
  with Jaigo.POTable do
  begin
    Jaigo.PartTable.Active := FALSE;
    Jaigo.CustomerTable.Active := FALSE;
    Jaigo.PartJaigoTable.Active := FALSE;

    if not Active = TRUE then
      Active := TRUE;

    Filtered := FALSE;
    DBGrid1.DataSource := Jaigo.POSource;
  end;
end;


// 고객 테이블을 보여준다.
procedure TfrmMain.N2Click(Sender: TObject);
begin
  with Jaigo.CustomerTable do
  begin
    Jaigo.PartTable.Active := FALSE;
    Jaigo.POTable.Active := FALSE;
    Jaigo.PartJaigoTable.Active := FALSE;

    if not Active = TRUE then
      Active := TRUE;
    DBGrid1.DataSource := Jaigo.CustomerSource;
  end;
end;


// 파트 테이블을 보여준다.
procedure TfrmMain.N3Click(Sender: TObject);
begin
  with Jaigo.PartTable do
  begin
    Jaigo.CustomerTable.Active := FALSE;
    Jaigo.POTable.Active := FALSE;
    Jaigo.PartJaigoTable.Active := FALSE;

    if not Active = TRUE then
      Active := TRUE;
    DBGrid1.DataSource := Jaigo.PartSource;
    DBGrid1.Columns.Items[4].Visible := FALSE;
  end;
end;

procedure TfrmMain.mnLocalRegClick(Sender: TObject);
begin
  with Jaigo.PartJaigoTable do
  begin
    Jaigo.PartTable.Active := FALSE;
    Jaigo.POTable.Active := FALSE;
    Jaigo.CustomerTable.Active := FALSE;

    if not Active = TRUE then
    Active := TRUE;
    DBGrid1.DataSource := Jaigo.PartJaigoSource;
  end;
  frmLocalReg := TfrmLocalReg.Create(Self);
  frmLocalReg.ShowModal;
  frmLocalReg.free;
end;

procedure TfrmMain.Local1Click(Sender: TObject);
begin
  with Jaigo.PartJaigoTable do
  begin
    Jaigo.PartTable.Active := FALSE;
    Jaigo.POTable.Active := FALSE;
    Jaigo.CustomerTable.Active := FALSE;

    if not Active = TRUE then
    Active := TRUE;
    DBGrid1.DataSource := Jaigo.PartJaigoSource;
  end;
  frmLocalJaigo := TfrmLocalJaigo.Create(Self);
  frmLocalJaigo.ShowModal;
  frmLocalJaigo.free;
end;

procedure TfrmMain.Parts1Click(Sender: TObject);
begin
  with Jaigo.PartJaigoTable do
  begin
    Jaigo.PartTable.Active := FALSE;
    Jaigo.POTable.Active := FALSE;
    Jaigo.CustomerTable.Active := FALSE;

    if not Active = TRUE then
    Active := TRUE;
    DBGrid1.DataSource := Jaigo.PartJaigoSource;
  end;
  frmPartStock := TfrmPartStock.Create(Self);
  frmPartStock.ShowModal;
  frmPartStock.free;
end;

end.
3  COMMENTS
  • Profile
    이중철 2004.02.20 02:09
    Action := cafree;
    frmMain := nil;

    이부문만 빼 주세요



  • Profile
    손희석 2004.02.19 23:07
    FormClose 이벤트에서

    메인폼.free를 빼주세요. 메인폼을 해제시켜주는 것을 그 이벤트에 넣게 되면

    폼이 메모리에서 해제는 되지만 프로그램 종료 메시지를 보내지 못하겠죠?

    그래서 그렇습니다..

    그럼 즐프 되세요

  • Profile
    nilriri™ 2004.02.21 08:48
    .
    • 용이...
    • 2004.02.21 21:38
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 레인시즈
      2004.02.23 19:28
      확인 버튼에 ModalResult의 값을 설정 해 주심 됩니다. 아래와 같이요. 일단 버튼 클릭을 하고 Exit를 하...
    • 성더기
      2004.02.23 19:27
      모달폼(ShowModa)l에 ModalResult 값이 들어가면 클로즈 이벤트가 발생합니다 님게서 원하고자 하는 방법...
    • 김병윤
      2004.02.21 23:15
      별달리 에러날 일이 없는데.. 그리고 여쭤보고 싶은 내용이 있는데요 InformBox 는 뭐죠? 걍 ShowMessag...
    • 문지영
    • 2004.02.21 20:35
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 손광현
      2004.02.21 21:17
      프로그램 시작시에     DateSeparator := '-';     shortdat...
    • 손희석
      2004.02.22 07:04
      SysUtils유닛의 EncodeDate 함수를 사용하기를 추천합니다. function EncodeDate(Year, Month, Day: ...
    • 엑기스
    • 2004.02.21 19:37
    • 3 COMMENTS
    • /
    • 0 LIKES
    • nilriri™
      2004.02.22 12:04
      if edit1.text = '' then edit1.text := 0; 이라고 코딩을 하시면..^^;
    • 엑기스
      2004.02.24 03:47
    • 아프락삭스
      2004.02.25 00:44
      if edit1.text(여기서 한칸 띄고)=(다시 한칸띄고)'' 이렇게 하라는 말 같습니다. 비교 if edit1.text...
    • 윤상현
    • 2004.02.21 19:08
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김진용
      2004.02.24 00:06
      public 변수로 선언한다구,,, 메모리문제가 나진 않을껀데요... Buffer_write 해당함수에서 수행하는게 어
    • nilriri™
      2004.02.21 08:42
      코딩을 어케 하셨나여? 수정했다는데..어케 수정하셨는지...그리고 무슨 에러가 났는지.. 아무것도 ...
    • 김경록
      2004.02.24 00:26
      이거 또, 제가 올린 프로그램을 선전해야겠군여.. 자료실에 보면, 제 이름으로 올린 예제가 있으니, 확인...
    • nilriri™
      2004.02.21 08:45
      ㅡㅡ; 위에 꺼랑 같은 질문?? 쿼리 컴포넌트의 Cursor(마우스 커서 말하는거 아님...)Type이.. 응용...
    • 정진만
      2004.02.23 19:40
      제가 자주 쓰는 방법이 있습니다. 이렇게 한번 해보세요. var   List: TStrings; be...
    • 고가람
      2004.02.21 02:20
      아쉽게도 델파이에는 없는걸로 알고 있습니다. 저번에 자바의 해쉬테이블 같은 구조가 필요해서 저...
    • 손희석
      2004.02.21 08:55
      THashedStringList를 한번 써보시면 어떨지.. ^^ 그냥 끄적여 봤습니다.. VCL에 있는 객체인데 비슷...
    • 하태희
    • 2004.02.20 23:36
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 김경록
      2004.02.23 02:23
      간단한 예제를 올려 드리지여.. 결론은 "된다"  입니다.. < 테스트 환경 > 개발툴:...
    • 하태희
      2004.02.23 20:00
      답변감사합니다. 헌데... 프로시져내에 변수에 값을 초기화하는 문자을 넣으면 오류가 발생을 하거든요....
    • 미러
    • 2004.02.20 22:00
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 성더기
      2004.02.20 22:04
      네자리를 채우는 방법은 formatfloat('0000', i) 하시면 됩니다
    • 이중철
      2004.02.20 20:56
      여러방법이 있겠으나 sdk함수 filecopy(vb하고 똑같죠^^)를 쓰시면 될듯하네요 헬프는 windows sdk 보시...
    • 손상엽
      2004.02.21 01:05
      SDK 함수라는게.. 뭘 뜻하는지.. ㅡㅡ;;; 무슨 컴포넌트를 따로 설치해야 하나요? 제컴터에선.. 이...
    • 손희석
      2004.02.21 09:01
      CopyFile이라는 함수가 있습니다. 헬퍼에 나옵니다.. Help메뉴의 Windows SDK에 있답니다.. 아래와 ...
    • mrdelphi
    • 2004.02.20 09:25
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 성더기
      2004.02.20 18:14
      상위 20개를 제외한 나머지중에서 20개를 가져오시면 됩니다 select top 20 * from tablename where fldn...
    • 유부남
    • 2004.02.20 05:01
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 김형태
    • 2004.02.20 02:10
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 박동호
    • 2004.02.20 01:40
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 김경록
      2004.02.23 02:31
      음.. 결과적으로는 다중 사용자용으로 사용하기는 어렵습니다. 물론, Exclusive Access를 사용하여, MDB...
    • 김수현
      2004.02.20 17:45
      저도 잘 알지는 못하지만, 2년전에 access로 시스템을 개발한 적이 있는데... 저의 경우도 4 ~ 5명 정도가 ...
    • 조지연
    • 2004.02.20 01:18
    • 0 COMMENTS
    • /
    • 0 LIKES
    • OH~
    • 2004.02.20 00:13
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 공호준
      2004.02.20 17:53
      아마 접지가 되지 않아서 내부에 전류가 흐르고 있을 때 종종 안되는 경우가 있습니다. PC의 232포트 5과 P...
    • OH~
      2004.02.21 18:02
      접지를 하는 방법은 메인보드를 뜯어서 절연시켜주어야 하는건가요? PC외부에서는 아무리 봐도 안되네...
    • 정재식
      2004.04.22 05:32
      PC의 접지는 전원선을 이용하시면 됩니다. 전원선중 가운데 단자가 접지 선이기때문에 별도로 하지 않...
    • 이중철
      2004.02.20 02:16
      type   _MsgStruct = record     DataLen, FC, MCmd, SCmd : byte; &n...
    • 이상협
    • 2004.02.19 22:18
    • 3 COMMENTS
    • /
    • 1 LIKES
    • 이중철
      2004.02.20 02:09
      Action := cafree; frmMain := nil; 이부문만 빼 주세요
    • 손희석
      2004.02.19 23:07
      FormClose 이벤트에서 메인폼.free를 빼주세요. 메인폼을 해제시켜주는 것을 그 이벤트에 넣게 되면 ...
    • nilriri™
      2004.02.21 08:48
      .