Q&A

  • 에러 확인 좀 부탁드리겠습니다...


unit guest;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, ExtCtrls, StdCtrls, ActnList, Grids, DBGrids, DB,
  DBTables, Mask, DBCtrls;

type
  Tfmcustinfo = class(TForm)
    pnltitle: TPanel;
    Panel2: TPanel;
    Panel1: TPanel;
    pnlcustinfo: TPanel;
    sbhelp: TStatusBar;
    tblcust: TTable;
    dscust: TDataSource;
    DBGrid1: TDBGrid;
    tableaction: TActionList;
    icustno: TLabel;
    icustname: TLabel;
    iaddress: TLabel;
    itel: TLabel;
    navcustinfo: TDBNavigator;
    dbecustno: TDBEdit;
    dbecustname: TDBEdit;
    dbeaddress: TDBEdit;
    dbetel: TDBEdit;
    btninsert: TButton;
    btnedit: TButton;
    btnpost: TButton;
    btndelete: TButton;
    btncancel: TButton;
    btnclose: TButton;
    actinsert: TAction;
    actedit: TAction;
    actpost: TAction;
    actdelete: TAction;
    actcancel: TAction;
    actclose: TAction;
procedure FormCreate(Sender: TObject);
    procedure actinsertExecute(Sender: TObject);
    procedure acteditExecute(Sender: TObject);
    procedure actpostExecute(Sender: TObject);
    procedure actdeleteExecute(Sender: TObject);
    procedure actcancelExecute(Sender: TObject);
    procedure actcloseExecute(Sender: TObject);
     private
    { Private declarations }
procedure buttoncontrol(ntag:integer; bflag:boolean);
procedure myhint(sender:tobject);
procedure editcontrol(bflag:boolean);

  public
    { Public declarations }
  end;

var
  fmcustinfo: Tfmcustinfo;

implementation

{$R *.dfm}

begin

procedure Tfmcustinfo.FormCreate(Sender: TObject);
begin
if not tblcust.active then begin
  buttoncontrol(1,false);
  buttoncontorl(2,false);
end
else begin
  buttoncontrol(1,true);
  buttoncontrol(2,false);
end;
application.onhint:=myhint;
end;


procedure tfmcustinfo.buttoncontrol(ntag:bflag; boolean);
var
nindex : integer;
begin
for nindex :=0 to componentcount-1 do
  if components[nindex] is tbutton then
   if tbutton(components[nindex]).tag=ntag then
    tbutton(components[nindex]).enabled:=bflag;
end;


procedure tfmcustinfo.myhint(sender:tobject);
begin
sbhelp.simpletext:=application.hint
end;

procedure Tfmcustinfo.actinsertExecute(Sender: TObject);
begin
try
tblcust.insert;
buttoncontrol(1,false);
buttoncontrol(2,true);
buttoncontrol(true);
except
showmessage('테이블을 입력 모드로 전환하는 도중'+#13#10+
             '에러가 발생했습니다.'+#13#10+
             '확인 후 다시 시도해 주십시요.');
end;
end;

procedure tfmcustinfo.editcontrol(bflag:boolean);
var
nindex:integer
begin
for nindex :=0 to componentcount-1 do
if components[nindex]) is tdbedit then
  tdbedit(components[nindex]).enabled:=bflag
end;




procedure Tfmcustinfo.acteditExecute(Sender: TObject);
begin
try
tblcust.edit;
buttoncontrol(1,false);
buttoncontrol(2,true);
buttoncontrol(true);
except
showmessage('테이블을 수정 모드로 전환하는 도중'+#13#10+
             '에러가 발생했습니다.'+#13#10+
             '확인 후 다시 시도해 주십시오.');
end;
end;

