KR19990044503A - 판독 보조시스템 - Google Patents

판독 보조시스템 Download PDF

Info

Publication number
KR19990044503A
KR19990044503A KR1019980701751A KR19980701751A KR19990044503A KR 19990044503 A KR19990044503 A KR 19990044503A KR 1019980701751 A KR1019980701751 A KR 1019980701751A KR 19980701751 A KR19980701751 A KR 19980701751A KR 19990044503 A KR19990044503 A KR 19990044503A
Authority
KR
South Korea
Prior art keywords
text
function
fan
control
reading
Prior art date
Application number
KR1019980701751A
Other languages
English (en)
Inventor
마크 앤드류 에드가
Original Assignee
샤론 홀딩스 피티와이. 리미티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 샤론 홀딩스 피티와이. 리미티드 filed Critical 샤론 홀딩스 피티와이. 리미티드
Publication of KR19990044503A publication Critical patent/KR19990044503A/ko

Links

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09BEDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
    • G09B17/00Teaching reading
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09BEDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
    • G09B5/00Electrically-operated educational appliances
    • G09B5/06Electrically-operated educational appliances with both visual and audible presentation of the material to be studied
    • G09B5/065Combinations of audio and video presentations, e.g. videotapes, videodiscs, television systems
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09BEDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
    • G09B17/00Teaching reading
    • G09B17/04Teaching reading for increasing the rate of reading; Reading rate control

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • Educational Administration (AREA)
  • Educational Technology (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Mechanical Treatment Of Semiconductor (AREA)
  • Non-Silver Salt Photosensitive Materials And Non-Silver Salt Photography (AREA)
  • Photosensitive Polymer And Photoresist Processing (AREA)
  • Selective Calling Equipment (AREA)
  • Digital Computer Display Output (AREA)
  • User Interface Of Digital Computer (AREA)
  • Navigation (AREA)
  • Burglar Alarm Systems (AREA)
  • Fittings On The Vehicle Exterior For Carrying Loads, And Devices For Holding Or Mounting Articles (AREA)
  • Testing And Monitoring For Control Systems (AREA)
  • Developing Agents For Electrophotography (AREA)
  • Holo Graphy (AREA)
  • Processing Or Creating Images (AREA)
  • Image Generation (AREA)
  • Optical Communication System (AREA)
  • Vehicle Body Suspensions (AREA)
  • Eye Examination Apparatus (AREA)

Abstract

판독을 위한 텍스트 및/또는 그래픽 정보를 제공하기 위한 시스템(11). 시스템은 전체적인 레이아웃 스크린(도 4) 내에 텍스트 및/또는 그래픽 정보를 표시하기 위한 시각 디스플레이 유닛(15)과, 전자적으로 엔코드된 형태로 텍스트 및/또는 그래픽 정보를 수신하여 시각 디스플레이 유닛(15)에 제공하기 위한 처리수단(13)을 포함하는 마이크로컴퓨터를 포함한다. 상기한 방식으로 시각적 디스플레이 유닛(15) 상에 텍스트 및/또는 그래픽 정보의 제공을 제어하기 위해 컴퓨터 프로그램(19)이 제공된다. 상기 처리수단(13)과 컴퓨터 프로그램(19)를 동작시키기 위해 제어신호를 입력하여 제어 파라미터를 변경하기 위한 키보드와 마우스 입력(17)으로 구성된다. 컴퓨터 프로그램(19)은 규정된 블랭킹 시간에 순서적으로 레이아웃 스크린(도 4)의 동일한 위치에 상기 텍스트 및/또는 그래픽 정보의 불연속 및 연속된 부분을 위치시키며, 각 부분은 규정된 표시시간동안 이 위치에서 표시된다. 전체적인 레이아웃 스크린(도 4)은 제공될 텍스트 및/또는 그래픽 정보의 1블록을 표시하기 위한 브라우저 팬(37)과 텍스트 및/또는 그래픽 정보의 불연속 및 연속된 부분을 순차적으로 위치시키는 위치는 중앙에 위치해 있는 플래시 팬(39)으로 분할되어 있다.

Description

판독 보조시스템
수년간에 걸쳐 많은 상이한 기술들이 개발되었고 판독속도를 증가시키고 판독 내용의 이해와 기억을 유지하기 위하여 증진해왔다. 이 기술들은 각각의 연속된 워드가 페이지와 라인과 라인을 따라 순서적으로 판독되는 경우 인쇄된 페이지 형식으로 제공된 텍스트를 판독하는 전형적인 방법으로부터 시작하였다. 상이한 판독 기술을 개발하게된 이유는 판독속도를 증가시키고 이해를 유지하는 것을 반대로 완화시키는 전통적인 판독방법과 연관된 어떤 단점에 크게 기인한다. 더욱이, 텍스트가 기본적으로 정적이고 독자는 라인을 따라 그의 눈을 이동하는 것이 요구되는 경우 텍스트를 제공하는 완전히 인쇄된 페이지 접근은 판독되고 있는 워드의 상부, 하부 및 측면에 나타나는 전체의 텍스트가 독자에게는 산만을 야기할 수 있다. 그 결과 많은 독자는 텍스트, 문장 및 구절의 라인을 반복하는 고생을 하고 있으며, 이는 판독속도를 느리게 하며 텍스트를 처음 읽는 시간동안 판독 내용의 이해와 기억을 유지하는 것에 대하여 반대로 작용하게 된다.
시간내에 특별한 점에서 판독되고 있지 않는 페이지의 부분들을 블랭크로 남기는 머신을 사용하여 오래된 판독 스타일로부터 벗어나도록 독자를 트레이닝하거나 또는 다른 방법으로는 판독하고 있는 텍스트의 일부분을 강조함에 의해 이러한 특별한 문제에 역점을 두어 다루도록 다른 판독기술이 시도되고 있다. 이러한 기술들의 단점은 독자의 눈이 워드로부터 워드로 이동하여 텍스트의 강조된 부분과 보조를 맞추는 것을 여전히 요구하고 있다는 점에서 텍스트가 여전히 수동적이라는 것이다. 더욱이, 이들 기술을 채택할 경우 그들은 머신 의존성이 높게되며 모뎀 컴퓨터 시대 이전에는 구현하는 데 큰비용이 소요된다.
현대의 컴퓨터 시스템의 도입과 광범위한 채용 및 사용이 있는 경우 이러한 판독기술은 이전에 문제이었던 비용의 일부로서 구현될 수 있다. 더욱이, 현대 컴퓨터 시스템의 능력을 갖는 경우 더욱더 정교하고 향상된 판독기술이 개발되어 트레닝 도구로서 단순하게 사용되고 있는 것과 반대로 텍스트 내용을 컴퓨터 터미널에 기억하여 표시한 상태로 모든 시간동안 판독속도를 향상하고 판독내용의 이해와 기억을 유지하는데 사용될 수 있다.
인터넷과 같은 대중적인 정보망 및 데이터 베이스를 가지고, 전자메일 및 대용량의 텍스트 정보를 전송/기억하기 위한 CDROM과 같은 대용량 매체를 사용하는 경우, 종전에 문제가 되었던것 보다 사람들이 텍스트 정보의 이해와 판독속도를 개선하는데 현재는 매우큰 인센티브가 된다. 이러한 현대 퍼스널 컴퓨터(PC)의 고유한 능력과, 윈도우즈(WINDOWS)(등록상표)와 다른 멀티태스킹 윈도우 환경과 같은 그래픽 사용자 인터페이스의 시각적인 다이내미즘이 결합될때 보다 더 숙달된 판독기술을 도입하여, 이들을 이러한 텍스트 정보의 처리를 위해 채용된 적당한 어플리케이션 소프트웨어와 영구적으로 합체시킬 이상적인 기회가 제공되며, 이는 더욱더 빠른 숙련과 향상된 이해를 부여하는 새로운 판독 환경을 제공한다.
본 발명은 판독 보조시스템(reading aid)에 관한 것으로, 특히 판독을 위한 텍스트 및/또는 그래픽 정보를 제공하기 위한 시스템 및 방법에 관한 것이다.
본 발명은 하나의 특정한 실시예의 다음 설명에 비추어 이해될 것이다. 이 설명은 첨부된 도면을 참고하여 이루어진다
도 1은 시스템을 구성하는 메인 기능적 부품들의 블록도이고;
도 2는 제어수단을 구성하는 기능의 종류를 설명하는 블록도이며;
도 3은 시스템에 의해 수행되는 각종 기능을 보여주는 흐름도이고;
도 4는 메인 스크린의 전체적인 스크린 레이아웃의 카피이며;
도 5는 풀다운 'File'(파일) 메뉴를 보여주는 스크린 레이아웃의 카피이고;
도 6은 판독하기 위하여 텍스트 파일을 오픈할 준비가 완료된 'Open' 대화박스가 오픈된 상태의 스크린 레이아웃의 카피이며;
도 7은 브라우저 팬 내에 표시된 판독될 텍스트 파일의 제1부분을 갖는 브라우저 팬과 플래시 팬을 보여주는 스크린 레이아웃의 카피이고;
도 8은 도 7과 유사한 도면으로 풀다운 'Options' 메뉴를 보여주는 도면이며;
도 9는 도 8로부터 동일한 것을 선택한후 'Delays' 대화박스가 오픈된 것을 보여주는 스크린 레이아웃의 카피이고;
도 10은 도 8에 도시된 'Options' 메뉴로부터 이것을 선택한후 'Font' 대화박스가 오픈된 것을 보여주는 스크린 레이아웃의 카피이며;
도 11은 도 8에 도시된 'Options' 메뉴로부터 선택된때 'Flashes' 대화박스가 오픈된 것을 보여주는 스크린 레이아웃의 카피이고;
도 12는 단일 워드가 표시된 상태를 갖는 플래시 팬만을 표시하는 스크린 레이아웃의 카피이며;
도 13은 도 12와 유사한 도면이나 유사하게 측방향으로 센터링된 다른 워드를 보여주는 도면이고;
도 14는 도 7과 유사한 도면이나, 풀다운 'Read' 메뉴를 보여주는 도면이며;
도 15는 브라우저 팬내에서 선택된 일 블록의 텍스트를 갖는 브라우저 팬과 플래시 팬을 보여주는 스크린 레이아웃의 카피이고;
도 16은 도 7과 유사한 도면이나, 풀다운 'Speed' 메뉴를 보여주는 도면이며;
도 17은 판독될 텍스트의 불연속 부분을 제공하는 플래시 팬과 텍스트의 대응하는 부분을 강조하는 브라우저 팬을 갖는 판독 프로그램의 시작부를 보여주는 도 7과 유사한 도면이고;
도 18은 강조된 워드가 판독되고 있는 텍스트의 불연속 부분으로서 표시되어 있는 브라우저 팬과 플래시 팬을 보여주는 전체적인 스크린 레이아웃의 다른 도면으로 브라우저 팬내에 텍스트의 센터링을 보여주는 도면이다.
따라서 본 발명의 목적은 사용자가 판독속도를 증가시키고 판독 문제의 이해와 기억능력을 향상할 수 있는 현대 컴퓨팅 환경에서 판독을 위한 텍스트 및/또는 그래픽 정보를 제공하는 시스템 및 방법을 제공하는 데 있다.
본 발명의 일특징에 따르면 디스플레이 매체에 텍스트 및/또는 그래픽 정보를 표시하기 위한 디스플레이 수단과;
전자적으로 엔코드된 형태로 텍스트 및/또는 그래픽 정보를 수신하여 상기 디스플레이 매체상에 제공하기 위하여 이들을 처리하기 위한 처리수단과;
상기 디스플레이 매체상에 텍스트 및/또는 그래픽 정보의 제공을 제어하기 위한 제어수단과;
상기 처리수단과 제어수단을 동작시키는 제어신호를 입력하여 상기 처리수단과 제어수단에 대한 제어 파라미터를 변경하기 위한 입력수단으로 구성되며;
상기 제어수단은, 규정된 블랭킹 시간 간격으로, 디스플레이 매체상에 동일한 위치에 상기 텍스트 및/또는 그래픽 정보의 불연속 및 연속된 부분을 위치시키며, 각각의 불연속 및 연속된 부분의 전체 부분은 규정된 표시시간동안 상기 위치에 사실상 순간적으로 표시되는 것을 특징으로 하는 판독을 위한 텍스트 및/또는 그래픽 정보를 제공하는 시스템을 제공한다.
바람직하게는 상기 제어수단은 상기 위치내에 측방향으로 각각의 위치를 센터링하기 위한 센터링 수단을 포함한다.
바람직하게는 상기 제어수단은 텍스트 및/또는 그래픽 정보의 제공을 위해 디스플레이 매체의 전체적인 레이아웃과 시스템의 비쥬얼 제어속성을 정의하기 위한 애플리케이션 수단을 포함한다.
바람직하게는 상기 애플리케이션 수단은 상기 제어수단에 대한 제어 파라미터에 직접적으로 응답하여 특정 제어 파라미터의 설정과 입력수단으로부터 제어신호의 입력에 따라 상기 전체적인 레이아웃 내에 텍스트 및/또는 그래픽 정보를 제공하는 특수한 특징을 정의하고 지정하기 위한 특정 제어기능을 불러온다.
바람직하게는 상기 제어수단은 텍스트 및/또는 그래픽 정보가 제공되는 일 또는 그 이상의 판(pane)으로 상기 전체적인 레이아웃을 배열하기 위한 패닝(panning)수단을 포함한다.
바람직하게는 상기 패닝 수단은 플래시 팬과 브라우저 팬을 포함하며, 상기 플래시 팬은 상기 위치를 포함하며, 상기 브라우저 팬은 상기 불연속 부분이 추출된 상기 텍스트 및/또는 그래픽 정보의 더 큰 부분을 위치시키기 위한 영역을 포함한다.
바람직하게는 상기 제어수단은 상기 브라우저 팬내에 상기 더 큰 부분의 제공을 자동으로 화면이동(scrolling)하며 상기 브라우저 팬내에 상기 불연속 부분에 대응하는 텍스트 및/또는 그래픽 정보를 제공하고 있는 상기 더 큰 부분의 행을 센터링하기 위한 센터링 스크롤링 수단을 포함한다.
바람직하게는 상기 패닝수단은 상기 브라우저 팬내에 대응하는 텍스트 및/또는 그래픽 정보를 강조하기 위한 강조수단을 포함한다.
바람직하게는 상기 제어수단은 상기 규정된 블랭킹 시간과 규정된 표시시간에 대한 제어 파라미터를 설정하기 위한 지연수단을 포함한다.
바람직하게는 상기 제어수단은 상기 불연속 부분에 대한 제어 파라미터를 설정하기 위한 부분 선택수단을 포함한다.
바람직하게는 상기 제어수단은 규정된 블랭킹 시간에서 떨어져서 상기 텍스트 및/또는 그래픽 정보의 불연속 및 연속된 부분 각각을 표시한다.
바람직하게는 상기 처리수단은 멀티태스킹, 윈도우 기능을 포함하는 그래픽 사용자 인터페이스를 갖는 마이크로컴퓨터이다.
바람직하게는 상기 제어수단은 수행된 기능의 예상되는 경과된 시간을 모니터하여 상기 멀티태스킹 윈도우 기능으로부터 그리고 이에 대한 제어의 양도와 반환을 조정하기 위한 시간 관리수단을 포함한다.
본 발명의 다른 특징에 따르면, 텍스트 및/또는 그래픽 정보의 불연속 및 연속된 부분을 선택하는 단계와;
디스플레이 매체의 동일한 위치에 상기 부분들을 규정된 블랭킹 시간 간격으로 표시하는 단계; 및
규정된 표시시간 동안 상기 위치에 각 부분을 표시하는 단계로 구성되는 것을 특징으로 하는 판독을 위한 텍스트 및/또는 그래픽 정보를 제공하는 방법을 제공한다.
실시예는 WINDOWS(등록상표)로서 알려진 형태의 멀티태스킹 윈도우 그래픽 사용자 인터페이스를 실행하는 현대의 마이크로컴퓨터 시스템을 사용하여 판독을 위한 텍스트 및/또는 그래픽 정보를 제공하는 시스템과 방법에 맞추어져 있다.
도 1에 도시된 바와같이 시스템(11)은 전체적으로 마이크로컴퓨터 형태의 처리수단(13)으로 구성되며, 시각적인 디스플레이 유니트 형태의 디스플레이 수단(15)과, 키보드와 마우스 형태의 입력수단(17) 및 컴퓨터 프로그램 형태의 제어수단(19)을 구비한다.
처리수단(13)의 마이크로컴퓨터는 텍스트 파일에서와 같이 전자적으로 엔코딩된 형태로된 텍스트 및/또는 그래픽 정보와 제어수단(19)의 컴퓨터 프로그램을 기억하기 위한 적당한 기억매체를 포함한다.
이러한 기억매체는 하드 디스크, 테이프, CDROM, 플로피 디스크 등이 될 수 있으며, 다른 것으로는 시각 디스플레이 유니트에 시각적인 제공을 위해 준비된 것을 수신하여 처리하기 위한 현대의 또는 다른 통신 인터페이스를 통하여 억세스되는 원격 데이터베이스도 될 수 있다.
마이크로컴퓨터는 주지된 방식으로 제어수단(19)의 컴퓨터 프로그램을 로딩할 수 있고 시각 디스플레이 유니트에 판독 목적으로 기억된 텍스트 및/또는 그래픽 정보를 처리하여 제공하는 특정 텍스트 파일을 선택할 수 있다.
디스플레이 수단(15)의 시각 디스플레이 유니트는 텍스트 및/또는 그래픽 정보의 시각 이미지를 주지된 방식으로 표시하는 음극선관(CRT), 액정표시장치(LCD), 또는 플라즈마 디스플레이의 스크린 형태로 디스플레이 매체를 통합한다.
입력수단(17)의 키보드와 마우스는 제어수단(19)의 컴퓨터 프로그램과 키보드 및 마우스를 동작시키며 처리수단과 제어수단의 제어 파라미터를 변경하기 위해 마이크로컴퓨터 처리수단(13)에 대한 제어신호를 입력하기 위하여 키보드와 마우스의 조합 또는 다른 것의 대체물이 사용된다.
처리수단(13)의 마이크로컴퓨터는 MS-DOS(등록상표)와 같은 적당한 오퍼레이팅 시스템과 앞에서 설명한 WINDOWS 3.1(등록상표)과 같은 멀티태스킹 윈도우 그래픽 사용자 인터페이스 하에서 동작된다. 제어수단의 컴퓨터 프로그램은 객체 지향 프로그래밍 언어, 즉 다이나믹 링크 라이브러리를 사용하는 C++로 개발된 원시 WINDOWS(등록상표) 프로그램으로서 동작하는 어플리케이션 소프트웨어 형태를 갖는다.
따라서, 컴퓨터 프로그램은 WINDOWS 3.1(상표)에 따라 시스템의 시각적 제어 속성과 텍스트 정보의 제공을 위해 디스플레이 매체의 전체적인 레이아웃을 정의하는 어플리케이션 수단을 포함한다. 어플리케이션 수단은 프로그램에 대하여 정의된 제어 파라미터에 직접적으로 응답하여 전체적인 레이아웃 내에 텍스트 정보의 제공에 대한 특수한 특징을 정의하고 지정하는 특정 제어 기능을 불러온다. 제어 파라미터는 키보드 또는 마우스를 통하여 관련된 제어신호의 입력에 의해 선택 가능하며 이후에 더욱더 상세하게 설명된다.
컴퓨터 프로그램은 또한 텍스트 정보가 제공되는 일 또는 그 이사의 팬으로 전체적인 레이아웃을 배열하는 패닝수단을 포함한다. 이와 관련하여 패닝수단은 이후에 상세하게 설명될 브라우저 팬과 플래시 팬으로 시각 레이아웃을 선택적으로 분할한다.
이 설명의 목적으로 컴퓨터 프로그램밍 언어 C++, 다이나믹 링크 라이브러리 OWL 2.0, Borland C++ 4.0(상표)로된 프로그램의 컴파일링, WINDOWS 3.1(상표)의 실행 및 WINDOWS API 호출의 실행과의 친숙함을 가정한다.
컴퓨터 프로그램은 4개의 소스 파일, 즉 컴퓨터 프로그램에 대한 메인 소스 코드로 구성되는 'cpp' 파일, 컴퓨터 프로그램에 대한 헤더(header)인 'hpp' 파일, 컴퓨터 프로그램의 자원인 'rc' 파일 및 컴퓨터 프로그램의 자원 헤더인 'rh' 파일의 컴파일로 구성된다. 이들 4 파일의 컴파일은 'exe' 실행 가능한 파일을 생성하며 Borland C++ 4.0에 포함된 적당한 다이나믹 링크 다이어리, 즉 BIDS402.DLL, OWL202.DLL, BC402RTL.DLL 및 CTL3DV.DLL와 함께 실행된다.
이 프로그램은 각각 동등한 액셀레이터를 갖는 메뉴 항목에 의해 동작된다. 각각의 메뉴항목과 그것의 등가 액셀레이터는 소스 코드로 응답 테이블에 정의된 것과 같이 규정된 클래스의 기능을 불러오는 메세지를 송출하도록 설계되어 있다.
제1열에 선택 메뉴 패스(menu path), 제2열에 이 메뉴 선택에 해당하는 액셀레이터(accelerator), 제3열에 기능을 불러오기 위해 송신된 WINDOWS 메세지 및 제4열에 이 메세지에 의해 불러올 기능을 보여주는 표가 하기에 리스트되어 있다.
Menu Path Accelerator Link Message Calls TCharonWinMember Function
File/Open F3 IDM_OPEN CmFileOpen0
File/Exit Alt+F4 2431D Standard OWL quit application
Speed/Increase Ctrl+Up IDM_DEC_SPEED CmlncreaseSpeed0
Speed/Decrease Ctrl+Down IDM_INC_SPEED CmDecreaseSpeed0
Speed/Update WPM TAB IDM_RETABULATE CmResetWPM0
Speed/Pause or Resume SPACE IDM_PAUSE CmPause0
Read/Go ENTER IDM_GO CmGo0
Read/Restart Ctrl+Home IDM_RESTART CmRestart0
Read/Select all IDM_SELECTALL CmSelectAll0
Options/Delays IDM_DELAYS CmDelays0
Options/Font IDM_FONT CmFont0
Options/Number of flashes IDM_NUM_FLASHES CmNumFlashes0
Options/Auto size font IDM_AUTOSIZE CmAutoFont0
Options/Browser window IDM_TOPON CmTopOn0
Help/Using help IDM_HELPONHELP CmHelpOnHelp0
Help/Concepts (구현되지 않음) (구현되지 않음)
Help/About IDM_ABOUT CmAbout0
컴퓨터 프로그램은 Borland C++ 4.0 표준 라이브러리 또는 OWL 라이브러리에 제공된 대응하는 조상 클래스로부터 파생된 다수의 클래스로 구성된다. 도 2에 도시된 바와같이 그들의 모두가 서로 그룹을 형성하는 한세트의 논-클래스 기능(23)에 부가되는 7개의 클래스(21a-21g)가 존재한다.
7개의 클래스는 공용 클래스(public class) TApplication으로부터 파생된 클래스 TCharonApp(21a), 공용 클래스 TLayoutWindow로부터 파생된 클래스 TCharonWin(21b), 공용 클래스 TDialog로부터 파생된 클래스 TDelaysDialog(21c), 또한 공용 클래스 TDialog로부터 파생된 클래스 TFlashesDialog(21d), 공용 클래스 TEditFile로부터 파생된 클래스 TBrowserPane(21e), 공용 클래스 TWindow로부터 파생된 클래스 TFlashPane(21f), 및 공용 클래스 String으로부터 파생된 클래스 TString(21g)이다.
이들 클래스 각각은 특정 클래스로부터 종적으로 파생된 특정한 것뿐아니라 대응하는 조상 클래스로부터 얻어진 기능을 겹쳐쓴 것으로 멤버 기능을 참고하여 더욱 상세하게 설명된다.
먼저 클래스 TCharonApp(21a)를 처리하면, 이 클래스는 조상 클래스 TApplication으로부터 파생되었고 근본적으로 현재의 컴퓨터 프로그램 어플리케이션과 TCharonWin 예를 생성하는 어플리케이션 수단으로 구성된다. 이 클래스의 멤버 기능은 다음과 같다:
TCharonApp TApplication
TCharonAppInitMainWindow InitMainWindow
1 statusBar(공용 변수)
TSatusBar *statusBar;
이것은 어플리케이션 윈도우의 하부의 상태 바(status bar)의 예에 대한 포인터이다.
2 TCharonApp(공용 구성자)
TCharonApp( );
이것은 컴퓨터 프로그램 어플리케이션을 구성한다.
3 InitMainWindow(전용 방법)
void InitMainWindow( );
이 기능은 조상 클래스의 InitMainWindow( )를 중복 기재한다. 그것은 3D에서 대화 박스를 표시하는 MS Windows' Ct13D DLL의 사용을 가능하게 한다.
그것은 감추어진 상태 바를 생성하고 프린터를 변수 statusBar에 할당한다. 다음에 그것은 TControlBar 객체를 사례화함에 의해 제어 바를 생성한다. "스마트 아이콘"은 그후 이 바(bar)로 삽입된다. 자원으로부터 얻어진 각각의 아이콘은 눌려질때 메세지를 발생하며, 그러나 이들 메세지의 각각은 메뉴에 있는 등가물을 가진다. 그들은 다음과 같다:
아이콘 설명 메뉴 패스
파일 오픈 File/Open
그린 스타트 라이트 Read/Go
상방향 화살표 Speed/Increase
하방향 화살표 Speed/Decrease
더블 수직 라인 Speed/Pause or Resume
이 기능은 또한 컴퓨터 프로그램 초기설정 파일로부터 그것의 윈도우 사이즈를 설정하고 그것을 자원으로부터 메뉴, 아이콘, 액셀레이터에 지정함에 의해 메인 어플리케이션 윈도우에 프레임을 결합시킨다.
메인 윈도우의 폭과 높이는 초기설정 파일의 항목 Width and Height(폭과 높이)로부터 얻어진다(TCharonWin::CanClose( )를 참조). 항목 Hint(힌트)는 SetHintMode( )를 호출하기 위한 파라미터로서 사용된다.
앞에서 설명한 바와같이 다음 클래스 TCharonWin(21b)는 TLayoutWindow 클래스로부터 파생된다. 그것은 2개의 디스플레이 팬, 즉 ASCⅡ 텍스트 파일을 포함하며 표시하는 톱 팬(TBrowserPane의 예, 후손 TEditFile 클래스)과, 워드 또는 워드의 라인을 표시하는 하부 팬(TFlashPane의 예, Twindow의 후손)을 갖는다.
이 클래스는 TFlashPane의 친구이다.
이 클래스의 멤버 기능은 다음과 같다:
TCharonWin TLayoutWindow
TCharonWin∼TCharonWinSetupWindowCanCloseSetupPanesReconfigureWindowIsFlashingSetDisplayFontDisplayNextLineDelayUnitTimeFlashLoopPauseFlashingShowWordsPerMinuteWordsPerMinuteEvSizeCmFileOpenCmGoCmSelectAllCmRestartCmDelaysCmFontCmNumFlashesCmAutoFontCmTopOnIncreaseAWordCmIncreaseRateCMDecreaseRateCmPauseCmResetWPMCmHelpOnHelpCmAbout SetupWindowCanCloseEvSize
1 rates(공용 변수)
TDelayRates rates;
이것은 상이한 조건에 대한 지연시간을 포함하는 구조의 예이다. 구조와 그들의 목적의 멤버는 다음과 같다:
멤버 변수 목적
UINT interval 2 워드 플래시 사이의 지연. 이 인터벌은 워드 사이 의 공백 시간을 고려하지 않는다.
UINT blackout 2 플래시 사이의 공백 스크린의 지연
UINT punctuations 구두점이 플래시의 마지막 또는 처음 문자로서 검출 될 경우 지연
UINT ends 플래시의 마지막 문자가 문장의 종료에 대한 구두점 인 경우 지연
UINT cr 파일 스트림의 다음 2 문자가 캐리지 리턴인 경우 지연
2 fileData(전용 변수)
TOpenSaveDialog::TData fileData;
이것은 판독할 파일이름을 얻는데 사용되는 구조의 예이다. OWL's 클래스 TFileOpenDialog를 참조.
3 fontData(전용 변수)
TChooseFontDialog::TData fontData;
이것은 표시에 대한 폰트 속성을 얻는데 사용될 구조의 예이다. OWL's 클래스 TchooseFontDialog를 참조.
4 browserpane(전용 변수)
Tbrowserpane browserpane;
이것은 톱 디스플레이 팬의 예를 보유한다. 클래스 TBrowserPane를 참조..
5 flashpane(전용 변수)
TFlashPane flashpane;
이것은 하부 디스플레이 팬의 예이다. 클래스 TFlashPane를 참조.
6 flashing(전용 변수)
FLASH_LOOP flashing;
FLASH_LOOP은 FLASHING, NOT_FLASHING 또는 QUIT의 열거형이다. 변수, flashing은 하부 팬이 플래싱 워드인지 아닌지 여부를 지시하는 플래그이다. 이 상태는 사용자가 톱 팬에서 커서를 재배치하고 있을때와 같이 프로그램 내에서 각종 위치에서 알려지는 것이 요구된다. QUIT의 상태는 사용자가 어플리케이션을 빠져나오기 위하여 선택할때 설정된다.
7 disFont(전용 변수)
Tfont *dispFont;
이것은 하부 팬에서 플래시를 표시하는데 사용될 폰트에 대한 포인터이다.
8 autoSize(전용 변수)
BOOL autoSize;
이것은 하부 팬에 사용될때 사용자 폰트 사이즈 설정의 부울 플래그이다. TRUE는 폰트가 윈도우에 비례하여 사이즈가 결정되는 것을 나타내며, FALSE는 폰트가 fontData에서 사용자의 사이즈 명세에 따라 그려지는 것을 나타낸다.
9 topOn(전용 변수)
BOOL topOn;
이것은 사용자 톱 팬 설정의 부울 플래그이다. TRUE는 톱 팬이 표시되어야 하는 것을 지시하며, FALSE는 톱 팬이 표시되지 않아야 되는 것을 지시한다.
10 hasTopPane(전용 변수)
BOOL hasTopPane;
이것은 톱 팬 디스플레이 상태를 지시하는 부울 플래그를 나타낸다. TRUE는 톱 팬이 현재 표시된것(topPane이 TRUE 또는 FALSE인 것과 무관하게)을 지시하며, FALSE는 톱 팬이 현재 오프인 것을 지시한다. 이것과 topOn 플래그 사이의 차이는 이 플래그는 어플리케이션의 현재상태를 지시하며, topOn은 사용자가 좋아하는 것을 지시한다. 그 사실로부터 어플리케이션이 중지 모드로 될때 톱 팬은 사용자의 바람직한 설정과 무관하게 표시된다.
11 ifs(전용 변수)
ifstream *ifs;
이것은 판독할때 파일의 처리에 대한 포인터이다.
12 strin(전용 변수)
Tstring strin;
이것은 Tstring의 예이다. 이것은 플래시되고 있는 현재의 워드 또는 워즈를 홀딩한다. 참조 Tstring.
13 pauseTick(전용 변수)
DWORD pauseTick;
이것은 어플리케이션이 중지 모드에 있는 동안 똑딱이는 축적 타이머를 포함한다. 이것은 정확한 워드-대-분(WPM) 카운트를 얻는데 사용된다.
14 initialTick(전용 변수)
DWORD initialTick;
이것은 WPM 카운트를 시작하는 똑딱 시작 타이머를 포함한다.
15 wordCount(전용 변수)
UINT wordCount;
이것은 InitialTick를 리세트한 이후에 하부 팬에서 반짝이는 다수의 워드를 보유한다.
16 pauseStarted(전용 변수)
BOOL pauseStarted;
이것은 "go"의 반대로 "비중지(unpause)" 동안 플래시 판독이 시작되었는 지를 지시하는 부울(boolean)이다. TRUE는 플래싱이 CmPause( )에서 시작되었고, FALSE가 CmGo( )에서 시작된 것을 지시한다. 이것은 "pause"와 "go"가 2개의 다른 특징이 있고 2개의 다른 행동을 가지며, 어플리케이션은 그것을 작동시키는 마지막 이벤트를 알아야 하기 때문이다. 만약 플래싱이 CmPause( )에서 비중지에 의해 활성화된 경우 그것은 그것의 종단 어플리케이션 마커 넘어의 워드를 계속하여 반짝이나, 반면에 "go"는 그것이 어플리케이션 마커에 도달한때 플래싱을 중지한다.
17 delay_ms(전용 변수)
UINT delay_ms;
이것은 이값을 갖는 Delay( )에 대한 호출이 1 밀리초(ms)가 되도록 Delay( )에 대한 파라미터로서 사용될 번호를 갖고 있다. 이 변수는 어플리케이션이 시작한때 계산되고 SetupWindow( )에서 단지 한번 초기화된다. Delay( )에서 설명한 바와같이 이 로컬 루프 지연은 55ms 장벽을 바이패스하는데 사용된다.
18 TCharonWin(공용 구성자)
∼TCharonWin( );
이것은 ifstream(*if, 표시될 파일)과 Tfont(*dispFont, 하부 팬의 표시에 사용된 폰트)의 예를 삭제한다.
19 ∼TCharonWin(전용 파괴자);
∼TCharonWin( );
이것은 ifstream(*if, 표시될 파일)과 Tfont(*dispFont, 하부 팬의 표시에 사용된 폰트)의 예를 삭제한다.
20 SetupWindow(전용 방법)
void SetupWindow( );
이 기능은 조상 기능 SetupWindow( )를 중복기재한다. 기초 기능을 호출한후 그것은 상태 바를 리프레시하고, 그후 2개의 메뉴 아이템을 체크 또는 체크하지 않는다. 조작된 메뉴 아이템은 다음과 같다:
메뉴 패스(Menu Path) 조건에 대한 체크
Options/Auto size font autoSize is TRUE
Options/Browser window topOn is TRUE
끝으로 그것은 delay_ms의 값을 계산하기 위한 타이밍 테스트를 행한다. 이를 위해 시스템으로부터 현재의 틱(tick)을 얻어 파라미터로서 큰수를 갖고 Delay( )를 호출한다. 그것이 리턴될때 그것은 다시 시스템으로부터 현재의 틱을 얻는다. 이것과 과거의 시스템 틱 사이의 차이는 Delay( )가 실행되고 있는 동안 경과하는 다수의 틱이 된다. 틱 차이로 제산된 Delay( )에 대한 파라미터로서 주어진 원래의 수는 그것을 1ms 지연하도록 Delay( )에 제공되는 새로운 값이다. 의사-코드로 그래픽하면, 이것은 다음과 같다:
origTick = Get original clock tick from system
Call Delay( ) with arbitrary large number n
delay_ms = n / (clock tick now - origTick)
21 CanClose(전용 방법)
BOOL CanClose( );
이 기능은 조상 기능을 중복기재한다. 먼저 그것은 기초 CanClose( )를 호출하고, 만약 메인 윈도우가 어떤 이유로 클로즈될 수 없는 경우 이기능은 리턴된다.
약간의 값은 파일 초기설정 파일, CHARON.INI로 세이브된다. 이들 가운데 윈도우의 폭과 높이가 있다. 그러나, 이 세션(session)의 끝의 윈도우 좌표는 다음 세션의 시작시에 실제의 좌표가 아닐 수 있다. 이에 대한 이유는 중지 모드동안 톱 팬은 브라우저 윈도우(Browser Window) 옵션이 오프로 설정되어 있을 지라도 팝업(pop up)될 수 있기 때문이다. 사용자 플래그(topOn)가 현재의 윈도우 상태(hasTopPane)와 일치하도록 체크가 요구된다. 만약 사용자 설정이 오프이고 거기에는 현재 톱 팬이 있는 경우 ReconfigureWindow( )에 대한 호출은 좌표가 얻어지기 전에 메인 윈도우를 리사이징 하도록 이루어진다.
하기 표는 CHARON.INI로 세이브되는 변수를 보여준다:
코드에서의 변수명 CHARON.INI 의 진입명 사용되는 경우
autoSize 오토사이즈 TCharonWin::TCharonWin( )
blackout 블랙아웃 TCharonWin::TCharonWin( )
punctuations 구두점 TCharonWin::TCharonWin( )
ends 문장 종료 TCharonWin::TCharonWin( )
cr 문단 종료 TCharonWin::TCharonWin( )
interval 인터벌 TCharonWin::TCharonWin( )
strln.numFlashes 플래시 TCharonWin::TCharonWin( )
fontData.LogFont.lfHeight 폰트 높이 TCharonWin::TCharonWin( )
fontData.LogFont.lfFaceName 폰트 페이스 TCharonWin::TCharonWin( )
Attr.W TCharonApp::InitMainWindow( )
Attr.H 높이 TCharonApp::InitMainWindow( )
이 기능은 그후 종료를 위하여 WINHELF를 요구한다.
정상상태에서 CanClose( )로 TRUE를 리턴하는 것은 어플리케이션을 종료시키게 한다. 그러나, 이 어플리케이션에서 CanClose( )는 기능 FlashLoop( ) 내에서 활성화될 수 있다. 따라서 IsFlashing( )은 이것이 문제(case)이었었는 지를 알기 위하여 호출된다. 만약 그러한 경우는 플래그(플래싱을 QUIT로 설정)가 설정되며 CanClose( )는 FALSE로 돌아가 어플리케이션을 종료하도록 FlashLoop( )에 통지한다(FlashLoop( )는 이를 행하기 위하여 API PostQuitMessage( )를 호출하며 따라서 CanClose( )에 대한 어떠한 더이상의 호출도 바이패스한다. 만약 플래싱이 활성화되지 않는 경우, CanClose( )는 정상적인 빠져나감(exit)을 행한다.
주의할 것은 CanClose( )는 플래시가 진행되고 있는 동안 만약 클로즈하도록 신호를 받는 경우 TRUE로 리턴하지 못한다. 이것은 보호 에러를 야기한다.
22 SetupPanes(전용 방법)
void SetupPanes(BOOL expand);
이기능은 톱 및 하부 팬의 비율을 리사이징한다. 파라미터 확장은 톱 팬이 65% 비율로서 표시되어야 하는지 또는 그것이 0%로 주어지는 것에 의해 표시되지 않아야 하는 지를 결정한다. 비율에 대하여는 OWL의 TLayoutWindow 참조.
이 기능은 값을 레이아웃 메트릭에 할당하고 조상의 SetChildLayoutMetric( )를 호출하여 이들 값을 2개의 팬과 연관시킨다. 그것은 조상의 Layout( )를 호출하지 않음에 의해 변화를 재표시한다.
23 ReconfigureWindow(전용 방법)
void ReconfigureWindow(BOOL expand);
이 기능은 메인 어플리케이션 윈도우를 확장하여 제한하도록 호출된다. 만약 파라미터(expand)가 TRUE인 경우 톱 팬은 메인 윈도우의 65% 비율로 표시되며 반면에 하부의 팬은 동일한 절대 크기로 남아 있는다. 따라서 메인 윈도우가 확장된다. 만약 파라미터(expand)가 FALSE인 경우 톱 팬은 메인 윈도우의 0% 비율로 표시되며 반면에 하부 팬은 동일한 절대 크기로 남아 있게 된다. 메인 윈도우는 따라서 축소된다.
이것은 부모(parent) 윈도우(즉, 메인 윈도우)의 윈도우 크기와 하부 팬의 크기를 취함에 의해 행하여 진다. 이 부모 윈도우는 그후 부모의 현재 좌측 및 톱 좌표와 현재의 폭을 갖고 MoveWindow( )를 호출함에 의해 리사이징된다. 높이는 다음의 계산과 같이 하부 팬의 높이의 일부가 플러스된 부모의 현재 높이를 갖는다.
부모의 높이 +/- 하부 팬의 높이 * 65% / (100-65%)
상기 부분은 만약 윈도우가 확장되어야 하는 경우 플러스(+)로 되고, 만약 윈도우가 감축되어야 하는 경우 마이너스(-)로 된다.
상기한 계산은 단지 메인 어플리케이션 윈도우의 리사이징에 관한 것이다. 내측 2팬의 리사이징은 호출(SetupPanes() 및 TLayoutWindow::Layout( ))을 통하여 이루어진다.
24 IsFlashing(전용 방법)
BOOL IsFlashing( );
만약 하부 팬이 텍스트를 플래싱하고 있는 경우(즉, 변수 flashing이 상태 FLAS HING를 갖는 경우) TRUE로 돌아간다.
25 SetDisplayFont(전용 방법)
void SetDisplayFont(int height);
이 기능은 TFlashPane::Paint( )에 의해 호출되어 하부 팬에 텍스트를 표시하는 데 사용되는 폰트를 생성한다. 이것은 만약 변수(dispFont)가 NULL인 경우에만 그렇게 되고 그렇지 않으면 종료된다. 사요자 옵션 'autoSize'이 설정된 경우 TFont 예는 파라미터 높이를 가지고 생성된다. 그렇지 않으면 이 파라미터는 무시되며 그 예는 fontData에 폰트 메트릭을 갖고 생성된다.
26 DisplayNextLine(전용 방법)
int DisplayNextLine( );
이 기능은 (변수 wordCount에 의해 결정될때)다음 워드 또는 워드를 얻어서 표시한다. 이 텍스트의 라인이 표시되어야 하는 것은 밀리초로 시간을 돌린다. 양 팬은 디스플레이에 변화를 반영한다.
사례(strin)의 기능(GetAFlasg( ))은 텍스트의 새로운 라인을 얻도록 호출된다. 표시를 진행하기 전에 플래싱이 "pause" 또는 "go"에 의해 시작되었는 지를 체크한다. 만약 그것이 "go"에 의해 시작된 경우 기능은 현재의 파일 위치를 사용자 선택 블록(사례(manyWordsPane)의 BlockEnd( )를 참조)의 끝과 비교하여 텍스트의 라인이 사용자 종단 선택 마커에 있는 지 또는 넘어에 있는 지를 검증한다. 만약 그런경우는 어떤 표시도 이루어지지 않는다.
하여튼 만약 기능이 표시할 더 많은 워드를 얻지 못하는 경우 그것은 PauseFlashing( )를 호출하여 플래싱을 중지시키고 사례(manyWordsPane)의 SelectBlock( )를 호출하여 톱 팬에 사용자의 원래 선택이었던 블록을 표시한다.
만약 표시가 가능한 경우 텍스트는 양 팬에 반영된다. 톱 팬을 위하여 이것은 사례(manyWordsPane)의 PresentLine( )를 호출함에 의해 처리한다. 하부 팬을 위하여 이것은 TFlashPane::RepaintWindow( )를 호출함에 의해 처리한다. 플래시(wordCount)의 전체 번호는 GetAFlash( )에 의해 판독된 플래시의 수만큼 증가된다.
이 기능을 빠져나가기 전에 텍스트이 새로운 라인이 표시되기 전에 이루어져야만 하는 지연량에 대한 계산이 이루어진다. 이 지연은 인터벌에 여분의 지연을 플러스한다. 만약 텍스트의 라인이 문장(IsSentenceEnd( )을 참조)의 끝인 경우 그리고 만약 스트림의 다음 문자가 새로운 라인(즉, 캐리지 리턴)인 경우 라인은 또한 단락의 끝이 된다. 따라서 여분의 지연은 어느쪽이든 더큰 단락의 끝(rates.cr) 또는 문장의 끝(rates.ends)의 지연이다. 만약 그러나 텍스트의 라인 텍스트의 제일 또는 마지막 문자가 구두점(IsPunctuation( ) 참조)인 경우 그후 여분의 지연은 정상적인 구두점(ratres.punctuation)에 대한 것이다.
27 DelayUntilTime(전용 방법)
void DelayUntilTime(UINT ×Time);
이 기능은 로컬 지연 루프를 설정함에 의해 주어진 양의 시간(밀리초) 동안 프로그램을 지능적으로 중지한다.
만약 파라미터 ×Time가 55ms 이상인 경우, 즉 윈도우즈에서 1클록 사이클 이상인 경우 그것은 지연시간이 만날때 까지 또는 55ms 이하로 남을때 까지 계속하여 API GetTickCount( )를 호출한다. TApplication::PumpWaitingMessage( )가 시간 체크 사이에서 호출되어 이 기능이 대기하고 있는 동안 다른 어플리케이션을 산출한다(따라서 동결을 방지한다).
만약 ×Time 또는 나머지 지연 시간이 55ms 이하인 경우 멤버 기능, Delay( )은 호출되어 머신 명령 루프 프로세스(Delay( ) 참조) 만큼 이 양을 감소시킨다.
28 FlashLoop(전용 방법)
BOOL FlashLoop( );
이 기능은 어플리케이션의 핵심이며 CmGo( ) 와 CmPause( )에 의해 호출된다. 본질에 있어서 그것은 파일로부터 텍스트의 라인을 얻어 그것을 표시하고 그것을 블랭크 아웃시키며 그것이 'exit' 조건에 있지 않는 것을 체크한다.
먼저 CmResetWPM( )이 호출되어 WPM 카운트를 초기화한다. 그후 그것은 어플리케이션이 플래싱 모드(IsFlashing( )를 호출함에 의해)에 있는 것을 보장하는 루프로 진행한다. 플래싱 모드에 있는 동안 그것은 사례(manyWordsPane)의 SelectionChanged( )를 호출하여 만약 톱 팬의 선택 마커가 종전에 문제이었던 것과 동일한 지를 판단한다. 만약 그렇지 않은 경우 사용자는 커서 또는 선택블록을 재위치시킨다. 이때 그것은 시작 마커를 구하여 마커와 동일한 오프셋을 갖는 텍스트 위치로 파일 포인터(Ifstream::seekg( )를 갖고)를 재위치시킨다.
그후 DisplayNextLine( )를 호출하여 텍스트의 라인을 판독하고 그것을 양 팬에 반영한다. DisplayNextLine( )는 팬이 다시 업데이트되기 전에 취해져야하는 지연을 리턴시킨다. 이 리턴은 파라미터가 되어 주어진 시간동안 수면하는 DelayUntilTime( )를 호출한다.
적당한 지연이 이루어진때 하부 팬은 블랭크로 된다. 이것은 먼저 strin을 무효화하고 그후 하부 팬에 대한 TFlashPane::RepaintWindow( )를 호출하며 이는 업데이트 되어 긍극적으로는 TFlashPane::Paint( )를 호출한다. DelayUntilTime( )는 호출되어 하부 팬 rates.blackout을 블랭킹시키기 위한 설정시간을 지연시킨다.
다음에 상태 바는 호출 ShowWordsPerMimute( )에 따라 업데이트 된다.
통털어 제로 지연을 갖는 것처럼 매우 작은 값의 지연이 있는 경우 어플리케이션은 어떤 윈도우즈 메세지에 대하여 반응하지 않고 계속하여 표시한다. 따라서 모든 다른 MS Windows 어플리케이션은 그자신을 포함하여 동결된다. 이를 방지하기 위하여 TApplication::PumpWaitingMessage( )가 호출된다. 이것은 모든 15 루프마다 실행되어 WPM 카운트는 PumpWaitingMessage( )가 처리하는 데 약간의 시간을 가질 수 있기 때문에 너무 어긋나지 않는다.
끝으로 재루프전에 이 기능은 어플리케이션이 종료되기를 원하는 지를 체크한다(변수(flashing)는 값(QUIT)을 갖는다). 만약 이것이 사실(true)인 경우 API 호출(PostQuitMessage( ))을 가진 종료 메세지를 송신하고 이 루프가 종료되도록 플래싱을 정지한다.
29 PauseFlashing(전용 방법)
void PauseFlashing( );
이 기능은 플래그를 설정하여 텍스트를 플래싱하는 것을 정지시키며 파일 스트림(즉, 해제 블록)에서와 같이 현재 위치에 톱 팬에 양 선택 마커를 설정한다. 이 기능은 단지 플래싱이 현재 오프인 경우에만 작용한다.
30 ShowWordsPerMinute(전용 방법)
void ShowWordsPerMinute( );
이 기능은 멤버 기능(WordsPerMinute( ))을 호출하여 현재의 WPM 카운트를 얻으며 그것을 C 문자열(string)로 설정하고 TStatusBar::SetText( )를 호출하여 그것을 상태 바로 기록한다.
31 WordsPerMinute(전용 방법)
UINT WordsPerMinute( );
이 기능은 현재의 WPM 카운트를 돌려준다. 밀리초당 워드 카운트는 현재의 틱 카운트(API's GetTickCount( )를 호출함에 의해)와 도표작성 시작시의 틱 카운트(InitialTick) 사이의 차이를 얻어서 구하고 그후 이 기간동안 판독된 다수의 워드에 의해 그것을 역으로 나눈다. 이 도면은 그후 60000과 승산되어 WPM으로 변환된다. "제로분할" 에러에 대한 사전경고로서 현재의 틱은 초기설정 틱과 비교하며 그리고 만약 그들이 동일할 경우 계산없이 제로 WPM으로 리턴한다.
32 EvSize(전용 방법)
void EvSize(UINT sizeType, TSize& size);
이 기능은 조상 기능을 중복기재한다. 그것은 디스플레이 폰트(disFont)가 매 WM_SIZE 메세지(즉, 사용자에 의한 메인 윈도우의 리사이징)에 대하여 삭제되어 폰트를 삭제하고 무효화함에 의해 그것이 사례(flashpane)의 기능(Paint( ))에 그리고 긍극적으로는 SetDisplayFont( )에 후에 재생성되게 한다. 그후 베이스 클래스(EvSize( ))를 호출한다.
33 CmFileOpen(전용 방법)
void CmFileOpen( );
이 기능은 파일 오픈 요구시에 호출된다. 그것은 TData 사례, fileData를 사용하여 TFileOpenDialog( )의 사례를 생성하여 실행한다. 만약 그것이 IDOK로 리턴한 경우 구 파일 스트림은 삭제되며, 그렇지 않은 경우 플래싱 상태는 PauseFlashing( )으로 정지된다. 새로운 파일 스트림은 TFileOpenDialog( )로부터 얻어진 파라미터(FileName)를 가지고 구성자(ifstream)를 호출함에 의해 생성된다. 만약 구성이 성공적인 경우 톱 팬은 동일한 파일을 판독할 것을 요청한다. 이것은 사례(browserpane)의 SetFileName( ) 과 Read( )을 호출함에 의해 이루어진다.
다음에 파일명은 API호출, SetWindowText( )를 갖는 어플리케이션의 윈도우 타이틀에 첨부된다. 그후 CmSelectAll( )는 호출되어 톱 팬에서 모든 텍스트를 블록설정하고 수평 스크롤 바를 제거한다.
만약 ifstream이 사례화될 수 없는 경우, 즉 파일이 오픈될 수 없는 경우 에러 대화는 팝업된다(API's MessageBox( )을 사용하여). 이러한 문제는 ifstream이 그것을 오픈하기 전에 TFileOpenDialog( )가 파일 유용성에 대한 체크를 하기 때문에 결코 발생하지 않는다.
그러나, browserpane은 톱 팬으로 전체 파일을 판독하기 위해 Read( )를 읽는 것을 노력할때 실패할 수 도 있다. 이것은 톱 팬이 표준 OWL 클래스 객체, TEditFile( )(클래스 TFlashPane 참조)의 사례이기 때문에 만약 판독될 파일이 64K를 초과할 경우 발생한다.
34 CmGo(전용 방법)
void CmGo( );
이 기능은 호출되어서 판독을 시작 또는 재시작시킨다. 그것은 단지 만약 오픈된 파일이 존재하고(즉, ifstream이 NULL이 아님) 그리고 만약 판독이 아직 활성화되지 않은 경우(즉, FALSE를 리턴시키는 isFlashing( ))에만 진행한다. 이는 톱 팬에 대한 사용자의 플래그는 턴오프되고(즉, topOn이 FALSE임) 그러나 팬이 휴지동안과 같이 실제로 표시된(즉, hasTopPane이 TRUE임) 때의 경우이다. 만약 이것이 발생하면 톱 팬은 호출 ReconfigureWindow( )에 의해 숨겨진다.
이것이 이루어진때 기능에 대한 호출은 톱 팬 블록 선택이 변경되어 블록의 시작부에서 재시작하도록 플래싱을 설정하고, WPM 카운트 변수(TBrowserPane::BlockChanged( ), CmRestart( ), 및 CmResetWPM( ) 참조)를 재설정하는 것을 유의하도록 이루어진다.
끝으로 그것은 플래싱이 비정지 키(즉, pauseStart가 FALSE임)로 시작되지 않았던 것을 지시하는 플래그를 설정하고 그후 핵심 플래시 루프, FlashLoop( )을 호출한다.
35 CmSelectAll(전용 방법)
void CmSelectAll( );
이 기능은 톱 팬에 있는 모든 텍스트를 선택하기 위한 요구시에 호출된다. 그것은 단순히 browserpane 사례의 SelectAll( )를 호출한다.
36 CmRestart(전용 방법)
void CmRestart( );
이 기능은 플래싱을 재시작하기 위한 요구시에 호출된다. 만약 파일 스트림이 있는 경우 플래싱은 정지된다(PauseFlashing( )에 의해). 파일 스트림은 톱 팬의 시작 어플리케이션 마커에 대하여 재 위치설정된다. 시작과 종료 API 마커는 시작 어플리케이션 마커 위치(SetSelection( )에 대한 호출에 의해)로 설정되어 API 블록이 사라지고 'l' 빔이 또한 이 위치로 이동되게 한다.
37 CmDelays(전용 방법)
void CmDelays( );
이 기능은 사용자가 지연속도를 편집하게 만드는 요구시에 호출된다. 지연속도의 대화(클래스 TDelaysDialog 참조)가 생성되어 실행된다. 만약 OK가 눌려진 경우 WPM 계산에 대한 변수는 리세트된다(CmResetWPM( ) 참조).
38 CmNumFlashes(전용 방법)
void CmNumFlashes( );
이 기능은 하부 팬위에 보여지는 다수의 워드를 사용자가 편집하게 하는 요구시에 호출된다. 대화 TFlashesDialog가 생성되어 현재 번호의 플래시의 파라미터가 주어져 실행된다. 만약 OK가 눌려진 경우 strin.numFlashes는 새로운 값을 포함한다.
39 CmFont(전용 방법)
void CmFont( );
이 기능은 하부 팬에서 표시에 사용하기 위한 폰트를 사용자가 선택하게 요구할때 호출된다. 유용한 폰트의 공통 대화(클래스 TDelaysDialog 참조)가 생성되어 실행된다. 만약 OK가 눌려지면 현재의 폰트가 삭제되고 무효화된다(disFont 참조). 따라서 TFlashPane::Paint( )는 fontData에 사용자가 선택한 폰트 매트릭에 의해 폰트를 재생성하도록 촉구된다.
40 CmAutoFont(전용 방법)
void CmAutoFont( );
이 기능은 사용자가 자동 폰트 리사이징을 선택하거나 또는 해제하게 요구하는 경우 호출된다. 그것은 선택 호출시에 변수 autoSize를 TRUE 또는 FALSE로 설정하는 토글 기능이다. 또한 메뉴 아이템은 이 변수가 토글될때 CheckMenuItem( )에 의해 체크되거나 체크되지 않는다.
각각의 호출을 위해 현재의 디스플레이 폰트, disFont는 삭제되고 무효화되어 TFlashPane::Paint( )가 정확한 크기로 디스플레이 폰트를 재생성할 수 있다.
41 CmTopOn(전용 방법)
void CmTopOn( );
이 기능은 사용자가 톱 팬의 표시를 온/오프로 토글하게 요구하는 경우에 호출된다. 만약 이 기능이 톱 팬을 온으로 토글하는데 호출되는 경우, 그리고 톱 팬이 아직 표시되지 않은 경우(휴지 동안), 그것은 톱 팬을 표시하기 위한 TRUE 파라미터에 의해 ReconfigureWindow( )를 호출한다. 유사하게 만약 이 기능이 하부 팬을 오프로 토글하는데 호출되는 경우 그리고 톱 팬이 아직 턴 오프되지 않은 경우 그것은 톱 팬을 "제거"하기 위하여 FALSE 파라미터를 사용하여 ReconfigureWindow( )를 호출한다.
변수 topOn의 값은 토글되며 메뉴 아이템은 CheckMenuItem( )에 의해 체크되거나 체크되지 않는다.
42 IncreaseAWord(전용 방법)
void IncreaseAWord(SIGN sign)
이 기능은 2플래시(rates.interval 참조) 사이에 요구되는 표시시간 인터벌(ms로)을 계산함에 의해 WPM 속도의 변화가 대략 1WPM이 되게 한다. 여기서 표시시간 인터벌이 이미 매우 짧을때 1ms의 변화는 1WPM 이상의 WPM 속도로 변화가 일어날 수 있다. 이경우 인터벌은 미리 설정된 밀리초, MIN_INTERVAL이다
파라미터, sign이 NEGATIVE 또는 POSITIVE이며, 이는 근본적으로 인터벌 증가 또는 감소가 이루어지는 변화를 걸정한다.
기능은 먼저 현재의 WPM 카운트를 계산하며, 그리고 만약 그것이 제로가 아닌 경우(프로세서에 "제로로 나누기" 에러를 선점하기 위하여) rates.interval는 MIN_INTERVAL와 MAX_INTERVAL에 의해 지정된 범위 내에 있도록 체크된다. 만약 그것이 이 범위안에 있지 않는 경우 그것은 정정되어 이것이 정확하게 한다. 이것은 식별할 수 있는 범위내에 인터벌을 유지하도록 한다. 즉, 이 범위 밖에서는 어플리케이션 사용자에게 속도에 있어서 어떤 인식 가능한 차이가 존재하지 않는다.
많은 interval이 증가되거나 감소되어야 하느지를 발견하기 위하여 현재(정정된) interval을 현재 WPM으로 나눔에 의해 계산이 이루어진다. 만약 이 변화(델타)가 너무 작은 경우(즉, 제로 이하) 증가 또는 감소에 대한 인터벌은 단순히 1이된다.
이러한 변화를 현재 interval에 가산하기 전에 그것은 새로운 인터벌이 MIN_INTERVAL 이하가 아니고, 그리고 가장 중요하게는 새로운 인터벌이 순환하지 않는것(interval이 서명없는 정수이기 때문에)을 체크한다. 만약 그것이 MIN_INTERVAL 이하인 경우 interval은 이 값으로 설정된다.
끝으로 CmResetWPM( )이 새로운 WPM 카운트에 대해 변수를 재설정하도록 호출된다.
43 CmIncreaseRate(전용 방법)
void CmIncreaseRate( );
이러한 인라인 기능은 사용자가 플래싱 속도를 증가하도록 요구할때 호출된다. 그것은 단순히 양의 델타를 표시하기 위하여 POSITIVE의 파라미터에 의해 IncreaseAWord( )를 호출한다.
44 CmDecreaseRate(전용 방법)
void CmDecreaseRate( );
이러한 인라인 기능은 사용자가 플래싱 속도를 감소하도록 요구할때 호출된다. 그것은 단순히 음의 델타를 표시하기 위하여 NEGATIVE의 파라미터에 의해 IncreaseAWord( )를 호출한다.
45 CmPause(전용 방법)
void CmPause( );
이 기능은 플래싱을 중지 또는 시작하는 것을 요구할때 호출된다. 만약 파일 스트림이 존재하고 isFlashing( )이 TRUE로 리턴하는 경우 플래싱은 중지된다. 그렇지 않은 경우 만약 파일 스트림이 존재하며 isFlashing( )이 FALSE로 리턴하는 경우 플래싱은 재시작 또는 비중지된다.
중지시에 만약 현재 어떤 톱 팬도 존재하지 않는 경우(즉, hasTopPane이 FALSE인 경우), 톱 팬은 ReconfigureWindow( )를 통하여 턴온된다. TBrowserPane::scroll( )은 톱 팬을 좌측으로 여러번 스크롤시킬때 호출되며, 따라서 열 1은 만약 그것이 아직 그렇지 않은 경우 가시적인 것을 보장한다. TBrowserPane::PresentWord( )은 현재의 파일 위치를 반영하기 위하여 함께 2API 마커를 불러오도록 호출된다. 플래싱 프로세스를 중지하기 위하여 PauseFlashing( )에 대한 호출이 이루어지며, 현재 시스템 틱은 변수 pauseTick에 기억되며 이는 이러한 중지동안 경과한 틱의 수를 고려하여 후에 사용된다.
비중지인 경우 만약 사용자의 톱 팬 디스플레이 옵션이 오프(즉, topOn이 FALSE인)이고 현재 톱 팬이 존재하는 경우 (즉, hasTopPane이 TRUE인 경우), 톱 팬은 ReconfigureWindow( )를 호출함에 의해 "제거"된다. TBrowserPane::BlockChanged( )은 필요한 경우 텍스트의 현재 라인을 재 표시하기 위해 호출된다. WPM 카운트로부터 중지하는 동안 경과한 틱의 수를 배제하기 위하여 WPM 카운트(즉, initialTick)를 시작하기 위한 틱은 공표되어야 한다. 이것은 현재 틱 카운트을 얻어서(GetTickCount( ) 호출) 중지동안(즉, pauseTick) 틱 카운트를 감산함에 이해 행하여 진다. 변수 pauseStarted는 TRUE로 설정되고, FlashLoop( )는 플래싱을 재시작하도록 호출된다.
46 CmResetWPM(전용 방법)
void CmResetWPM( );
이 기능은 WPM 카운트의 계산과 관련한 변수를 재설정하기 위한 요구시에 호출된다. 이제까지 플래시된 워드의 수는 제로(즉, wordCount)가 되며 워드 카운트 제로 이후의 제1 플래시의 시작시의 틱은 GetTickCount( )를 갖는 현재 틱으로 설정된다.
47 CmHelpOnHelp(전용 방법)
void CmHelpOnHelp( );
이 기능은 헬프 파일 WINHELP.HLP을 갖는 WINHELP.EXE를 불러내기 위한 요구시에 호출된다.
48 CmAbout(전용 방법)
void CmAbout( );
이 기능은 "About" 대화를 불러내기 위한 요구시에 호출된다.
클래스 TDelaysDialog (21c)는 대화 박스 클래스이고 TDialog로부터 파생된다. 이 객체(object)는 사용자로부터 각종 지연속도를 얻는다.
이 클래스의 멤버는 다음과 같다:
TDelaysDialog TDialog
TDelaysDialogSetupWindowCanClose SetupWindowCanClose
1 rates(전용 변수)
TCharonWin::TDelayRate& rate;
이것은 그것의 부모에서 타입, TDelaysDialog의 구조 변수에 대한 레퍼런스이며, 그것의 부모는 지연(TCharonWin 클래스 내에 중첩구조(nested structure) TDelayRate 참조)의 각종 속도를 포함한다.
2 TDelaysDialog(공용 구성자)
DelaysDialog(TWindow *parent, TCharonWin::TDelayRate&_rates)
이 구성자는 대화 객체를 생성한다. 파라미터는 그것의 부모 포인터이며 그것의 부모에서 구조 변수 rates에 대한 레퍼런스이다.
3 SetupWindow(전용 기능)
void SetupWindow( );
이 기능은 조장 클래스에서 기능을 중복기재한다. 그것은 중첩구조 TDelayRate에서 변수 interval, blackout, punctuations, ends, cr를 설정하기 위해 SetDigitemint( )를 호출한다.
4 CanClose(전용 기능)
BOOL CanClose( );
이 기능은 조상 클래스에서 기능을 중복기재한다. 그것은 변수 구조 TDelayRate로 그것의 편집박스의 내용을 보내도록 GetDigitemint( )를 호출한다. 끝으로 그것은 베이스의 CanClose( )의 리턴값을 리턴시킨다.
클래스 TFlashesDialog(21d)는 대화 박스 클래스이고 TDialog로부터 파생된다. 이 객체는 사용자로부터 플래시 당 워드수를 얻는다.
이 클래스의 멤버는 다음과 같다:
TFlashesDialog TDialog
TFlashesDialogSetupWindowCanClose SetupWindowCanClose
1 numFlashes(전용 변수)
UINT& numFlashes;
이것은 플래시당 워드의 수를 내장하고 있는 그것의 부모, TChronWin에서 변수에 대한 레퍼런스이다.
2 TFlashesDialog(공용 구성자)
TFlashesDialog(TWindow *parent, UINT& _numFlashes);
이 구성자는 대화 객체를 생성한다. 파라미터는 그것의 부모 포인터이고 그것의 부모에서 변수 numFlashes에 대한 레퍼런스이다.
3 SetupWindow(전용 기능)
void SetupWindow( );
이 기능은 조상 클래스에서 기능을 중복기재한다. 그것은 자원 편집기에서 정의된 편집 박스로 변수 numFlashes를 설정하기 위해 SetDigitemint( )를 호출한다.
4 CanClose(전용 기능)
BOOL CanClose( );
이 기능은 조상 클래스에서 기능을 중복기재한다. 만약 베이스 CanClose( )가 TRUE로 리턴하는 경우 그것은 변수 numFlashes로 그것의 편집 박스의 내용을 보내도록 GetDigitemint( )를 호출한다. 그 기능은 TRUE로 리턴한다. 즉, 만약 numFlashes가 제로보다 더 큰경우 대화박스를 닫는데 오케이다.
클래스 TBrowserPane(21e)는 TEditFile로부터 파생된다. 조상 클래스는 편집 윈도우를 포함하며 그것의 오프셋 위치가 API's GetSelection( )를 호출함에 의해 얻어질 수 있는 블록 선택을 처리한다. 이들은 "API 마커"로서 여기에 참조된다.
TBrowserPane는 "어플리케이션 마커"로서 알려진 2 부가 마커를 구현한다. 그들의 목적은 비록 API 마커가 약간의 다른 블록을 표시하는데 사용될지라도 원래의 선택이 기록되도록 API 마커에 의해 원래 주목된 사용자의 블록 선택의 오프셋을 기억하는 것이다. 이 클래스는 또한 만약 가능하다면 이들 서브 마커를 포함하는 텍스트의 라인을 센터링하는 것을 처리한다.
이 클래스의 기능은 다음과 같다:
TBrowserPane TEditFile
TBrowserPanePresentLineGetSelectionStartBlockBeginBlockBeginBlockEndBlockEndIsSelectionChangedRememberBlockSelectBlockSelectAllSetupWindowEvSizeCalcMiddleLine SetupWindowEvSize
1 blkBegin(전용 변수)
UINT blkBegin
이것은 시작 어플리케이션 마커이다. 그것은 사용자가 텍스트의 판독을 시작하기를 원하는 지를 기록한다. 이 변수의 값은 마우스 포인터 또는 키보드 커서중 하나를 통하여 사용자에 의해 내부 마커 부분에 대한 명확한 변경이 있는 것을 검출한때 멤버 기능 RememberBlock( )를 통하여 부모 윈도우, TCharonWin에 의해 변경된다. 이 검출은 단지 어플리케이션이 TCharonWin::CmGo( )와 TCharonWin::Pause( )에 플래싱을 재시작하는 것을 시도할때 만 행하여진다.
2 blkEnd(전용 변수)
UINT blkEnd;
blkBegin를 갖출때 이것은 엔드 어플리케이션 마커이다.
3 numberMidLines(전용 변수)
int numberMidLines;
이것은 TBrowserPane의 사례가 그것의 현재 윈도우 크기에서 가질 수 있는 텍스트 라인수의 1/2이다.
4 lastSelectionPos(전용 변수)
UINT lastSelectionPos;
이것은 파일의 시작에 비례하여 플래싱 텍스트의 시작 오프셋을 표시한다. 그것의 목적은 플래싱이 진행하는 동안 시작 API 마커를 기록하여 그결과 플래싱 처리동안 마우스 포인터 또는 키보드 커서를 통하여 사용자에 의한 블록선택의 임의의 재배치가 승인되게 한다.
5 TBrowserPane(공용 구성자)
TBrowserPane (Twindow *parent);
이것은 lastSelectionPos을 제로로 초기화하는 브라우저 윈도우를 구성한다. 그것은 또한 1/2 윈도우가 제공하는 라인의 수를 계산하여 그것을 변수 numberMidLines에 기억시킨다.
6 PresentLine(공용 기능)
void PresentLine (UINT startPos, UINT endPos);
이 기능은 startPos와 endPos 내에 포함된 워드 또는 워드들을 강조하며 만약 가능하다면 윈도우의 중간에 있는 텍스트의 선택된 블록을 놓는다.
먼저 그 기능은 워드 또는 워드들을 선택 따라서 강조하기 위해 SetSelection( )을 호출한다. 그것은 만약 있다면 사용자가 명확하게 선택을 재배치한 것을 승인하도록 lastSelectionPos에 선택의 시작을 기록한다.
윈도우의 중간에 선택을 놓기 위하여 그것은 (GetFirstVisibleLine( )를 호출함에 의해) 윈도우(즉, numberMidLines)에 있는 라인수의 1/2과 윈도우에 있는 제1라인의 수를 더하여, 따라서 전체 파일에 비례한 텍스트의 중간 라인의 절대 라인수를 얻는다. 그것은 GetLineFromPos( )를 호출하여 선택되고 있는 라인수를 얻고 이로부터 절대 라인수를 빼어 스크롤되어야 하는 라인의 수를 얻어 그결과 윈도우의 중간에 선택이 나타난다.
7 GetSelectionStart(공용 기능)
UINT GetSelectionStart( );
이 기능은 시작하는 API 마커를 리턴시킨다. 그것은 베이스 기능 GetSelection( )를 호출하고 종단 마커를 버려 시작 마커를 리턴시킨다.
8 BlockBegin(공용 기능)
UINT BlockBegin( );
이 오버로드된 인라인 기능은 시작 어플리케이션 마커, blkBegin를 리턴시킨다.
9 BlockBegin(공용 기능)
void BlockBegin (UINT val);
이 오버로드된 인라인 기능은 시작 어플리케이션 마커, blkBegin을 val의 값으로 설정한다.
10 BlockEnd(공용 기능)
UINT BlockEnd( );
이 오버로드된 인라인 기능은 종료 어플리케이션 마커, blkEnd를 설정한다.
11 BlockEnd(공용 기능)
void BlockEnd(UINT val)
이 오버로드된 인라인 기능은 종료 어플리케이션 마커, blkEnd를 val의 값으로 설정한다.
12 IsSelectionChanged(공용 기능)
BOOL IsSelectionChanged( );
이 인라인 기능은 플래싱이 진행하고 있는 동안 사용자가 커서 또는 블록선택을 재배치하였는 지를 테스트한다. 이것은 플래싱 처리 동안 시작 API 마커에 의해 현재 선택된 위치가 lastSelectionPos에 과거에 기억된 것과 동일한 지를 테스트함에 의해 이루어진다. 만약 이러한 테스트가 TRUE인 경우 그후 재배치는 이루어지지 않는다.
13 RememverBlock(공용 기능)
void RememverBlock( );
이 기능은 blkBegin 및 blkEnd에 있는 API 블록 마커를 기억함에 의해 현재 선택된 블록을 회상한다. 만약 양 API 마커가 동일한 위치에 있는 경우, 즉 윈도우에 선택된 어떤 블록도 없는 경우 어떤것도 이루어지지 않는다.
14 SelectBlock(공용 기능)
void SelectBlock( );
이 인라인 기능은 전체의 판독 블록을 설정하기 위하여 변수 blkBegin 및 blkEnd에 의해 SetSelect( )를 호출한다. 따라서 API 마커는 어플리케이션 마커와 동일한 값으로 주어진다.
15 SelectAll(공용 기능)
void SelectAll( );
이 기능은 처음 문자(즉, 제로)에 blkBegin을 설정하고 마지막 가능한 문자(즉, FFFF hex)에 blkEnd를 설정함에 의해 윈도우에 포함된 전체의 텍스트를 선택한다. 그후 이 기능은 블록을 설정하기 위하여 SetSelection( )를 호출한다.
16 SetupWindow(전용 기능)
void SetupWindow( );
이 인라인 기능은 그것의 조상을 중복기재한다. 그것의 목적은 이 윈도우 내에 편집을 불가능하게 한다. 그 기능은 먼저 베이스 SetupWindow( )를 호출하고 그후 기입을 불가능하게 하기 위하여 TRUE의 파라미터를 사용하여 SetReadOnly( )를 호출한다.
17 EvSize(전용 기능)
void EvSize (UNIT sizeType, TSize& size);
이 인라인 기능은 그것의 조상을 중복기재한다. 그것의 목적은 윈도우 리사이즈 이벤트(즉, WM_SIZE)를 트랩(trap)하는 것이고 CalcMiddleLine( )를 호출한다. 그것은 하부와 상부 사이의 윈도우의 클라이언트 크기를 측정하여 리드를 포함하는 폰트의 높이로 그것을 나눔에 의해 이를 행한다.
클래스 TFlashPane(21f)은 TWindow로부터 파생되며, 또한 표시 워드 또는 워드들을 관리한다. 이러한 텍스트의 라인과 그것의 디스플레이 폰트는 그것의 부모 윈도우 TCharonWin으로부터 얻어진다.
이 클래스의 멤버 기능은 다음과 같다:
TFlashPane TWindow
TFlashPaneRepaintWindowPaint Paint
1 parentWin(전용 변수)
TCharonWin *parentWin;
이것은 부모 윈도우 TCharonWin에 대한 포인터이며, 그것은 그로부터 폰트를 표시하기 위하여 텍스트에 대한 정보를 얻는다.
2 TFlashPane(공용 구성자)
TFlashPane (TCharonWin *parentWin);
이것은 텍스트 플래싱 윈도우를 구성하여 부모 윈도우(즉, TCharonWin)의 어드레스를 갖는 parentWin를 초기설정한다.
3 RepaintWindow(공용 기능)
void RepaintWindow( );
이 인라인 기능은 즉시 윈도우의 클라이언트 영역을 고쳐 긋기 위하여 조상 클래스를 무효화하고(Invalidate( )) 윈도우를 업데이트(UpdateWindoe( ))한다.
4 Paint(전용 기능)
void Paint (TDC& dc, BOOL, TRect&);
이 기능은 윈도우가 리페인트될때 마다 호출되는 조상 기능을 중복기재한다. 그것은 부모의 디스플레이 폰트를 선택하고 parentWin's strin에서 워드 또는 워드들을 페인트한다.
이 기능은 먼저 윈도우 클라이언트 디멘존(차원)을 구하고 이 윈도우에 가장 적합한 폰트가 윈도우 표시의 높이(즉, 하부 마이너스 상부)의 1/2인 지를 판단한다. 그것은 이 파라미터를 사용하여 TCharonWin::SetDisplayFont( )를 호출함에 의해 그것의 부모로부터 디스플레이 폰트를 구한다. 그것은 텍스트 삽입 베이스를 그것이 표시하는 텍스트의 중심을 맞추도록 설정하며 (TA_CENTER에 의해 SetTextAlign( )를 호출함에 의해), 이 폰트의 배경은 윈도우의 배경이 되고(TRANSPARENT에 의해 SetBkMode( )를 호출함에 의해), 그리고 이 폰트의 칼라는 부모의 fontData.Color에 정의된 것이다. 그것은 TextOut( )를 호출함에 의해 텍스트를 기록하는 것을 진행한다.
끝으로 클래스 TString(21g)는 조상 클래스 스트링으로부터 파생되며, 또한 입력 스트림으로부터 워드의 수(변수 TCharonWin::numFashes에 의해 결정되는 바와같이)를 읽어 처리한다.
이 클래스의 멤버 기능은 다음과 같다:
TString string
GetAFlashGetAppendToken
1 numFlashes(공용 변수)
UINT numFlashes;
이것은 입력 파일 스트림으로부터 읽혀진 사용자가 결정한 워드의 수를 보유한다.이 클래스에 의해 성공적으로 읽혀진 워드의 수는 클래스에 의해 보유되어 긍극적으로는 하부 팬에 표시되는데 사용된다. 이것은 공용 변수이고 클래스 TCharonWin로부터 직접 변경될 수 있다.
2 GetAFlash(공용 기능)
int GetAFlash(istream _FAR &is, UINT &startPos, UINT &endPos);
이 기능은 디스크 파일 스트림으로부터 사용자가 특정한 워드의 수를 읽어 판독된 실제의 수로 리턴한다. 그것은 먼저 API 스트링 버퍼를 소거하고 (변수 numFlashes에 의해 결정된) 수에 도달할때 까지 파일 스트림, istream (is)로부터 워드를 얻기 위하여 반복적으로 GetAppendTocken( )를 호출한다. 실제의 워드 수는 이 변수보다 작거나 동일하다(자세한 것은 멤버 기능 GetAppendTocken( )를 참조). 판독이 일어난파일 스트림의 시작 위치는 startPos로 리턴되고, 종료 위치는 endPos로 리턴한다.
3 GetAppendTocken(전용 기능)
FLASH_STATUS GetAppendTocken(istream_FAR &is);
이 기능은 한 워드를 읽고 파일 istream (is)로부터 API 스트링 버퍼로 그것을 첨부한다. 그것은 성공하지 못한 판독시에 UNSUCCESSFUL의 상태로 리턴되고, 성공적인 판독시에 SUCCESSFUL의 상태로 리턴되며, 단지 구두점 또는 문장 종료 마크가 워드의 마지막 문자로서 존재하는 경우 성공적인 판독시에는 END_OF_FLASH로 리턴된다. END_OF_FLASH 상태는 그것의 내부 스트링 버퍼가 준비되어 있으므로 이 기능이 스크린 디스플레이 없이 더이상 호출되지 말아야 하는 것을 호출 기능(즉, GetAFlash( ))에 알려준다.
만약 워드가 성공적으로 읽혀진 경우 그것은 내부 스트링 버퍼의 끝에 첨부된다. 그러나, 첨부가 수행되기 전에 만약 내부 스트링 버퍼가 어떤것(즉, 과거의 워드)를 포함하는 경우 한개의 스페이스 문자(즉, ASCⅡ 32)는 현재 워드가 첨부되기 전에 마지막 워드 다음에 첨부된다.
워드는 일 토큰(token)이며 그것의 전후에 있는 여백을 갖는 문자로서 정의된다(string 클래스의 read_token( ) 참조). 전역(global)의 기능 IsPunctuation( ) 내에 상수 PUNCTUATION_LIST는 워드의 시작 또는 끝 중의 하나를 지시하는 한 세트의 비문장-정지 구두점이다. 전역의 기능 IsSentenceEnd( ) 내에 상수 SENTENCE_END_LIST는 워드의 끝을 지시하는 한 세트의 구두점이다.
이제 비클래스 기능 23을 고려하면 다음과 같다:
1 GetProfileInt
UINT GetProfileInt(char *keyName, UINT defVal);
이 기능은 섹션 [Charon Readed]하에서 파일, CHARON.INI로부터 정수값을 구한다. entryName은 CHARON.INI.에서 진입명이고, defVal은 만약 이러한 진입이 존재하기 않는 경우 디폴트값이다.
그것은 API, GetPrivateProfileInt( )를 호출한다.
2 WriteProfileInt
void WriteProfileInt(char *keyName, UINT val);
이 기능은 섹션 [Charon Readed] 하에서 파일, CHARON.INI로 정수값을 기록한다. entryName은 CHARON.INI.에서 진입명이고, val은 이러한 기능이 기록하는 값이다.
그것의 첫번째 호출은 먼저 그 값을 스트링으로 변환한후 그것은 API, WritePrivateProfileString( )를 호출한다.
3 Delay
void Delay(UINT factor)
이 기능은 프로세서 시간에서 떨어진 동안 문장에 대하여 중첩된 로컬 루프를 실행한다. 파라미터, 팩터는 이 기능이 만들어야 하는 루프수를 결정한다. 이 수는 임의로 될 수 있고, 그러나 어플리케이션의 시작시에 그것의 계산은 밀리초의 팩터로 이 기능이 실행되게 하는 수를 결정하도록 돕는다(TCharon::SetupWindow( ) 참조).
MS 윈도우즈 어플리케이션은 이 방법이 다른 윈도우즈 어플리케이션과 그 자체를 동결하도록 하기에 (특히 TApplication::PumpWaitingMessages( )를 호출하지 않고) 로컬 지연 루프를 사용하지 않는다. 그러나, 이 어플리케이션은 종종 55ms 이상의 더 미세한 클록 틱 해상도를 가져야만 한다. 이러한 과립성(granulity)이 요구될때 이 기능이 사용된다(지연이 조건부로 어떻게 구현되는 지에 대하여 상세한 것은 TCharonWin::DelayUntilTime( ) 참조).
4 IsPunctuation
BOOL IsPunctuation(char mark);
이 기능은 만약 파라미터 mark가 정의된 구두점 리스트, PUNCTUATION_LIST에 있는 문자인 경우 TRUE로 리턴한다.
5 IsSentenceEnd
BOOL IsSentenceEnd(char mark);
이 기능은 만약 파라미터 mark가 정의된 문장 종료기 리스트, SENTENCE_END_LIST에 있는 문자인 경우 TURE로 리턴한다.
클래스 및 그들 멤버 기능의 전체적인 설명으로부터 시스템의 다수의 중요한 특징이 언급되며 이는 컴퓨터 프로그램의 실제 동작의 설명으로 더잘 이해될 것이다. 이제 이설명은 전체적인 스크린 레이아웃과 관련하여 이루어지며 컴퓨터 프로그램 동작의 사용자 사시도로부터 제공된다. 따라서 도 4내지 도 18에 도시된 디스플레이 스크린 레이아웃과 도 3에 도시된 컴퓨터 프로그램의 기능적인 흐름도를 참고한다.
초기설정시에 컴퓨터 프로그램은 과거에 기술된 다이나믹 링크 라이브러리와 프로그램에 의해 컴파일된 실행파일 'exe'을 실행시킴에 의해 실행된다. 이것은 기능(21a)의 TCharApp 클래스를 초기설정시에 불러오며 기능(21e)의 TBrowserPane 클래스와 기능(21f)의 TFlashPane 클래스와 함께 기능(21b)의 TChronWin클래스를 불러오는 것에 의해 도 4에 도시된 스크린을 생성한다. 보여지는 바와같이 스크린은 타이틀 바(31), 메뉴 바(33), 툴 바(35), 브라우저 팬(37), 플래시 팬(39), 상태 바(41), 제어 메뉴 박스(43) 및 전체가 45로 표시된 최소, 최대 및 복원 버튼으로 구성되는 표준 윈도우즈(WINDOWS; 등록상표) 레이아웃을 갖는다.
이들 초기설정 기능을 불러오는 것은 도 3에 원(101)으로 표현되어 있다.
메뉴 바는 앞에서 설명한 메뉴 헤딩 'File', 'Speed', 'Read', 'Options'을 포함한다. 툴 바(35)는 새로운 문서 버튼(47), 시작 버튼(49), 증가 스캐닝 속도 버튼(51), 감소 스캐닝 속도 버튼(53) 및 중지 버튼(55)을 포함한다.
브라우저 윈도우 팬(37)은 수직 스크롤 바(57)와 수평 스크롤 바(59)를 포함한다.
본 실시예에서 브라우저 팬은 스크린의 약 65% 크기로 설정되며 플래시 팬은 35%로 설정된다.
상태 바(41)는 프로그램에 의해 스캐닝되고 있는 분당 워드의 점진적인 표찰(tally)과 밀리초 동안 텍스트의 부련속 부분이 표시되는 시간 인터벌 또는 기간을 포함한다.
도 3에 원(102)으로 표시한 바와같이 파일은 도 5에 도시된 'File' 메뉴를 오픈하여 도 6에 도시된 'Open' 대화박스를 생성하는 'Open' 옵션을 선택함에 의해 선택된다.
프로그램을 빠저나가기 위한 수단은 또한 도 5에 도시된 Exit 옵션을 선택함에 의해 'File' 메뉴에서 제공된다는 점에 유의해야 한다.
'Open' 대화바스에서 텍스트 파일은 주지된 방식으로 선택되며 본 실시예의 경우에 선택된 파일은 'readtest.txt'이다.
소망하는 파일을 선택하는 것은 도 7에 도시된 바와같이 브라우저 팬(37)에서 그것의 텍스트의 제일 큰 부분을 위치시키는 것이다.
프로그램의 제어 파라미터를 설정하기 위하여 프로그램은 판독을 진행할 준비가 되어 있다.
제어 파라미터의 설정은 도 3의 원(103)으로 표시되며, 이것은 메뉴 아이템 'Options'을 경유하여 이루어진다.
도 8에 도시된 바와같이 각각 상호 연관된 대화 박스를 가지는 3개의 적합한 옵션 즉, 'Delays', 'Font' 및 '플래시 번호(Number of flashes)'와, '자동 크기 폰트(Auto size font)' 및 브라우저 윈도우(Browser window)'의 2개의 토글 옵션이 존재한다.
제1옵션 'Delays'는 기능(21c)의 TDelaysDialog 클래스를 불러와 도 9에 되시된 대화박스를 생성하며, 그것은 제어 파라미터: '워드 표시시간', '워드간 공백 스크린', '구두점', '문장 종료' 및 '단락 종료'의 리스트이다.
'워드 표시시간' 파라미터는 스크린에 플래시 팬(39)위의 동일한 위치에 위치된 텍스트의 불연속 부분이 표시되는 표시시간 또는 기간을 정의하며, 이 값은 상태 바(41)에 '언터벌'로 나타나는 동일한 값이다. '워드간 공백 스크린' 파라미터는 플래시 팬(39)에서 연속된 워드의 표시 사이에 발생하는 공백(blanking) 시간 인터벌을 정의한다. '구두점' 파라미터는 제1텍스트 부분이 콤마, 인용 마크 등과 같은 구두점을 포함할때 표시된 텍스트의 다음번 불연속 부분에 대한 플래시 팬에 텍스트의 불연속 부분의 텍스트의 표시 다음에 발생하는 공백 시간 인터벌을 정의한다. '문장 종료' 파라미터는 피리어드, 감탄 부호, 의문부호 등으로 지시되는 문장의 끝에 도달한때, 표시되고 있는 텍스트의 연속된 불연속 부분 사이에 발생하는 공백 시간 인터벌을 정의한다. 끝으로 '단락 종료' 파라미터는 다음 단락의 시작에 텍스트의 다음번 불연속 부분의 표시까지 단락의 종단에서 발생하는 텍스트의 불연속 부분의 표시 다음에 발생하는 공백 시간 인터벌을 정의한다.
'Font' 옵션은 도 10에 도시된 '폰트' 대화박스를 생성하며, 이는 표준 다이나믹 링크 라이브러리 중 하나로부터 얻어지고 이에 따라 폰트는 주지된 방식으로 선택된다.
선택된 'Flashes' 옵션은 기능(21d)의 TFlashesDialog 클래스를 불러와 도 11에 도시된 대화 박스를 생성한다. 이것은 어느 한순간에 플래시할 워드의 번호를 정의하기 위한 제어 파라미터의 설정을 제공하며, 플래시 팬(39)에 위치되도록 텍스트의 불연속 부분에 워드의 번호가 나타난다.
'Auto size font' 옵션과 관련하여 이를 선택할때 도 8에 도시된 바와같이 플래시 팬(39)에서 텍스트의 표시된 부분의 폰트를 자동적으로 크기를 측정하는 기능을 포함한다. 본 실시예에서, 폰트는 크기 24 의 정규 폰트 스타일에 표현된 Times New Roman 진실 타입에 대한 자동적인 디폴트값이 주어진다. 이러한 설정을 변경하도록 'Auto size font' 옵션을 해제하고 전술한 바와같이 폰트 옵션에 따라 폰트에 대한 새로운 제어 파라미터를 설정하는 것이 필요하다.
선택된때 '브라우저 윈도우(Browser window)' 옵션은 상기한 위도우 비례에서 도 4에 도시된 바와같이 브라우저 팬(37)이 표시되거나 플래시 팬(39)이 표시되게 하는 기능을 불러온다. 해제된때 도 12 및 13에 도시된 바와같이 전체 표시 윈도우를 취하여 단지 플래시 팬(39)이 제공된다. 이들 기능은 원(105)으로 표시되어 있다.
설정 가능한 제어 파라미터를 설정한후, 판독 프로그램은 텍스트를 판독하는 것을 시작하도록 불려올 수 있다. 프로그램을 불러올때는 'Read' 메뉴, 시작 버튼(49) 또는 키 가속기를 통하여 실행될 수 있다.
'Read' 메뉴의 경우, 이에 대한 풀다운 메뉴는 도 14에 보인 바와 같이 3개의 옵션을 제공하는데, 첫번째는 'Go', 두번째는 'Restart', 세번째는 'Select all'이다. 'Go' 옵션을 선택하거나 또는 키 액셀러레이터 G를 누르면, 텍스트 파일의 판독을 개시하는 기능을 유도한다. 또는, enter 키를 치거나 스타트 버튼(49)을 누름으로써 이와 동일한 기능이 수행된다.
상기 옵션 'Restart'는 프로그램의 판독이 개시된 후 유효하며, 이 선택에 따라 판독 프로그램을 그의 스타트 상태로 복귀시키고 명령을 기다리는 기능을 한다. 이 옵션은 또한, 키보드의 키 액셀러레이터 's'를 누르거나 또는 ctrl 및 home 키를 누름으로써 수행될수 있다.
상기 옵션 'Select all'은, 초기화시에 판독될 파일의 블록 한정에 대한 디폴트 콘트롤 파라미터이며, 이에 의해 오픈 파일내의 모든 텍스트가 선택되어 독출된다. 이 블록 한정은 즉시 기술된다. 이 'Select all' 옵션의 목적은 텍스트의 블록이 선택되어 판독된 후 유효하며, 전체의 텍스트 파일을 판독하기 위해서는 리턴하는 것이 필요하다. 이 옵션은 또한, 키 액셀러레이터 'S'를 누름으로써 행해질수 있다.
블록 정의는 도 3에 보인 원 104로 표시된 바와 같이 기능 21e의TBrowserPane클래스하에 실행된다. 전술한 블록 정의는 전체 파일이 오픈되는 디폴트 세팅을 가지며, 이 기능은 초기화 즉시 실행된다. 그러나, 블록 정의는, 브라우저 페인내에 표시되는 텍스트에 대한 시작 및 끝의 애플리캐이션 마커를 세팅함으로써 단지 파일의 특정 문장이나 절만 판독되도록 변경될수 있다. 이는 마우스 버튼을 사용하여 텍스트의 원하는 시작 위치에 'I'빔 커서를 위치시키고, 좌측 마우스 버튼을 누른채로 상기 'I'빔을 판독될 텍스트의 끝 위치로 끌어옴으로써 편리하게 실행된다. 상기 'I'빔이 끌려올때, 도 15에 보인 바와 같이, 전체 블록이 한정될 때 까지 텍스트의 선택 블록이 점진적으로 강조된다.
블록을 한정하기 위한 시작 애플리케이션 마커는 필요한 경우 원 109로 표시한 바와 같이 텍스트 파일이 판독되는 동안 재위치될수 있다. 또한, 컴퓨터 프로그램에 의해 강조된 텍스트 블록이 판독된 후, 원 116으로 표시된 바와 같이, 끝 애플리케이션 마커에 달함에 따라 프로그램은 텍스트의 블록을 강조하도록 하기 위한 기능을 호출한다.
설정가능한 콘트롤 파라미터에 더하여, "Speed"메뉴는 임의의 콘트롤 파라미터를 가변, 즉, 워드 표시 시간 및 블랭킹 시간 간격과 같이, 원 111로 표시된 바와 같이 판독 속도 및 원 112로 표시된 바와 같이 분 계산 당 워드의 리세팅을 증가시키거나 감소시키기 위해 제공되며, 그 결과 본 판독속도당 누적 워드를 리세트하도록 스크린의 스테이커스 바에 표시된다. 상기 "Speed" 메뉴 항과 조합된 풀다운 메뉴를 도 16에 도시했다.
'Increase' 및 'Decrease' 속도 옵션은 각각 속도버튼(51,53)과 결합되어, 관련 인-라인 기능CmIncrease레이트 및CmDecrease레이트를 유도하고, 이는IncreaseAWord기능을 호출하며, 이들은 모두 클래스TCharonWln에 관해 전술한 것이다. 이에 따라 로우 디스플레이 시간에 대해, 'Increase'를 선택함으로써, 'Word Display Time'은 속도 증가 버튼(51)을 누르거나 'Increase' 옵션의 선택마다 1밀리초만큼 단축된다. 이에 대해, 'Word Display Time'은 감속 버튼(53)을 누르거나 'Decrease' 속도 옵션의 선택마다 1밀리초만큼 증가된다. 또는, 하이 디스플레이 시간에 대해, 'Word Display Time'은 1WPM 변화에 해당하는 시간 주기만큼 감소되거나 증가된다. 이들 기능을 원 113으로 표시했다. 본 실시예에 있어서, 이와 같은 속도의 변경은 도 9에 도시한 'Delay' 다이알로그 박스를 통해 결정되는 설정치로 일정하게 유지되는 블랭킹 시간 간격동안 콘트롤 파리미터 설정을 변경시키지 않는다.
옵션 'update WPM'은 원 108로 표시된 바와 같이CmResetWPM기능을 유도하여 분 카운트당 워드의 계산에 관한 변수를 리세트시킨다. 멤버 기능WordsPerMinute을 차례로 호출하는ShowWordsPerMinute기능은 컴퓨터 프로그램의 정상적 동작코스로 호출되고 전술한 바와 같이 계산되는 분 카운트당 현재 워드를 복귀시키고, 스테이터스 바(41)에 그를 표시하며, 이 때 상기 두 기능은 모두TCharonWin클래스의 멤버이다.CmResetWPM의 호출이 변수를 제로로 리세트함에 따라, 리세트후 워드 카운트가 낮아지면서 스테이터스 바에 표시되는 WPM 레이트는 워드 카운트가 매우 변동하게 된다.
'Speed'메뉴에 대한 풀다운 메뉴는 또한, 포즈 버튼(55)에 대응결합되는 'Pause/Return'옵션을 포함한다. 'Pause/Reume'옵션 또는 포즈 버튼을 선택함으로써, 원 110으로 표시한 바와 같이,TcharonWin클래스의 멤버인CmPause기능을 유도함으로써, 텍스트를 표시하거나 또는 텍스트간의 블랭킹시에 텍스트의 불연속 부분을 표시하는 것을 중지하는 것과, 블랭킹 시간간격만큼 떨어진, 텍스트의 불연속 부분의 표시 또는 강조하는 것의 개시를 절환한다. 따라서, 텍스트의 판독이 일시정지되거나 또는 판독동작시 언제라도 이 상태로 유지될수 있다.
전술한 바와 같이, 한정된 텍스트 블록의 판독은 스타트 버튼(49)를 누르고, 'Read'메뉴하의 "Go"옵션을 선택하거나 키보드의 엔터키를 누름으로써 실행된다. 이들 동작은 프로그램의 상태에 따라 유도되는 다른 기능을 순차적으로 야기하는,TCharonWin클래스의 멤버인CmGo기능을 유도한다. 이에 따라, 정상적인 동작시의CmGo기능은 소정의 블랭킹 시간 간격으로 전술한 디스플레이 시간동안 플래시 페인상의 동일한 위치에 텍스트의 불연속 및 연속 부분들을 순차적으로 위치시키며, 상기 시간 및 간격은 전술한 바와 같이 적절한 콘트롤 패널의 설정에 의해 결정된다.
브라우저 페인(37)이 플래시 페인(39)과 조합되어 표시되도록 선택되는 경우, 상기 플래시 페인의 표시 불연속부는 도 17도에 워드 "maintaining"으로 도시한 바와 같이 브라우저 페인내에 동시에 강조된다. 상기 기능은 또한, 텍스트의 각 불연속부의 중앙이 동일한 위치에 표시되도록 플래시 페인내에 횡방향으로 텍스트의 각 불연속부를 중심에 위치시키기 위해 원 107로 표시한 센터링 수단을 유도한다. 이의 1예는 플래시 페인 중심에 위치되는 워드 "the" 및 "developed"를 갖는 도 12와 도 13 및, 플래시 페인내에 워드 "maintaining"을 갖는 도 17에 도시했다.
또한, 브라우저 페인이 선택되어 표시되는 경우, 이 기능은 도 18에 상세히 도시한 바와 같이, 상기 브라우저 페인내에 표시되는 텍스트의 대부분의 표시를 자동적으로 스크롤링하고 상기 플래시 페인내에 표시되는 텍스트의 불연속부에 대응하는 텍스트를 포함하는 행을 센터링하기 위한 원 106으로 나타낸 센터링 스크롤링 수단을 유도한다. 그러나, 브라우저 페인에 표시되는 텍스트의 불연속부에 대응하는 텍스트를 나타내는 행의 자동 스크롤링 및 센터링을 실행하기 위해, 텍스트의 대응하는 불연속부를 강조하는 행 이상의 충분한 행이 도 18에 보인 바와 같이 파일내에 존재할 필요가 있다. 이에 따라, 파일의 개시하여 텍스트의 판독을 실행할 때, 텍스트의 강조된 부분은, 자동 스크롤링 및 센터링이 발생하기 전에, 페인의 중앙이 도달될 때 까지, 도 17에 보인 바와 같이 상단 열로 부터 브라우저 페인의 하단으로 점차 이동한다.
WINDOWS(3.1)(등록상표) 환경하에서의 컴퓨터 프로그램의 실행에 있어서는, WINDOWS의 다중처리 능력이 수용될 필요가 있다. 이 점에서, 모든 WINDOWS 프로그램이 공존해야 하며 다중처리를 가능하게 하기 위해 다른 WINDOWS 프로그램과 병행하여 작업할수 있어야 한다. 따라서, WINDOWS가 그 자체의 시간관리를 행하는 WINDOWS에 의해 다중처리를 행할수 있도록 하기 위해, 컴퓨터 프로그램을 WINDOWS가 갖는 제한내에서 설계할 필요가 있다.
따라서, 컴퓨터 프로그램은, 이 프로그램의 주기능인FlashLoop의 동작시DelayUntilTime기능이 호출될 때 유도되는 그 자체의 처리 수단을 포함하며, 상기 두 기능은TcharonWin클래스의 일부이다. 또한, 이 기능은, 컴퓨터 프로그램이, 'Word Display Time' 및 블랭킹 시간 간격이 1밀리초의 증가 또는 감소와 같은 고해상도로 조정될수 있도록 그자체의 타이밍 기구를 사용할수 있도록 하며, 또한 다른 WINDOWS 애플리케이션으로 그자체의 시간 관리를 행할수 있도록 하여 그의 동결 및 부동작을 방지한다. 이 점에서, 상기 기능은, WINDOWS가 다른 애플리케이션에 의한 호출을 체크하고 원 115로 표시한 바와 같이 그의 필요성에 응답하도록 요망되기 전에 이와 같은 액션이 필수적인 55밀리초의 시간간격 이상을 취하도록 계획되는 지를 결정하도록 컴퓨터 프로그램내에 액션을 취하기 위해 필요한 시간을 모니터한다. 스크린상에 워드(들)을 표시하거나(즉, 워드 디스플레이 타임) 또는 워드들간에 페인트된 블랭크 스크린을 남기는(즉, 블랭킹 시간 간격) 동작은 55밀리초이상으로 되도록 계획되며, 이에 따라 프로그램이 WINDOWS에 대해 다른 애플리케이션에 의한 호출을 위해 체크되고 그의 요구에 대해 응답할수 있도록 한다. 그 후, 55밀리초 후 컴퓨터 프로그램으로 리턴하도록 제어하며 특정 동작을 행하기 위해 필요한 나머지 시간이 계산된다. 55밀리초 이상 되면 사이클을 반복한다.
필요한 시간이 55밀리초 이하로 결정되면, 그 기능은 서브루틴을 호출하여 원 114로 표시한 바와 같이 시간이 무조건 제로로 감소된다. 이는, 1밀리초를 보내는데 얼마나 많은 감소 사이클이 필요한지를 결정하는 사전 계산에 의해 가능하다. 이 서브루틴은 전술한 비클래스(non-class) 기능(23)들중 하나인Delay기능에 의해 유도된다. 적절한 시간이 제로로 감소된 후, 컴퓨터 프로그램 내에서의 다음 동작을 실행하기 위해 필요한 시간을 모니터하도록 기능이 복귀한다.
컴퓨터 프로그램 내에 제공된 다른 기능은 표시 워드들간의 스크린의 블랭킹 및 리프레싱이다. 통상적으로, 한 워드를 다른 워드뒤에 제공하면 시간에 따라 적절히 사라지는 음영 이미지를 남긴다. 이는, 분 레이트당 높은 워드에서 특히 현저하다. 이 이미지는 최후 워드의 이미지를 클리어하고 다음 워드의 화상을 수용하는데 필요한 시간 및 눈에 의해 야기되거나, 또는 스크린 기능의 결과로서 야기될수 있다. 스크린상에 워드 이미지가 "burn"될 때, 이를 단순히 존재하지 않도록 모두 함께 제거할 수는 없고 이미지의 페이딩에 시간이 걸린다. 워드들간의 시간은 음영 이미지가 적절히 사라질수 있도록 하기 위해 충분해야 하며 그외의 일반적인 화상은 얼룩으로 된다. 따라서, 이 문제를 해소하기 위해, 블랭크 스크린 디스플레이가 워드 프리젠테이션간에 도입했다. 블랭킹 시간 간격이 증가함에 따라, 포즈가 현저하게 되며 전체 이미지가 필요이상으로 블랭크 상태로 된다. 이는 워드들이 촤상의 워드로 인식되도록 어둡지 않게 나타나게한다. 그러나, 블랙킹 시간 간격이 작을 때, "happy medium"이 발견되어 워드 순서가 명백히 판독가능하도록 한다.
따라서, 컴퓨터 프로그램이, 'Word Display Time' 의 경과 즉시 배경과 동일한 전체 플래시 페인을 재페인팅하도록TcharonWin클래스의 일부를 형성하는 FlashLoop 기능을 유도하여, 상기 재페인팅된 페인이 블랭킹 시간 간격동안 표시된다.
본 발명의 관점은 상기 특정 실시에에 한정되지 않으며, 본 발명의 관점을 벗어나지 않고도 상기 발명의 실시예에 각종 변형 및 개량이 실시될수 있을 것이다. 이와 같은 변형 및 개선은 다음 기능 및/또는 특징을 포함한다.
1) 'SelectAll' 옵션을 사용하는 것 이외의, 메모리로 부터 텍스트의 한정된 블록의 클리어;
2) 브라우저 페인을 플래시 페인에 관한 스크린의 스케일가능한 비율로 하는 것;
3) 타겟 속도를 입력시키고, 명목상 판독율의 제공과 레이트를 제공하도록 컴퓨터 프로그램 작업을 갖는 능력;
4) 테스트의 장, 절 등의 말미에서의 각종 지연 또는 포즈의 선택;
5) 여러 블록을 한정하여 선택하고 그 후의 판독을 위한 능력;
6) 한정된 블록 또는 전체 판독 세션이 스테이터스 바 위에서 실시됨으로 인한 경과 시간을 표시하기 위한 수단;
7) 예컨대 워드수를 계산함으로써 텍스트의 블록내에 표시되는 불연속 부분의 정확한 위치를 모니터하여, 자재가 이미 판독된 경우 새로운 블록 한정을 표시하고 그의 판독을 실행함에 따라 분당 정확한 워드가 표시될수 있도록 하는 것;
8) 스테이터스 바 위에 표시되는 분 레이트당 현재 워드에서의 텍스트의 한정 블록의 완전한 판독을 위한 개략 시간의 표시 및 계산;
9) 텍스트와 병행하여 제공된 주석 수단;
10) 유저에 의해 입력된 파일에 있어서의 'Find' 및 'Go To'와 같은 기능;
11) 소정 시간 주기동안 분 레이트당 워드 및 판독된 워드들의 수를 계산하는 기능을 동시에 행하는 규정 시간동안의 판독;
12) 타이틀의 판독 및 드롭 메뉴가 액세스되는 시간동안 클럭 틱(tick)을 일시정지시키는 능력;
13) 아이콘상의 텍스트의 강조의 일시정지;
14) 컴퓨터 프로그램이 스키린에 표시되는 메인 윈도우가 아닐 때 판독을 일시정지시키는 능력;
15) 임의의 입력 파라미터를 구속하여 값들이 적절한 범위 및 문자형태내에 들어가게 하는 것;
16) 최종 파일 사이즈의 판독 능력;
17) "WORDPERFECT"(상표명), "AMI-PRO"(상표명), "WORD"(상표명) 등과 같은 다중 파일 포맷의 판독 능력;
18) 대형 워드 프로세싱 애플리케이션내에 호출되는 기능으로서의 전체 컴퓨터 프로그램을 채용하는 수단;
19) WINDOWS(등록상표명), 'Clipboard' 프로그램과 같은 임의의 개소로 부터 텍스트를 픽업하고 그를 판독하는 능력;
20) 스킴 판독 능력;
21) 스누즈 수단;
22) 음성 동작 설비; 및
23) 오토디스플레이, 또는 오토포즈 및 질의 디스플레이, 또는 이그노어(ignore) 디스플레이에 대한 유저 옵션을 갖는 그래픽 이미지의 처리 수단.

