Q&A
HOME
Tips & Tech
Q&A
Discuss
Download
자유게시판
홍보 / 광고
구인 / 구직
LOGIN
회원가입
memo란에서 10자가 입력되면 자동으로 다음줄로 이동할수 있는방법?
안녕하세요
memo란에서 10자가 입력되면 자동으로 다음줄로 이동할수 있는방법?
두번째란에서도 10자가 입력되면 다음줄로 이동하고 싶은데....계속해서
혹시 아는분 계세요.
1
COMMENTS
김영대
•
1999.11.18 23:29
nektar wrote:
> 안녕하세요
> memo란에서 10자가 입력되면 자동으로 다음줄로 이동할수 있는방법?
> 두번째란에서도 10자가 입력되면 다음줄로 이동하고 싶은데....계속해서
> 혹시 아는분 계세요.
Memo 제어에 관한 다른 팁을 원하시면
제 홈페이지(http://myhome.shinbiro.com/~cozykyd/index.htm)의
"Delphi Tip" 에서 "Memo" 키워드로 검색해 보세요
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
Memo1: TMemo;
procedure Memo1KeyPress(Sender: TObject; var Key: Char);
procedure Memo1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
private
{ Private declarations }
public
{ Public declarations }
end;
const
MAX_ROW = 5; // 최대행수
MAX_COL = 25; // 최대컬럼수
var
Form1: TForm1;
implementation
{$R *.DFM}
// TMemo의 WordWrap 프로퍼티는 False 로 설정
procedure TForm1.Memo1KeyPress(Sender: TObject; var Key: Char);
var
line, col: Integer;
begin
with Sender as TMemo do
begin
line := Perform(EM_LINEFROMCHAR, SelStart, 0);
col := SelStart - Perform(EM_LINEINDEX, line, 0);
if key = #8 then
begin
{ Do not allow backspace if caret is on first column and
deleting the linebreak of the line in front would result
in a line of more than MAX_COL characters. Damn inconvenient
for the user but specs are specs... }
if (col = 0) and (line > 0) then
begin
if (Length(lines[line])+Length(lines[line-1])) > MAX_COL then
Key := #0;
end; { If }
end { If }
else if key in [#13,#10] then
begin
{ Handle hard linebreaks via Enter or Ctrl-Enter }
if lines.count >= MAX_ROW then
begin
{ Max number of lines reached or exceeded, set caret
to start of next line or this line, if on the last. }
key := #0;
if line = (MAX_ROW-1) then
SelStart := Perform(EM_LINEINDEX, line,0)
else
SelStart := Perform(EM_LINEINDEX, line+1,0);
end; { If }
end { If }
else if Key >= ' ' then
begin
{ Do swallow key if current line has reached limit. }
if Length( lines[line] ) >= MAX_COL then
Key := #0;
end; { If }
end; { With }
if Key = #0 then
Beep;
end;
procedure TForm1.Memo1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
var
line, col: Integer;
begin
if Key = VK_DELETE then
with Sender as TMemo do
begin
line := Perform(EM_LINEFROMCHAR, SelStart, 0);
col := SelStart - Perform(EM_LINEINDEX, line, 0);
if col = Length(lines[line]) then
if (line < (MAX_ROW-1)) and ((Length(lines[line]) + Length(lines[line+1])) > MAX_COL) then
begin
key := 0;
Beep
end;
end;
end;
end.
0
0
삭제
수정
댓글
(NOTICE) You must be
logged in
to comment on this post.
긴급
•
1999.11.19 07:03
2
COMMENTS
/
0
LIKES
sql문에서 데이터 삽입하려면?
홍세비
•
1999.11.20 05:23
긴급 wrote: > 너무 초보적인 질문이라서 부끄럽지만 질문할께요. > sql문으로 데이터 삽입하려면 어떻게...
안재현
•
1999.11.19 08:00
긴급 wrote: > 너무 초보적인 질문이라서 부끄럽지만 질문할께요. > sql문으로 데이터 삽입하려면 어떻게...
배선경
1999.11.19 06:27
0
COMMENTS
/
0
LIKES
빠른 메뉴와 레지스트리
강성만
•
1999.11.19 06:21
1
COMMENTS
/
0
LIKES
TQuery 에서 자료를 수정=>Update
김영대
•
1999.11.19 18:31
강성만 wrote: > 안녕하세요 > Edit 컴포넌트를 사용하여 자료를 입력받거 있거든요 그런데... > > va...
임형호
1999.11.19 06:05
0
COMMENTS
/
0
LIKES
Re: append 하려고 버튼 클릭시
안재현
•
1999.11.19 05:15
1
COMMENTS
/
0
LIKES
Re: append 하려고 버튼 클릭시
박성훈
•
1999.11.19 19:53
안재현 wrote: > 나원용 wrote: > > 안녕하세요? > > > > 사용자가 버튼(Tbutton)을 클릭하였을 때 ...
이영근
•
1999.11.19 03:08
2
COMMENTS
/
0
LIKES
파라독스테이블에서 데이타 Lock을걸었는데 비밀번호를 알려면?
이정욱
•
1999.11.19 05:57
이곳 한델에 락을 푸는 풀그림이 있습니다. 확인해 보세요. 이영근 wrote: > 제목 그데로 데이타에 Lo...
지나가는이
•
1999.11.19 05:22
하이텔의 VTOOL동호회의 자료실에 암호걸린 파라독스테이블을 볼 수 있는 유틸리티가 있습니다. 이영근 ...
강민주
•
1999.11.19 02:45
3
COMMENTS
/
0
LIKES
중복 if에 대한 질문입니다.
염재민
•
1999.11.20 11:39
강민주 wrote: > 안녕하세요. > 빌더소스를 델파이 바꾸면서 이상하게 않되는 부분이 있어서 > 이렇게 ...
안재현
•
1999.11.19 05:10
강민주 wrote: > 안녕하세요. > 빌더소스를 델파이 바꾸면서 이상하게 않되는 부분이 있어서 > 이렇게 ...
TeamX
•
1999.11.19 03:47
제가 보기에는 굉장힌 찾기 힘든 버그인것 같습니다..... 흠... 아무래도 제가 보기에는 서점에 가셔서 ...
까비
•
1999.11.19 02:42
1
COMMENTS
/
0
LIKES
inc 파일관하여
김영대
•
1999.11.19 18:34
까비 wrote: > inc 파일이 include file 듯 싶은데 > inc 파일에 대해 참고할만 사이트나 책좀 > 아니...
정종구
•
1999.11.19 02:10
5
COMMENTS
/
0
LIKES
sql문이 안먹어요..
안재현
•
1999.11.19 02:25
정종구 wrote: > 안녕하세요.. > 아주 이상한 현상에 말려서.. > > 예를 들자면.. > > query1.clo...
정종구
•
1999.11.19 03:13
안재현 wrote: > 정종구 wrote: > > 안녕하세요.. > > 아주 이상한 현상에 말려서.. > > > > 예를 ...
안재현
•
1999.11.19 05:13
정종구 wrote: > > 안재현 wrote: > > 정종구 wrote: > > > 안녕하세요.. > > > 아주 이상한 현상에 ...
정종구
•
1999.11.19 18:59
안재현 wrote: > 정종구 wrote: > > > > 안재현 wrote: > > > 정종구 wrote: > > > > 안녕하세요.. ...
정종구
•
1999.11.19 18:59
안재현 wrote: > 정종구 wrote: > > > > 안재현 wrote: > > > 정종구 wrote: > > > > 안녕하세요.. ...
이희선
1999.11.19 01:49
0
COMMENTS
/
0
LIKES
JPG화일을 Open하는 방법에 대하여...
델초
1999.11.19 01:28
0
COMMENTS
/
0
LIKES
델집1.5를 다운은 받았는데...쩝
김남규
•
1999.11.19 00:54
1
COMMENTS
/
0
LIKES
Windows NT 종료하기
구창민
•
1999.11.19 01:00
김남규 wrote: > > WINDOWS NT 4.0 에서 NT 를 프로그램 내에서 종료 시키고 싶은데 > > 방법을 없...
psb300
•
1999.11.19 00:29
1
COMMENTS
/
0
LIKES
퀵리포트에서 삼각형도형그리기
구창민
•
1999.11.19 01:08
psb300 wrote: > 안녕하십니까? > 퀵리포트에서 도형을 그리다 보니 삼각형 도형이 없던데 > 해결 방안...
이경석
1999.11.19 00:22
0
COMMENTS
/
0
LIKES
RDS 를 이용한 DB 처리
정연섭
•
1999.11.18 23:32
1
COMMENTS
/
0
LIKES
Quick Report에서 세로선이 한번밖에 안나와요...
안재현
•
1999.11.19 01:59
정연섭 wrote: > 매일 이렇게 질문만 하는군요.. > 어젠가는 나도 대답할수 있는 그날이 오겠죠.. > >...
nektar
•
1999.11.18 23:18
1
COMMENTS
/
0
LIKES
memo란에서 10자가 입력되면 자동으로 다음줄로 이동할수 있는방법?
안녕하세요 memo란에서 10자가 입력되면 자동으로 다음줄로 이동할수 있는방법? 두번째란에서도 10자가 입력되면 다음줄로 이동하고 싶은데....계속해서 혹시 아는분 계세요.
김영대
•
1999.11.18 23:29
nektar wrote: > 안녕하세요 > memo란에서 10자가 입력되면 자동으로 다음줄로 이동할수 있는방법? > 두...
류한규
•
1999.11.18 22:06
1
COMMENTS
/
0
LIKES
화면 깜박임 제거에 대하여
TeamX
•
1999.11.18 22:18
폼의 WM_ERASEBKGND 를 가로채면 안될것 같고..... 제가 보기에는 판넬의 WM_ERASEBKGND 메세지를 가로...
chobo
•
1999.11.18 21:50
1
COMMENTS
/
0
LIKES
라디오 버튼..
홍순용
•
1999.11.18 22:47
다른폼에 있는 버튼을 사용하려면 버튼 앞에 폼이름을 스세요. 예를 들어 form2에 있는 라디오버튼 체크...
용환종
1999.11.18 21:50
0
COMMENTS
/
0
LIKES
DBGrid에 잇는 내용을 EXCEL로 변환
이선진
•
1999.11.18 21:34
1
COMMENTS
/
0
LIKES
MIDAS 애플리케이션 서버 hang up 관련 질문
김영대
•
1999.11.18 23:11
이선진 wrote: > MIDAS Socket Connection을 이용하여 3-tier 시스템을 구성하였는데 > Client 쪽에서 잘...
nektar
1999/11/18 23:18
Views
326
Likes
0
Comments
1
Reports
0
Tag List
수정
삭제
목록으로
한델 로그인 하기
로그인 상태 유지
아직 회원이 아니세요? 가입하세요!
암호를 잊어버리셨나요?
> 안녕하세요
> memo란에서 10자가 입력되면 자동으로 다음줄로 이동할수 있는방법?
> 두번째란에서도 10자가 입력되면 다음줄로 이동하고 싶은데....계속해서
> 혹시 아는분 계세요.
Memo 제어에 관한 다른 팁을 원하시면
제 홈페이지(http://myhome.shinbiro.com/~cozykyd/index.htm)의
"Delphi Tip" 에서 "Memo" 키워드로 검색해 보세요
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
Memo1: TMemo;
procedure Memo1KeyPress(Sender: TObject; var Key: Char);
procedure Memo1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
private
{ Private declarations }
public
{ Public declarations }
end;
const
MAX_ROW = 5; // 최대행수
MAX_COL = 25; // 최대컬럼수
var
Form1: TForm1;
implementation
{$R *.DFM}
// TMemo의 WordWrap 프로퍼티는 False 로 설정
procedure TForm1.Memo1KeyPress(Sender: TObject; var Key: Char);
var
line, col: Integer;
begin
with Sender as TMemo do
begin
line := Perform(EM_LINEFROMCHAR, SelStart, 0);
col := SelStart - Perform(EM_LINEINDEX, line, 0);
if key = #8 then
begin
{ Do not allow backspace if caret is on first column and
deleting the linebreak of the line in front would result
in a line of more than MAX_COL characters. Damn inconvenient
for the user but specs are specs... }
if (col = 0) and (line > 0) then
begin
if (Length(lines[line])+Length(lines[line-1])) > MAX_COL then
Key := #0;
end; { If }
end { If }
else if key in [#13,#10] then
begin
{ Handle hard linebreaks via Enter or Ctrl-Enter }
if lines.count >= MAX_ROW then
begin
{ Max number of lines reached or exceeded, set caret
to start of next line or this line, if on the last. }
key := #0;
if line = (MAX_ROW-1) then
SelStart := Perform(EM_LINEINDEX, line,0)
else
SelStart := Perform(EM_LINEINDEX, line+1,0);
end; { If }
end { If }
else if Key >= ' ' then
begin
{ Do swallow key if current line has reached limit. }
if Length( lines[line] ) >= MAX_COL then
Key := #0;
end; { If }
end; { With }
if Key = #0 then
Beep;
end;
procedure TForm1.Memo1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
var
line, col: Integer;
begin
if Key = VK_DELETE then
with Sender as TMemo do
begin
line := Perform(EM_LINEFROMCHAR, SelStart, 0);
col := SelStart - Perform(EM_LINEINDEX, line, 0);
if col = Length(lines[line]) then
if (line < (MAX_ROW-1)) and ((Length(lines[line]) + Length(lines[line+1])) > MAX_COL) then
begin
key := 0;
Beep
end;
end;
end;
end.