procedure Tfmcustinfo.actpostExecute(Sender: TObject);
var
savecursor:tcursor;
begin
if (tblcust.state=dsinsert) or (tblcust.state = dsedit) then begin
  try
   savecursor:=screen.cursor;
   screen.cursor:=crhourglass;
   tblcust.post;
   buttoncontrol(1,true);
   btttoncontrol(2,false);
   editcontrol(false);
   screen.cursor:=savecursor;
except
  showmessage('테이블을 저장하는 도중 에러가 발생했습니다.'+#13#10+
              '확인 후 다시 시도해 주십시오.');
end;
end;


end;

procedure Tfmcustinfo.actdeleteExecute(Sender: TObject);
begin
try
tblcust.delete;
except
showmessage('테이블을 삭제하는 도중 에러가 발생했습니다.'+#13#10+
             '확인 후 다시 시도해 주십시오.');
end;
end;

procedure Tfmcustinfo.actcancelExecute(Sender: TObject);
begin
tblcust.cancel;
buttoncontrol(1,true);
buttoncontrol(2,false);
editcontrol(false);
end;

procedure Tfmcustinfo.actcloseExecute(Sender: TObject);
begin
close;
end;

end.

이런 코드를 완성했습니다..

실행을 해보려 하니 다음과 같은 에러가 뜹니다.....ㅠ


[Error] guest.pas(68): Statement expected but 'PROCEDURE' found
[Error] guest.pas(72): Undeclared identifier: 'buttoncontorl'
[Error] guest.pas(82): Undeclared identifier: 'bflag'
[Error] guest.pas(82): Missing parameter type
[Error] guest.pas(86): Undeclared identifier: 'componentcount'
[Error] guest.pas(87): Undeclared identifier: 'components'
[Error] guest.pas(87): Operator not applicable to this operand type
[Error] guest.pas(104): Incompatible types: 'Integer' and 'Boolean'
[Error] guest.pas(115): ';' expected but 'BEGIN' found
[Error] guest.pas(117): Type of expression must be BOOLEAN
[Error] guest.pas(130): Incompatible types: 'Integer' and 'Boolean'
[Error] guest.pas(138): Statement expected but 'PROCEDURE' found
[Error] guest.pas(148): Undeclared identifier: 'btttoncontrol'
[Error] guest.pas(44): Unsatisfied forward or external declaration: 'Tfmcustinfo.acteditExecute'
[Fatal Error] guestguest.dpr(5): Could not compile used unit 'guest.pas'


정말 초보라 옆에 물어볼 사람도 없고...... 정말 막막합니다..
책보고 따라하는 건데 이런 기초적인 것도 안되고.. 도와주세요!