Claims (42)

  1. 디스플레이 매체에 텍스트 및/또는 그래픽 정보를 표시하기 위한 디스플레이 수단과;
    전자적으로 엔코드된 형태로 텍스트 및/또는 그래픽 정보를 수신하여 상기 디스플레이 매체상에 제공하기 위하여 이들을 처리하기 위한 처리수단과;
    상기 디스플레이 매체상에 텍스트 및/또는 그래픽 정보의 제공을 제어하기 위한 제어수단과;
    상기 처리수단과 제어수단을 동작시키는 제어신호를 입력하여 상기 처리수단과 제어수단에 대한 제어 파라미터를 변경하기 위한 입력수단으로 구성되며;
    상기 제어수단은, 규정된 블랭킹 시간 간격으로, 디스플레이 매체상의 동일한 위치에 상기 텍스트 및/또는 그래픽 정보의 불연속 및 연속된 부분을 위치시키며, 각 부분은 규정된 표시시간동안 상기 위치에 표시되는 것을 특징으로 하는 판독을 위한 텍스트 및/또는 그래픽 정보를 제공하기 위한 시스템.
  2. 제1항에 있어서, 상기 제어수단은 상기 위치내에 측방향으로 각각의 위치를 센터링하기 위한 센터링 수단을 포함하는 것을 특징으로 하는 판독을 위한 텍스트 및/또는 그래픽 정보를 제공하기 위한 시스템.
  3. 제1항 또는 제2항에 있어서, 상기 제어수단은 텍스트 및/또는 그래픽 정보의 제공을 위해 디스플레이 매체의 전체적인 레이아웃과 시스템의 시각적인 제어속성를 정의하기 위한 어플리케이션 수단을 포함하는 것을 특징으로 하는 판독을 위한 텍스트 및/또는 그래픽 정보를 제공하기 위한 시스템.
  4. 제3항에 있어서, 상기 어플리케이션 수단은 상기 제어수단에 대한 제어 파라미터에 직접적으로 응답하여 특정 제어 파라미터의 설정과 입력수단으로부터 제어신호의 입력에 따라 상기 전체적인 레이아웃 내에 텍스트 및/또는 그래픽 정보를 제공하는 특수한 특징을 정의하고 지정하기 위한 특정 제어기능을 불러오는 것을 특징으로 하는 판독을 위한 텍스트 및/또는 그래픽 정보를 제공하기 위한 시스템.
  5. 제3항 또는 제4항에 있어서, 상기 제어수단은 텍스트 및/또는 그래픽 정보가 제공되는 일 또는 그 이상의 팬으로 상기 전체적인 레이아웃을 배열하기 위한 패닝수단을 포함하는 것을 특징으로 하는 판독을 위한 텍스트 및/또는 그래픽 정보를 제공하기 위한 시스템.
  6. 제5항에 있어서, 상기 패닝 수단은 선택적으로 상기 시각적 레이아웃을 플래시 팬과 브라우저 팬으로 분할하고, 상기 플래시 팬은 상기 위치를 포함하며, 상기 브라우저 팬은 상기 불연속 부분이 추출된 상기 텍스트 및/또는 그래픽 정보의 더 큰 부분을 위치시키기 위한 영역을 포함하는 것을 특징으로 하는 판독을 위한 텍스트 및/또는 그래픽 정보를 제공하기 위한 시스템.
  7. 제6항에 있어서, 상기 제어수단은 상기 브라우저 팬내에 상기 더 큰 부분의 제공을 자동으로 화면이동하며 상기 브라우저 팬내에 상기 불연속 부분에 대응하는 텍스트 및/또는 그래픽 정보를 제공하고 있는 상기 더 큰 부분의 행을 센터링하기 위한 센터링 스크롤링 수단을 포함하는 것을 특징으로 하는 판독을 위한 텍스트 및/또는 그래픽 정보를 제공하기 위한 시스템.
  8. 제6항 또는 제7항에 있어서, 상기 패닝수단은 상기 브라우저 팬 내에 텍스트 및/또는 그래픽 정보를 강조하기 위한 강조수단을 포함하는 것을 특징으로 하는 판독을 위한 텍스트 및/또는 그래픽 정보를 제공하기 위한 시스템.
  9. 전항중 어느 한항에 있어서, 상기 제어수단은 상기 규정된 블랭킹 시간 및 상기 규정된 표시시간동안 제어 파라미터를 설정하기 위한 지연수단을 포함하는 것을 특징으로 하는 판독을 위한 텍스트 및/또는 그래픽 정보를 제공하기 위한 시스템.
  10. 전항중 어느 한항에 있어서, 상기 제어수단은 상기 불연속 부분에 대한 제어 파라미터를 설정하기 위한 부분선택수단을 포함하는 것을 특징으로 하는 판독을 위한 텍스트 및/또는 그래픽 정보를 제공하기 위한 시스템.
  11. 제6항에 대한 종속항으로서 전항중 어느 한항에 있어서, 상기 제어수단은 상기 플래시 팬에 비례하여 브라우저 팬과 플래시 팬 모두를 포함하는 윈도우의 환산가능한 비율로 상기 브라우저 팬을 변환하기 위한 팬환산수단을 포함하는 것을 특징으로 하는 판독을 위한 텍스트 및/또는 그래픽 정보를 제공하기 위한 시스템.
  12. 전항중 어느 한항에 있어서, 상기 제어수단은 상기 시간 간격 마다 스캐닝되고 있는 텍스트 및/또는 그래픽 정보의 점진적인 탤리를 계산하여 비쥬얼 레이아웃에 이를 표시하기 위한 스캐닝속도수단을 포함하는 것을 특징으로 하는 판독을 위한 텍스트 및/또는 그래픽 정보를 제공하기 위한 시스템.
  13. 전항중 어느 한항에 있어서, 상기 제어수단은 상기 제어수단의 기능 및 다른 제어 파라미터의 동작과 동시에 독립적으로 설정 가능한 제어 파라미터의 일부를 변화시키기 위한 제어 파라미터 변경수단을 포함하는 것을 특징으로 하는 판독을 위한 텍스트 및/또는 그래픽 정보를 제공하기 위한 시스템.
  14. 제13항에 있어서, 상기 제어 파라미터 변경수단은 제어/연속방식으로 설정된 후에 상기 규정된 지연시간동안 제어 파라미터를 변경하는 상기 지연수단과 상호 작용을 하는 것을 특징으로 하는 판독을 위한 텍스트 및/또는 그래픽 정보를 제공하기 위한 시스템.
  15. 제6항에 종속된 전술한 항중 어느 한항에 있어서, 상기 제어수단은 상기 규정된 표시 시간의 경과직후 규정된 블랭킹 시간의 전체 기간동안 상기 플래시 팬의 배경색과 동일한 색으로 전체 플래시 팬을 다시 그리기 위한 플래시 팬 리페인팅수단을 포함하는 것을 특징으로 하는 판독을 위한 텍스트 및/또는 그래픽 정보를 제공하기 위한 시스템.
  16. 전항중 어느 한항에 있어서, 상기 처리수단은 멀티태스킹, 윈도우 기능을 포함하는 그래픽 사용자 인터페이스를 갖는 마이크로컴퓨터인 것을 특징으로 하는 판독을 위한 텍스트 및/또는 그래픽 정보를 제공하기 위한 시스템.
  17. 제16항에 있어서, 상기 제어수단은 수행된 기능의 예상되는 경과된 시간을 모니터하여 상기 멀티태스킹 윈도우 기능으로부터 그리고 이에 대한 제어의 양도와 반환을 조정하기 위한 시간 관리수단을 포함하는 것을 특징으로 하는 판독을 위한 텍스트 및/또는 그래픽 정보를 제공하기 위한 시스템.
  18. 제17항에 있어서, 상기 시간 관리수단은 시스템의 기능을 수행하는데 필요한 시간을 모니터하며,현재 기능이 상기 멀티태스킹 윈도우 기능에 의해 이러한 기능에 허용된 필요 시간 인터벌 보다 더길게 스케즐이 잡혀 있는 지를 판단하고; 허용된 필요 시간 인터벌 보다 더길게 스케즐이 잡혀 있는 현재의 현재의 기능을 판단하는 것에 응답하여, 상기 시간 관리수단은 상기 멀티태스킹 윈도우 기능에 대한 시스템의 제어를 양도하고 상기 멀티태스킹 윈도우 기능으로부터 리턴된 후에 상기 제어를 회복하며, 상기 리턴에 대하여 상기 시간 관리수단은 현재 기능을 수행하는 잔류시간을 계산하고 만약 요구시간 기능보다 더큰 경우 상기 멀티태스킹 윈도우 기능에 대한 상기 제어의 양도를 반복하며; 상기 요구시간 인터벌 보다 작게 스케줄된 현재 기능을 판단하는 것에 응답하여 상기 시간 관리수단은 기능이 완전하게 될때 까지 시간을 조건없이 감소시켜 다음번 기능을 모니터하는 것을 특징으로 하는 판독을 위한 텍스트 및/또는 그래픽 정보를 제공하기 위한 시스템.
  19. 제16항 내지 제18항 중 어느 한항에 있어서, 상기 제어수단은 메인 소오스 코드 파일, 헤더 파일, 자원 파일 및 자원 헤더 파일을 포함하는 다수의 소오스 파일의 컴파일로 구성되는 컴퓨터 프로그램이며, 상기 소오스 파일은 상기 컴퓨터에 일 이상의 규정된 다이나믹 링크 라이브러리와 함께 실행하기 위한 실행파일을 형성하는 것을 특징으로 하는 판독을 위한 텍스트 및/또는 그래픽 정보를 제공하기 위한 시스템.
  20. 전항중 어느 한항에 있어서, 상기 제어수단은 각각 규정된 클래스에 기능을 불러오는 메세지를 송신하기 위한 대응하는 가속기를 갖는 메뉴 아이템에 의해 동작되는 컴퓨터 프로그램이며, 상기 규정된 클래스는:
    1) 상기 컴퓨터 프로그램에 대한 어플리케이션과 상기 브라우저 팬과 플래시 팬을 보유하는 기능에 대한 사례를 생성하고;
    2) 상기 디스플레이수단에 표시하기 위하여 상기 브라우저 팬과 플래시 팬을 보유하며;
    3) 상기 입력수단으로부터 상기 플래시 팬을 동작시키기 위한 각종 지연속도를 구하고;
    4) 상기 입력수단으로부터 상기 플래시 팬의 플래시당 텍스트 및/또는 그래픽 정보의 불연속 아이템 수를 구하며;
    5) 상기 텍스트 및/또는 그래픽 정보의 블록 선택을 식별하는 오프셋을 기억하고 상기 브라우저 팬에 이를 센터링하고;
    6) 상기 플래시 팬에 텍스트 및/또는 그래픽 정보의 표시를 관리하며;
    7) 상기 부분을 구성하기 위하여 텍스트 및/또는 그래픽 정보의 불연속 아이템의 규정된 수를 표시하는 것 중에서 하나 이상의 기능을 포함하는 것을 특징으로 하는 판독을 위한 텍스트 및/또는 그래픽 정보를 제공하기 위한 시스템.
  21. 제20항에 있어서, 상기 기능은 더욱이 전항중 어느 한항에 있어서 상기 제어수단에 의해 제공된 기능에 대응하는 기능을 불러올 수 있으며, 상기 기능은 상기 센터링 수단, 어플리케이션수단, 패닝수단, 센터링 스크롤링수단, 강조수단, 지연수단, 부분 선택수단, 팬스케일링수단, 스캐닝 속도수단, 제어 파라미터 변경수단, 플래시 팬 리페인팅수단 및 시간 관리수단으로 구성되는 것을 특징으로 하는 판독을 위한 텍스트 및/또는 그래픽 정보를 제공하기 위한 시스템.
  22. 텍스트 및/또는 그래픽 정보의 불연속 및 연속된 부분을 선택하는 단계와;
    디스플레이 매체의 동일한 위치에 상기 부분들을 순차적으로 표시하는 단계와;
    규정된 표시시간 동안 상기 위치에 거의 순간적으로 각각의 불연속 및 연속된 부분의 전체 부분을 표시하는 단계로 구성되는 것을 특징으로 하는 판독을 위한 텍스트 및/또는 그래픽 정보를 제공하기 위한 방법.
  23. 제22항에 있어서, 상기 위치를 측방향으로 각각 상기 부분을 센터링하는 단계를 포함하는 것을 특징으로 하는 판독을 위한 텍스트 및/또는 그래픽 정보를 제공하기 위한 방법.
  24. 제22항 또는 제23항에 있어서, 특정 제어 파라미터의 설정에 따라 디스플레이 매체에 표시하기 위한 전체 레이아웃 내에 텍스트 및/또는 그래픽 정보를 제공하는 특수한 특징을 정의하고 지정하는 단계를 포함하는 것을 특징으로 하는 판독을 위한 텍스트 및/또는 그래픽 정보를 제공하기 위한 방법.
  25. 제24항에 있어서, 텍스트 및/또는 그래픽 정보가 규정된 하나 이상의 팬으로 전체의 레이아웃을 배열하는 단계를 포함하는 것을 특징으로 하는 판독을 위한 텍스트 및/또는 그래픽 정보를 제공하기 위한 방법.
  26. 제25항에 있어서, 상기 비쥬얼 레이아웃을 플래시 팬과 브라우저 팬으로 선택적으로 분할하고, 상기 플래시 팬은 상기 위치를 포함하며, 상기 브라우저 팬은 상기 불연속 부분이 추출된 상기 텍스트 및/또는 그래픽 정보의 더 큰 부분을 위치시키기 위한 영역을 포함하는 것을 특징으로 하는 판독을 위한 텍스트 및/또는 그래픽 정보를 제공하기 위한 방법.
  27. 제26항에 있어서, 상기 브라우저 팬내에 상기 더 큰 부분의 제공을 자동으로 화면이동하며 상기 브라우저 팬내에 상기 불연속 부분에 대응하는 텍스트 및/또는 그래픽 정보를 제공하고 있는 상기 더 큰 부분의 행을 센터링하는 단계를 포함하는 것을 특징으로 하는 판독을 위한 텍스트 및/또는 그래픽 정보를 제공하기 위한 방법.
  28. 제26항 또는 제27항에 있어서, 상기 브라우저 팬내에 텍스트 및/또는 그래픽 정보를 강조하기 위한 강조수단을 포함하는 것을 특징으로 하는 판독을 위한 텍스트 및/또는 그래픽 정보를 제공하기 위한 방법.
  29. 제22항 내지 제28항중 어느 한항에 있어서, 상기 규정된 표시시간동안 제어 파라미터를 설정하는 단계를 포함하는 것을 특징으로 하는 판독을 위한 텍스트 및/또는 그래픽 정보를 제공하기 위한 방법.
  30. 제22항 내지 제29항중 어느 한항에 있어서, 상기 불연속부에 대한 제어 파라미터를 설정하는 단계를 포함하는 것을 특징으로 하는 판독을 위한 텍스트 및/또는 그래픽 정보를 제공하기 위한 방법.
  31. 제26항에 대한 종속항으로서 제22항 내지 제30항중 어느 한항에 있어서, 상기 플래시 팬에 비례한 시각 레이아웃의 축적비율로 브라우저 팬을 변환하는 단계를 포함하는 것을 특징으로 하는 판독을 위한 텍스트 및/또는 그래픽 정보를 제공하기 위한 방법.
  32. 제22항 내지 제31항중 어느 한항에 있어서, 상기 시간 인터벌 마다 스캐닝되고 있는 텍스트 및/또는 그래픽 정보의 점진적인 탤리를 계산하여 상기 비쥬얼 레이아웃에 이를 표시하는 단계를 포함하는 것을 특징으로 하는 판독을 위한 텍스트 및/또는 그래픽 정보를 제공하기 위한 방법.
  33. 제22항 내지 제32항중 어느 한항에 있어서, 기능 및 다른 제어 파라미터의 동작과 동시에 독립적으로 설정 가능한 제어 파라미터의 일부를 변화시키는 단계를 포함하는 것을 특징으로 하는 판독을 위한 텍스트 및/또는 그래픽 정보를 제공하기 위한 방법.
  34. 제33항에 있어서, 상기 제어/연속방식으로 설정된 후에 상기 규정된 블랭킹 시간 및 상기 규정된 지연시간동안 제어 파라미터를 변경하는 단계를 포함하는 것을 특징으로 하는 판독을 위한 텍스트 및/또는 그래픽 정보를 제공하기 위한 방법.
  35. 제26항에 종속된 제22항 내지 제34항중 어느 한항에 있어서, 상기 규정된 표시시간의 경과후 바로 규정된 블랭킹 시간의 전체 기간동안 상기 플래시 팬의 배경색과 동일한 색으로 전체의 플래시 팬을 다시 그리는 단계를 포함하는 것을 특징으로 하는 판독을 위한 텍스트 및/또는 그래픽 정보를 제공하기 위한 방법.
  36. 제22항 내지 제35항중 어느 한항에 있어서, 멀티태스킹 윈도우 기능과 결합하여 판독을 위한 텍스트 및/또는 그래픽 정보를 제공하는 단계를 포함하는 것을 특징으로 하는 판독을 위한 텍스트 및/또는 그래픽 정보를 제공하기 위한 방법.
  37. 제36항에 있어서, 상기 텍스트 및/또는 그래픽 정보의 제공에 의해 수행된 기능의 예상되는 경과된 시간을 모니터하여 상기 멀티태스킹 윈도우 기능으로부터 그리고 이에 대한 제어의 양도와 반환을 조정하는 단계를 포함하는 것을 특징으로 하는 판독을 위한 텍스트 및/또는 그래픽 정보를 제공하기 위한 방법.
  38. 제37항에 있어서, 기능을 수행하는데 필요한 시간을 모니터하며, 현재 기능이 상기 멀티태스킹 윈도우 기능에 의해 이러한 기능에 허용된 필요 시간 인터벌 보다 더길게 스케즐이 잡혀 있는 지를 판단하고, 필요 시간 인터벌 보다 더길게 스케즐이 잡혀 있는 현재의 현재의 기능을 판단하는 것에 응답하여, 상기 멀티태스킹 윈도우 기능에 대한 제어를 양도하고, 상기 멀티태스킹 윈도우 기능으로부터 제어를 회복하며, 상기 멀티태스킹 윈도우 기능으로부터 리턴에 대하여 현재 기능을 수행하는 잔류시간을 계산하고 만약 요구시간 기능보다 더큰 경우 상기 멀티태스킹 윈도우 기능에 대한 상기 제어의 양도를 반복하며, 상기 요구시간 인터벌 보다 작게 스케줄된 현재 기능을 판단하는 것에 응답하여 기능이 완전하게 될때 까지 시간을 조건없이 감소시켜 다음번 기능을 모니터하는 단계를 포함하는 것을 특징으로 하는 판독을 위한 텍스트 및/또는 그래픽 정보를 제공하기 위한 방법.
  39. 전술한 항중 어느 한항에 있어서, 각각 규정된 클래스에 기능을 불러오는 메세지를 송신하기 위한 대응하는 가속기를 갖는 메뉴 아이템에 의해 동작되는 단계를 포함하며, 상기 규정된 클래스는:
    가) 상기 컴퓨터 프로그램에 대한 어플리케이션과 상기 브라우저 팬과 플래시 팬을 보유하는 기능에 대한 사례를 생성하고;
    나) 상기 디스플레이수단에 표시하기 위하여 상기 브라우저 팬과 플래시 팬을 보유하며;
    다) 상기 입력수단으로부터 상기 플래시 팬을 동작시키기 위한 각종 지연속도를 구하고;
    라) 상기 입력수단으로부터 상기 플래시 팬의 플래시당 텍스트 및/또는 그래픽 정보의 불연속 아이템 수를 구하며;
    마) 상기 텍스트 및/또는 그래픽 정보의 블록 선택을 식별하는 오프셋을 기억하고 상기 브라우저 팬에 이를 센터링하고;
    바) 상기 플래시 팬에 텍스트 및/또는 그래픽 정보의 표시를 관리하며;
    사) 상기 부분을 구성하기 위하여 텍스트 및/또는 그래픽 정보의 불연속 아이템의 규정된 수를 표시하는 것 중에서 하나 이상의 기능을 포함하는 것을 특징으로 하는 판독에 대한 텍스트 및/또는 그래픽 정보를 제공하기 위한 방법.
  40. 제39항에 있어서, 상기 기능은 더욱이 제22항 내지 제40항중 어느 한항에 기재된 기능에 대응하는 기능을 불러올 수 있는 것을 특징으로 하는 판독을 위한 텍스트 및/또는 그래픽 정보를 제공하기 위한 방법.
  41. 전술한 것과 실질적으로 동일한 것을 특징으로 하는 판독을 위한 텍스트 및/또는 그래픽 정보를 제공하기 위한 시스템.
  42. 전술한 것과 실질적으로 동일한 것을 특징으로 하는 판독을 위한 텍스트 및/또는 그래픽 정보를 제공하기 위한 방법.
