Q&A

  • TSaveDialog 실행시 Access Violation Error!
폼 Create 시에 SaveDialog1.Execute 를 실행하면 바이얼레이션 에러가 납니다.

당연한 결과지요...

하지만 그래도 해결책이 없을까요?

폼이 메모리에 로드된 이후에 SaveDialog1.Execute 하는 상황이면 문제 없겠지만

폼 Create 이벤트에서 어떤 상황하에서만 TSaveDialog를 띄우냐 마느냐를 결정지어야 하거든요...



4  COMMENTS
  • Profile
    최용일 2000.03.30 01:54
    폼이 생성될때 (OnCreate)에도 SaveDialog1.Execute를 실행할 수 있습니다.



    에러가 날 이유가 없는데요. 아마도 아직 생성되지 않은 폼의 컨트롤들을



    참조한것 같군요. 폼의 Create에서 TSaveDialog를 띄운다고해서 에러가 나지



    는 않습니다.



    초보 wrote:

    > 폼 Create 시에 SaveDialog1.Execute 를 실행하면 바이얼레이션 에러가 납니다.

    > 당연한 결과지요...

    > 하지만 그래도 해결책이 없을까요?

    > 폼이 메모리에 로드된 이후에 SaveDialog1.Execute 하는 상황이면 문제 없겠지만

    > 폼 Create 이벤트에서 어떤 상황하에서만 TSaveDialog를 띄우냐 마느냐를 결정지어야 하거든요...

    >

  • Profile
    초보 2000.03.30 02:33
    최용일 wrote:

    >폼이 생성될때 (OnCreate)에도 SaveDialog1.Execute를 실행할 수 있습니다.



    >에러가 날 이유가 없는데요. 아마도 아직 생성되지 않은 폼의 컨트롤들을



    >참조한것 같군요. 폼의 Create에서 TSaveDialog를 띄운다고해서 에러가 나지



    >는 않습니다.



    >



    빈폼 하나 띄워놓고 OnCreate 이벤트에 아래와 같이 코딩 해봤는데도 안되네요...

    다음과 같은 에러가 뜹니다.

    'Access Vilolation at address 00425203 in module 'Project1.exe', read of address ffffffff'



    //폼의 OnCreate 이벤트에서 바이얼레이션 에러가 납니다.

    procedure TForm1.FormCreate(Sender: TObject);

    var f_File : TFilename;

    begin

    if SaveDialog1.Execute then

    f_File := SaveDialog1.FileName;

    end;



    //버튼의 OnClick 이벤트에서는 무리없이 잘 됩니다.

    procedure TForm1.Button1Click(Sender: TObject);

    var f_File : TFilename;

    begin

    if SaveDialog1.Execute then

    f_File := SaveDialog1.FileName;

    end;





    전 폼에 TSaveDialog를 가져다 붙였으니 폼이 생성완료 되기전에 TSaveDialog를 실행시키면

    당연히 바이얼레이션 에러가 뜨는걸로 생각하고 그 해결책을 질문한건데

    최용일님은 된다고 하시니 제 델파이가 이상한 건가요?

    지금까진 아무 문제 없었습니다. Delphi4.0 C/S버전 입니다..





  • Profile
    최용일 2000.03.30 02:35
    이상하네요 저는 잘 되기만 하는데...



    혹시 SaveDialog1을 동적으로 생성했던거 아닌가요?

    즉, 폼위에 SaveDialog1이란 콤퍼넌트가 있습니까? 없다면 동적으로 생성하신

    것 같은데 그럴땐 SaveDialog1이란 콤퍼넌트를 생성한 뒤에 Execute를 호출

    하셔야 합니다.



    초보 wrote:

    > 빈폼 하나 띄워놓고 OnCreate 이벤트에 아래와 같이 코딩 해봤는데 안되네요...

    > 다음과 같은 에러가 뜹니다.

    > 'Access Vilolation at address 00425203 in module 'Project1.exe', read of address ffffffff'

    >

    > //폼의 OnCreate 이벤트에서 바이얼레이션 에러가 납니다.

    > procedure TForm1.FormCreate(Sender: TObject);

    > var f_File : TFilename;

    > begin

    > if SaveDialog1.Execute then

    > f_File := SaveDialog1.FileName;

    > end;

    >

    > //버튼의 OnClick 이벤트에서는 무리없이 잘 됩니다.

    > procedure TForm1.Button1Click(Sender: TObject);

    > var f_File : TFilename;

    > begin

    > if SaveDialog1.Execute then

    > f_File := SaveDialog1.FileName;

    > end;

    >

  • Profile
    초보 2000.03.30 03:30
    최용일 wrote:

    > 이상하네요 저는 잘 되기만 하는데...

    >

    > 혹시 SaveDialog1을 동적으로 생성했던거 아닌가요?

    > 즉, 폼위에 SaveDialog1이란 콤퍼넌트가 있습니까? 없다면 동적으로 생성하신

    > 것 같은데 그럴땐 SaveDialog1이란 콤퍼넌트를 생성한 뒤에 Execute를 호출

    > 하셔야 합니다.

    >

    > 초보 wrote:

    > > 빈폼 하나 띄워놓고 OnCreate 이벤트에 아래와 같이 코딩 해봤는데 안되네요...

    > > 다음과 같은 에러가 뜹니다.

    > > 'Access Vilolation at address 00425203 in module 'Project1.exe', read of address ffffffff'

    > >

    > > //폼의 OnCreate 이벤트에서 바이얼레이션 에러가 납니다.

    > > procedure TForm1.FormCreate(Sender: TObject);

    > > var f_File : TFilename;

    > > begin

    > > if SaveDialog1.Execute then

    > > f_File := SaveDialog1.FileName;

    > > end;

    > >

    > > //버튼의 OnClick 이벤트에서는 무리없이 잘 됩니다.

    > > procedure TForm1.Button1Click(Sender: TObject);

    > > var f_File : TFilename;

    > > begin

    > > if SaveDialog1.Execute then

    > > f_File := SaveDialog1.FileName;

    > > end;

    > >



    정말 모를 일이군요..

    그냥 빈 폼위에 SaveDialog만 덩그러니 올려놓고 위처럼 해본거거든요..

    다른분들도 다 잘되시는건가요?



    • 이수정
    • 2000.03.30 03:18
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2000.03.30 03:35
      TList, TListBox, TListView, ...등에서 현재 가지고 있는 아이템의 범위를 벗어난 인덱스를 참조할때 일...
    • nilriri
      2000.03.30 03:33
      이수정 wrote: > Project chat.exe raised exception class EListError with message > > 'List index...
    • 정형모
    • 2000.03.30 03:14
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 공성환
      2000.03.30 04:10
      정형모 wrote: > DBGridH에서 마지막에 Row를 추가하여 합계를 표현할수 > 있는지..... > 아시는분 급...
    • 2000.03.30 05:07
      id.text := DBGrid1.fieldbyname('id').value; name.text := DBGrid1.fieldbyname('name').valu...
    • nilriri
      2000.03.30 03:15
      이수정 wrote: > 안녕하세요.. > > 1) query1.open; 하고.. > 2) query1.Locate('id', 'leesj', [loCa...
    • 이수정
      2000.03.30 03:24
      nilriri wrote: > 이수정 wrote: > > 안녕하세요.. > > > > 1) query1.open; 하고.. > > 2) query1.L...
    • nilriri
      2000.03.30 03:37
      지금당장 컴을 리부팅 하시길... 메모리 부족에러인듯... 'Insufficient memory (잘못된, 부적절한의...
    • nambada
    • 2000.03.30 03:01
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 송정환
    • 2000.03.30 02:40
    • 1 COMMENTS
    • /
    • 0 LIKES
    • nilriri
      2000.03.30 02:53
      송정환 wrote: > 테이블 컴포넌트을 이용해서 데이타를 억세를 하고 있는데.. > 테이블 컴포넌트의 filte...
    • 최석기
      2000.03.30 03:40
      양동욱 wrote: > 안녕하세요. > 델파이 초보입니다. > 제가 원하는 것은 > 하드에 있는 파일을 플로피 ...
    • nilriri
      2000.03.30 03:11
      김진호 wrote: > 정해진 한 컴포넌트에서만 키보드의 화살표키(방향키)를 못쓰게 하려면 어떻게 해야 되나...
    • nilriri
      2000.03.30 04:00
      조유정 wrote: > 퀵리포트 사용시 처음페이지와 다르게 페이지 footer길이를 조정하고 싶은데 조정방법이...
    • 2000.03.30 01:49
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 2000.03.30 01:44
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 초보
    • 2000.03.30 01:33
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2000.03.30 01:54
      폼이 생성될때 (OnCreate)에도 SaveDialog1.Execute를 실행할 수 있습니다. 에러가 날 이유가 없는데요....
    • 초보
      2000.03.30 02:33
      최용일 wrote: >폼이 생성될때 (OnCreate)에도 SaveDialog1.Execute를 실행할 수 있습니다. >에러가 날...
    • 최용일
      2000.03.30 02:35
      이상하네요 저는 잘 되기만 하는데... 혹시 SaveDialog1을 동적으로 생성했던거 아닌가요? 즉, 폼위에 ...
    • 초보
      2000.03.30 03:30
      최용일 wrote: > 이상하네요 저는 잘 되기만 하는데... > > 혹시 SaveDialog1을 동적으로 생성했던거 ...
    • 심심해서
      2000.03.30 01:33
      이수정 wrote: > 안녕하세요.. > > 그냥 Edit를 사용하여 입력하기는 했습니다. 제가 DB에 좀 약하거든...
    • 류종택
      2000.03.30 01:33
      Refresh를 사용하려면.. PK가 있어야만 가능하다는 이야기입니다.. 그리고 입력맞다 Refresh를 할 필요가...
    • 신 기종
      2000.03.30 01:31
      이수정 wrote: > 안녕하세요.. > > 그냥 Edit를 사용하여 입력하기는 했습니다. 제가 DB에 좀 약하거든...
    • chobo
    • 2000.03.30 01:16
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 유수
      2000.03.30 01:33
      안녕하세요. 문자열의 바이트수 얻으려면 한영구분없이 Length(Str)을 이용하면 됨다.. ByteToCh...
    • 이빈
    • 2000.03.30 00:40
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 유수
      2000.03.30 01:17
      안녕하세요. is for delphi 경우 Delphi로 제작된 프로그램 배포에 맞게 커스터마이즈 되어 있져.....
    • 임형호
      2000.03.30 01:02
      이빈 wrote: > installshield.Professional6.0과 > installshieldExpress Custom Edition for Delphi > ...
    • 서경철
    • 2000.03.30 00:33
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2000.03.30 01:45
      아마도 디버거가 등록이 되지 않은것 같군요.. windowssystem에 있는 RegSvr32.exe를 이용해서 등록해주...
    • 유수
      2000.03.30 01:11
      헐헐.. 말 그대로 디버거 커널이 등록이 안되었습니다. regsvr32를 이용해 직접 레지스트리에 등...
    • 최명관
    • 2000.03.30 00:25
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 유수
      2000.03.30 01:05
      ExtractFileName은 확장자까지 모두 다 가져와여.. 그러니깐, ExtractFileExt를 응용해 함수를 한...
    • 최용일
      2000.03.30 00:58
      ExtractFileName는 파일이름과 확장자를 포함한 이름을 돌려주는것이 맞습니다. 아래와 같이 하시면 확...
    • 강인규
      2000.03.30 00:05
      DBEdit는 DataSource와 연결합니다. DataSource는 Table이나 Query와 연결되구요. DBEdit는 DBGrid나 다...
    • 정거장
      2000.03.30 00:03
      이수정 wrote: > 안녕하세요.. > > DBEdit 속성 저장창에서는 왜 테이블 연결이나 그런것이 없나요? ...
    • 한익섭
    • 2000.03.29 23:41
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 조규춘
      2000.03.30 02:07
      한익섭 wrote: > 안녕하세요^^ > 음.. 예전에 많았던.. 바탕화면이나.. 프로그램에서 돌아댕기는.... > ...