2  COMMENTS
  • Profile
    모영철 2005.08.26 00:08
    아실지 모르겠습니다만..

    그 에러코드를 더블 클릭하면 알아서 어디서 났는지 찾아줍니다.

    아마 이전줄이나 다음줄 안에 에러가 있을겁니다.

  • Profile
    데빠이 2005.08.25 23:15
    위에 선언한건 procedure buttoncontrol(ntag:integer; bflag:boolean); 이구...
    아래 소스상에는 procedure tfmcustinfo.buttoncontrol(ntag:bflag; boolean); 이렇게 해놓으셨네요...

    글구 위에는 잘 적어놓으시구 editcontrol 프로시저 안에는 if components[nindex]) is tdbedit then 이렇게 적어 놓으셔서... 닫는 괄호만 있네요... --; 그 밑 문장에 ';' 도 빠지셨구요...

    오타가 제법 있는듯 하니, 암튼 잘 찾아보세요...^^


    • 마이크로김
      2005.08.30 02:43
      form create 적어주면 화면이 clear 됩니다 AForm.Brush.Style := bsClear;
    • 최용일
      2005.08.26 08:25
      안녕하세요. 최용일입니다. HTML로 파일 저장하실때 그냥 텍스트문서를 확장자만 html로 만들어서 저장...
    • 프로글래머
      2005.08.26 01:43
      SpeedButton 의 Flat 를 True 로 하여 필요한 부분에 내려놓고 사용하면 될 것 같은데요 ? 마우스가 가면 ...
    • 나도초급
      2005.08.26 02:38
      답변 감사합니다.. 그런데, 사각 이미지 가 아니라 스피드 버튼으로 처리가 어려워요. 그리고 투명폼을...
    • 권형근
    • 2005.08.26 00:07
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 모영철
      2005.08.26 00:16
      일반 도스용 프로그램들 생각하면 됩니다. CreateProcess함수에 파라미터 집어넣는 부분이 따로 없으니 ...
    • 권형근
      2005.08.27 01:08
      답변 감사합니다. 다른 질문을 또 하고자 합니다. 테스트1, 테스트2 프로그램이 있고, 테스트2는...
    • TeamB
      2005.08.30 04:15
      메인폼의 OnActive 나 OnShow 에서 적절히 처리 해주시면 될듯 한데요.. 메인폼이 열릴때... Param...
    • 토픽
    • 2005.08.25 21:35
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 윤경미
    • 2005.08.25 21:15
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 모영철
      2005.08.26 00:08
      아실지 모르겠습니다만.. 그 에러코드를 더블 클릭하면 알아서 어디서 났는지 찾아줍니다. 아마 이전...
    • 데빠이
      2005.08.25 23:15
      위에 선언한건 procedure buttoncontrol(ntag:integer; bflag:boolean); 이구... 아래 소스상에는 procedu...
    • 최용일
      2005.08.26 08:16
      안녕하세요. 최용일입니다. 델파이의 Source폴더에 보시면 각각의 소스가 있으니 그걸 보시고 새로 함수...
    • 허 강
    • 2005.08.25 12:34
    • 2 COMMENTS
    • /
    • 0 LIKES
    • TeamB
      2005.08.25 18:22
      델 7의 ADO 콤포를 사용해보지 않아서 모르겟는데, 아마도 DisableControls, EnableControls 라는 메소드...
    • 허 강
      2005.08.26 08:35
      답변 감사합니다. 모든것이 해결되었습니다. > >델 7의 ADO 콤포를 사용해보지 않아서 모르겟는데, 아...
    • 김상균
    • 2005.08.25 07:29
    • 5 COMMENTS
    • /
    • 0 LIKES
    • 박홍재
      2005.08.27 11:14
      안녕하세요. 문제는 두개의 필드를 합친 것에 대한 조회에 있는거 같군요. Select 문에서 두개의 Field를...
    • TeamB
      2005.08.26 10:07
      흠...데이터는 검색되지 않습니다. 디비가 MySQL이라고 하셨죠? out_date 가 date 형이나 datetime 형일...
    • 김상균
      2005.08.26 04:36
      out_date 는 날짜형이고 lend_su 는 숫자형입니다. 검색하고자 하는것은 out_date(대여일자)+lend_su(대여...
    • 박홍재
      2005.08.25 23:49
      out_date와 lend_su를 더하는 이유가 무엇인가요.  out_date는 Table의 Field 일거 같은데요.&...
    • 조진희
      2005.08.25 20:28
      저도 잘은 모르지만.. 아마도.. out_date는 형식이 데이터 일꺼 같고.. lend_su는 숫자 일꺼 같은데....
    • 모영철
      2005.08.25 17:58
      이렇게 하면 됩니다 SendMessage(Form2.handle, WM_MOUSEWHEEL, WheelDelta * 256 * 256, MousePos.X + ...
    • 기타맨
    • 2005.08.25 01:50
    • 1 COMMENTS
    • /
    • 0 LIKES
    • TeamB
      2005.08.25 19:13
      Level 과 GetPrev 를 사용하면 될듯합니다. <!-- CodeS --> var   nNode: TTreeNod...
    • 모영철
      2005.08.25 20:30
      메인폼을 없앨순 없습니다. 퀵리포트 폼을 메인으로 바꾸면 가능하겠지만요.. 이런방법이 있는진 모...
    • 장재림
      2005.08.26 08:36
      제가 바라는건 반대로 인데요 메인에서 반대로 프리뷰를 끌수 있는 지 없는지를 알고싶어서 그런건데 ...
    • nilriri™
      2005.08.30 05:48
      가능합니다.. 프리뷰창의 닫기버튼 클릭시 정말로 닫을까요?  라고 confirm메시지 처리를 하...
    • 김성진
      2005.08.25 02:40
      소켓팅이라는 것이 서버와 클라이언트간의 통신이것을 아실겁니다. 그럼 일반적으로 서버쪽은 오픈되어 있...
    • 델파이-델짱
      2005.08.26 18:09
      네 그렇군요.^^; 도움글 감사 드립니다. 관련 해서 한가지 더 질문 할께요^:^ 그러면 혹시 서버소켓...
    • 꼬미사랑
      2005.08.31 02:39
      안녕하세요^^* 가비지나 사용하지 않는 클라이언트 소켓을 찾는 방법보다는 일정 시간 규약된 시간내에 아...
    • 조현태
    • 2005.08.24 12:55
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 꼬미사랑
      2005.08.24 22:22
      클라이언트에서 사용하신 DB랑 원격 서버에 있는 DB의 종류에 따라서 틀리겠죠..방식에 대해서는.. 클라이...
    • 천희택
      2005.08.24 17:59
      안 돌아갑니다. Kernel 자체가 틀린데 안 돌아갑니다. 유닉스의 소스를 리눅스로 옮겨서 컴파일, 링...
    • 임형준
      2005.08.24 19:10
      제가 TStringList, TList, TStream같은 VCL 관련 오브젝트를 사용해서 보통의 표준 파스칼에서는 컴파...
    • ez.J
      2005.08.24 22:39
      유닉스용 델파이는 없습니다. 터보파스칼과 어느정도 호환되는 pascal을 사용해보시기 바랍니다. 수...
    • 임형준
      2005.08.24 08:26
      자문자답입니다만... 제가 만드려는 건 콘솔프로그램인데, 콘솔프로그램은 실행이 되더군요. ^^
    • 윤경미
    • 2005.08.24 02:33
    • 1 COMMENTS
    • /
    • 0 LIKES
    • Runo
      2005.08.24 03:02
      Table Properties 가시면 TableName 항목이 있습니다. 오른쪽에 있는 화살표를 누르면 Table 리스트가 나...
    • 조진희
    • 2005.08.23 23:04
    • 5 COMMENTS
    • /
    • 0 LIKES
    • 프로글래머
      2005.08.24 00:01
      크리스탈리포트에서 Formulas 는 배열입니다. 그러므로 Crpe1.Formulas[0]:='''+Edit1.text+'''; 형식으로...
    • 조진희
      2005.08.24 01:17
      영~ 모르겠어서 다시 질문드립니다.. Crpe1.Formulas[0]:='''+Edit1.text+'''; 이렇게 고쳐서 해 봤는데...
    • 프로글래머
      2005.08.24 01:55
      가물가물 한데요 ...... 기억을 더듬어 가면서 한번 설명을 해 보도록 하지요. 나의 공부도 되니까. ...
    • 조진희
      2005.08.24 04:46
      답변 정말 감사드립니다.. 정말로 많은 도움이 되고있습니다. 그런데,,제가 아직도 잘 모르겠어서..(너무...
    • 프로글래머
      2005.08.24 18:23
      말씀하시는것을 보니 쓰고계시는 버전 9와 6이 엄청난 차이가 있는것 같군요. 죄송합니다만 버전 9를 구...
    • 모영철
      2005.08.23 03:08
      ㅁㅁ
    • 권태훈
      2005.08.23 03:09
    • 민스맘
    • 2005.08.22 23:54
    • 0 COMMENTS
    • /
    • 0 LIKES