KR1019980701751A 1995-09-04 1996-09-04 판독 보조시스템 KR19990044503A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
AUPN5204 1995-09-04
AUPN5204A AUPN520495A0 (en) 1995-09-04 1995-09-04 Reading aid

Publications (1)

Publication Number Publication Date
KR19990044503A true KR19990044503A (ko) 1999-06-25

Family

ID=3789533

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980701751A KR19990044503A (ko) 1995-09-04 1996-09-04 판독 보조시스템

Country Status (20)

Country Link
US (2) US6113394A (ko)
EP (1) EP0852047B1 (ko)
JP (1) JP2000500243A (ko)
KR (1) KR19990044503A (ko)
CN (1) CN1148712C (ko)
AT (1) ATE245300T1 (ko)
AU (2) AUPN520495A0 (ko)
BG (1) BG102371A (ko)
BR (1) BR9610363A (ko)
CA (1) CA2231242A1 (ko)
CZ (1) CZ62098A3 (ko)
DE (1) DE69629120T2 (ko)
HU (1) HUP9900340A3 (ko)
IL (1) IL123555A0 (ko)
MX (1) MX9801739A (ko)
NO (1) NO980941L (ko)
NZ (1) NZ315986A (ko)
PL (1) PL325528A1 (ko)
TR (1) TR199800384T1 (ko)
WO (1) WO1997009704A1 (ko)

Families Citing this family (66)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AUPN520495A0 (en) * 1995-09-04 1995-09-28 Charon Holdings Pty Ltd Reading aid
DE19714443A1 (de) * 1997-04-08 1998-10-22 Eberhard Frost Automatische visuelle Textausgabe
US6931587B1 (en) * 1998-01-29 2005-08-16 Philip R. Krause Teleprompter device
US6457031B1 (en) * 1998-09-02 2002-09-24 International Business Machines Corp. Method of marking previously dictated text for deferred correction in a speech recognition proofreader
JP2000099441A (ja) * 1998-09-25 2000-04-07 Fujitsu Ltd 情報を調整して提示する情報提示装置および方法
US6324511B1 (en) * 1998-10-01 2001-11-27 Mindmaker, Inc. Method of and apparatus for multi-modal information presentation to computer users with dyslexia, reading disabilities or visual impairment
US7320105B1 (en) * 1998-12-01 2008-01-15 Intel Corporation Data display using multicolumn scrolling
SE515805C2 (sv) * 1998-12-23 2001-10-08 Tomas Dalstroem Anordning för att understödja läsning av en text från ett visningsorgan
EP1580962A3 (en) * 2000-02-21 2011-12-28 NTT DoCoMo, Inc. Information distributing method, information distributing system, information distributing server, mobile communication network system, and communication service providing method
US6515690B1 (en) * 2000-02-25 2003-02-04 Xerox Corporation Systems and methods providing an interface for navigating dynamic text
SE522895C2 (sv) 2000-03-29 2004-03-16 Tomas Dalstroem Arrangemang och förfarande i ett kommunikationsnät för att medhjälp av en registreringsenhet kontrollera hur mycket av en webbsida som en användare har läst
KR100524590B1 (ko) * 2000-08-04 2005-11-01 박규진 디스플레이 장치를 이용한 읽기 장치 및 그 방법
SE524403C2 (sv) * 2000-11-06 2004-08-03 Ericsson Telefon Ab L M System och metod för anpassningsbar RSVP-baserad textvisning
JP4308555B2 (ja) * 2003-03-10 2009-08-05 パナソニック株式会社 受信装置および情報閲覧方法
US20040253568A1 (en) * 2003-06-16 2004-12-16 Shaver-Troup Bonnie S. Method of improving reading of a text
US7882434B2 (en) * 2003-06-27 2011-02-01 Benjamin Slotznick User prompting when potentially mistaken actions occur during user interaction with content on a display screen
US7664770B2 (en) * 2003-10-06 2010-02-16 Lycos, Inc. Smart browser panes
CN100371889C (zh) * 2004-07-08 2008-02-27 腾讯科技(深圳)有限公司 一种在即时通讯工具软件中使用表情符号的方法
WO2006042292A2 (en) * 2004-10-12 2006-04-20 Freedom Scientific, Inc. Reading alerts and skim-reading system
US20060088805A1 (en) * 2004-10-27 2006-04-27 Narda Pitkethly Reading instruction system and method
US20060212789A1 (en) * 2005-01-13 2006-09-21 Cucoco Ltd Method to improve reading and skimming speed
US9275052B2 (en) 2005-01-19 2016-03-01 Amazon Technologies, Inc. Providing annotations of a digital work
US7527498B2 (en) * 2005-03-22 2009-05-05 Read Naturally Method and apparatus for timing reading
JP2006301978A (ja) * 2005-04-20 2006-11-02 Matsushita Electric Ind Co Ltd ウィンドウ枠構成情報を利用したインターネット端末装置、枠サーバ、情報システム及びブラウザの実行方法
US8418057B2 (en) * 2005-06-01 2013-04-09 Cambridge Reading Project, Llc System and method for displaying text
US8977636B2 (en) * 2005-08-19 2015-03-10 International Business Machines Corporation Synthesizing aggregate data of disparate data types into data of a uniform data type
US8271865B1 (en) * 2005-09-19 2012-09-18 Google Inc. Detection and utilization of document reading speed
US8082516B2 (en) * 2005-11-01 2011-12-20 Lycos, Inc. Preview panel
US8756057B2 (en) * 2005-11-02 2014-06-17 Nuance Communications, Inc. System and method using feedback speech analysis for improving speaking ability
US8694319B2 (en) * 2005-11-03 2014-04-08 International Business Machines Corporation Dynamic prosody adjustment for voice-rendering synthesized data
CN100440115C (zh) * 2006-01-26 2008-12-03 致伸科技股份有限公司 手持式电子装置
US9135339B2 (en) 2006-02-13 2015-09-15 International Business Machines Corporation Invoking an audio hyperlink
US20070238077A1 (en) * 2006-04-11 2007-10-11 Edward Strachar Interactive Reading Teaching Tool System
US20070294637A1 (en) * 2006-06-20 2007-12-20 Martin Renaud Grouped cascading user interface
US9672533B1 (en) 2006-09-29 2017-06-06 Amazon Technologies, Inc. Acquisition of an item based on a catalog presentation of items
US8725565B1 (en) 2006-09-29 2014-05-13 Amazon Technologies, Inc. Expedited acquisition of a digital item following a sample presentation of the item
WO2008051510A2 (en) * 2006-10-20 2008-05-02 Vubotics, Inc. System and method for analyzing and delivering information
US7865817B2 (en) 2006-12-29 2011-01-04 Amazon Technologies, Inc. Invariant referencing in digital works
US9318100B2 (en) 2007-01-03 2016-04-19 International Business Machines Corporation Supplementing audio recorded in a media file
CA2679094A1 (en) * 2007-02-23 2008-08-28 1698413 Ontario Inc. System and method for delivering content and advertisements
US9665529B1 (en) * 2007-03-29 2017-05-30 Amazon Technologies, Inc. Relative progress and event indicators
US7716224B2 (en) 2007-03-29 2010-05-11 Amazon Technologies, Inc. Search and indexing on a user device
US20080275810A1 (en) * 2007-04-03 2008-11-06 Musier Reiner F H Market depository for environmentally relevant items
US8990215B1 (en) 2007-05-21 2015-03-24 Amazon Technologies, Inc. Obtaining and verifying search indices
CN101344844B (zh) * 2007-07-12 2011-06-29 英业达股份有限公司 调整讯息停留时间的系统及其方法
EP2214086A4 (en) * 2007-11-20 2017-12-06 NEC Corporation Electronic sentence browsing device, electronic sentence browsing method, electronic sentence browsing program, and mobile telephone
US9087032B1 (en) 2009-01-26 2015-07-21 Amazon Technologies, Inc. Aggregation of highlights
US8832584B1 (en) 2009-03-31 2014-09-09 Amazon Technologies, Inc. Questions on highlighted passages
US8692763B1 (en) 2009-09-28 2014-04-08 John T. Kim Last screen rendering for electronic book reader
US8379801B2 (en) 2009-11-24 2013-02-19 Sorenson Communications, Inc. Methods and systems related to text caption error correction
US20120054672A1 (en) * 2010-09-01 2012-03-01 Acta Consulting Speed Reading and Reading Comprehension Systems for Electronic Devices
US9495322B1 (en) 2010-09-21 2016-11-15 Amazon Technologies, Inc. Cover display
US9028255B2 (en) 2010-10-06 2015-05-12 Dominic William Massaro Method and system for acquisition of literacy
US10019995B1 (en) 2011-03-01 2018-07-10 Alice J. Stiebel Methods and systems for language learning based on a series of pitch patterns
US11062615B1 (en) 2011-03-01 2021-07-13 Intelligibility Training LLC Methods and systems for remote language learning in a pandemic-aware world
US9158741B1 (en) 2011-10-28 2015-10-13 Amazon Technologies, Inc. Indicators for navigating digital works
US8918718B2 (en) * 2012-02-27 2014-12-23 John Burgess Reading Performance System Reading performance system
US8903174B2 (en) 2012-07-12 2014-12-02 Spritz Technology, Inc. Serial text display for optimal recognition apparatus and method
US20140189586A1 (en) 2012-12-28 2014-07-03 Spritz Technology Llc Methods and systems for displaying text using rsvp
US9552596B2 (en) 2012-07-12 2017-01-24 Spritz Technology, Inc. Tracking content through serial presentation
US9483109B2 (en) 2012-07-12 2016-11-01 Spritz Technology, Inc. Methods and systems for displaying text using RSVP
US9275017B2 (en) * 2013-05-06 2016-03-01 The Speed Reading Group, Chamber Of Commerce Number: 60482605 Methods, systems, and media for guiding user reading on a screen
US10453353B2 (en) 2014-12-09 2019-10-22 Full Tilt Ahead, LLC Reading comprehension apparatus
US20170061935A1 (en) * 2015-08-31 2017-03-02 Sap Se Adaptive message display duration
US10146758B1 (en) 2016-09-30 2018-12-04 Amazon Technologies, Inc. Distributed moderation and dynamic display of content annotations
CN112000905B (zh) * 2020-08-26 2023-12-08 连尚(北京)网络科技有限公司 信息的显示方法和装置

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3878327A (en) * 1973-10-17 1975-04-15 Westinghouse Electric Corp Television system for improving reading skills
US3906644A (en) * 1974-10-21 1975-09-23 Harold N Levinson Method of presenting reading material to dysmetric dyslexic-identified children
US3938139A (en) * 1974-12-30 1976-02-10 Young Communications Corporation Miniature display communicator
GB1476133A (en) * 1975-02-24 1977-06-10 Atkinson E Teaching aids
US4160242A (en) * 1977-06-28 1979-07-03 Fowler Gerald C Reading machine
US4636173A (en) * 1985-12-12 1987-01-13 Robert Mossman Method for teaching reading
FR2611961A1 (fr) * 1987-03-04 1988-09-09 Jollivet Lucien Enregistrement video, avec des textes enregistres a l'int ention de malvoyants
US5147205A (en) * 1988-01-29 1992-09-15 Gross Theodore D Tachistoscope and method of use thereof for teaching, particularly of reading and spelling
US5145375A (en) * 1990-02-20 1992-09-08 Rubio Rafael R Moving message learning system and method
US5233333A (en) * 1990-05-21 1993-08-03 Borsuk Sherwin M Portable hand held reading unit with reading aid feature
US5169342A (en) * 1990-05-30 1992-12-08 Steele Richard D Method of communicating with a language deficient patient
US5442742A (en) * 1990-12-21 1995-08-15 Apple Computer, Inc. Method and apparatus for the manipulation of text on a computer display screen
JP2525546B2 (ja) * 1992-09-08 1996-08-21 インターナショナル・ビジネス・マシーンズ・コーポレイション グラフィックリソ―ス・エディタ
US5385475A (en) * 1993-04-01 1995-01-31 Rauland-Borg Apparatus and method for generating and presenting an audio visual lesson plan
US5741136A (en) * 1993-09-24 1998-04-21 Readspeak, Inc. Audio-visual work with a series of visual word symbols coordinated with oral word utterances
US5392386A (en) * 1994-02-03 1995-02-21 Inter Hi-Tec Ag Method and apparatus for adding functionality to computer programs executing under graphical user interfaces
GB2287386A (en) * 1994-03-10 1995-09-13 Ibm Method of displaying text having improved useability
US5542088A (en) * 1994-04-29 1996-07-30 Intergraph Corporation Method and apparatus for enabling control of task execution
AUPN520495A0 (en) * 1995-09-04 1995-09-28 Charon Holdings Pty Ltd Reading aid

Also Published As

Publication number Publication date
NO980941L (no) 1998-04-30
ATE245300T1 (de) 2003-08-15
HUP9900340A2 (hu) 1999-05-28
NZ315986A (en) 2000-02-28
TR199800384T1 (xx) 1998-05-21
JP2000500243A (ja) 2000-01-11
MX9801739A (es) 1998-11-29
IL123555A0 (en) 1998-10-30
EP0852047A4 (en) 1998-12-02
DE69629120T2 (de) 2004-04-22
BR9610363A (pt) 1999-12-21
US6113394A (en) 2000-09-05
AU6782096A (en) 1997-03-27
EP0852047B1 (en) 2003-07-16
CZ62098A3 (cs) 1998-10-14
NO980941D0 (no) 1998-03-04
HUP9900340A3 (en) 1999-11-29
AUPN520495A0 (en) 1995-09-28
WO1997009704A1 (en) 1997-03-13
EP0852047A1 (en) 1998-07-08
PL325528A1 (en) 1998-08-03
CN1148712C (zh) 2004-05-05
CA2231242A1 (en) 1997-03-13
BG102371A (en) 1998-12-30
CN1200826A (zh) 1998-12-02
DE69629120D1 (de) 2003-08-21
US6568939B1 (en) 2003-05-27

Similar Documents

Publication Publication Date Title
KR19990044503A (ko) 판독 보조시스템
US5872566A (en) Graphical user interface method and system that provides an inertial slider within a scroll bar
US5388993A (en) Method of and system for demonstrating a computer program
US6388665B1 (en) Software platform having a real world interface with animated characters
US6252594B1 (en) Method and system for aiding a user in scrolling through a document using animation, voice cues and a dockable scroll bar
US8140971B2 (en) Dynamic and intelligent hover assistance
US5694610A (en) Method and system for editing and formatting data in a dialog window
US5465358A (en) System for enhancing user efficiency in initiating sequence of data processing system user inputs using calculated probability of user executing selected sequences of user inputs
US5583981A (en) Method and system for changing the size of edit controls on a graphical user interface
US5751283A (en) Resizing a window and an object on a display screen
US6583798B1 (en) On-object user interface
US5917486A (en) System and method for client program control of a computer display cursor
US6542163B2 (en) Method and system for providing relevant tips to a user of an application program
US5619639A (en) Method and apparatus for associating an image display area with an application display area
US20050060719A1 (en) Capturing and processing user events on a computer system for recording and playback
EP0538167A2 (en) Non-linear scroll bar
US20080307308A1 (en) Creating Web Clips
US20050246619A1 (en) User interface for dynamic presentation of text
US20080270591A1 (en) Event Notification
JP2000200128A (ja) ウィジェット注釈付け方法、ウィジェットのディスプレイ方法、ウィジェット注釈付けシステム、及びレンダリングシステム
JP2006018845A (ja) ソフトウェアメモ
US5816820A (en) Simulation generation system
JP2001195165A (ja) Gui制御方法及び装置並びに記録媒体
US5802531A (en) Method and system for embedding parts of documents and synchronizing multiple views thereof
Foxall Visual Basic 2015 in 24 hours, Sams teach yourself

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid