Q&A
HOME
Tips & Tech
Q&A
Discuss
Download
자유게시판
홍보 / 광고
구인 / 구직
LOGIN
회원가입
강제로 해상도 바꾸기
제목 그대로
어떤 버튼을 클릭했을 경우 해상도를 바꿀수 있는
방법은 없는지요...
예) 800 * 600 모드 인 모니터를
강제로 1024 * 768 로 바꾸어 버리기.............
읽어 주셔서 감사 합니다,. 꾸벅~~
1
COMMENTS
강인규
•
2000.06.28 23:49
허일학님의 자료중 일부를 발췌합니다.
자세한건 허일학님의 홈이나 자료실의 xProject프로그램을 참고하시기 바랍니다.
http://myhome.hananet.net/~memogi/
type에 아래와 같이 선언하시구요
{해상도변경관련변수}
type
PdmArray = ^TDmArray;
TDmArray = array[0..0] of TDeviceMode;
Form Create Event
{--------해상도변경관련---------------------------시작-------------------------}
procedure TF107.FormCreate(Sender: TObject);
var
MyPC_DC: THandle; // Display context
MyPC_Bits: Integer; // Bits per pixel
MyPC_HRes: Integer; // Horizontal resolution
MyPC_VRes: Integer; // Vertical resolution
i: integer;
dm : TDeviceMode;
begin
MyPC_DC := Canvas.Handle;
MyPC_Bits := GetDeviceCaps(MyPC_DC, BITSPIXEL); // 각 pixel당 칼러의 비트수
MyPC_HRes := GetDeviceCaps(MyPC_DC, HORZRES); // 화면의 폭(Width)의 비트수
MyPC_VRes := GetDeviceCaps(MyPC_DC, VERTRES); // 화면의 높이(Height)의 비트수
// 내 PC의 video mode 정보
// Label1.Caption := Format('%d bits, %d x %d',[MyPC_Bits, MyPC_HRes, MyPC_VRes]);
Label1.Caption := Format('%d x %d',[MyPC_HRes, MyPC_VRes]);
// 현재 내 PC가 지원할 수 있는 video mode 를 구한다
Memo1.Lines.Clear;
NumModes := 0; // 첫번째 video mode의 번호(0번부터 시작)
while True do
begin
// nil 이면 현재 표시장치(display device)를 나타냅니다
if not EnumDisplaySettings(nil, NumModes, dm) then // False이면 더이상 없다
Break;
Memo1.Lines.Add('Mode ' +
IntToStr(NumModes) + ': ' +
IntToStr(dm.dmBitsPerPel) + ' Bits Per Pixel ' +
IntToStr(dm.dmPelsWidth) + ' x ' +
IntToStr(dm.dmPelsHeight));
Inc(NumModes); // 다음번 video mode의 번호를 나타냅니다
end;
// 선택 가능한 mode의 최소값
SpinEdit1.MinValue := 0;
// NumModes에는 마지막 mode번호보다 1이 큰 mode의 갯수가 들어있음
SpinEdit1.MaxValue := NumModes - 1;
// TDeviceMode 를 배열요소로 NumModes 크기의 동적배열을 만든다
// 위 type 선언문 "TDmArray = array[0..0] of TDeviceMode" 이 동작배열을
// 만들기 위한 선언이며 아래와 같이 실제 메모리를 할당받는다
// DELPHI 4.0 에서는 이런 일련의 동작을 하나로 통합한 동적배열을
// 직접 지원하고 있음
GetMem(lpDmArray, sizeof(TDeviceMode) * NumModes); // 배열의 메모리 할당
FillChar(lpDmArray^, sizeof(TDeviceMode) * NumModes, #0); // 배열의 초기화
// 동적배열에 mode정보를 저장(위의것은 화면에 보여주기 위해 읽은것임)
for i := 0 to (NumModes - 1) do
begin
EnumDisplaySettings(nil, i, lpDmArray[i]);
if (lpDmArray[i].dmBitsPerPel = MyPC_Bits) and
(lpDmArray[i].dmPelsWidth = MyPC_HRes) and
(lpDmArray[i].dmPelsHeight = MyPC_VRes)
then
SpinEdit1.Value := i;
end;
end;
procedure TF107.Button3Click(Sender: TObject);
var
ReturnVal : LongInt;
begin
// 선택한 모드로 화면 변경
ReturnVal := ChangeDisplaySettings(lpDmArray[SpinEdit1.Value],
CDS_UPDATEREGISTRY);
with Memo1.Lines do
begin
case ReturnVal of
DISP_CHANGE_SUCCESSFUL: Add('DISP_CHANGE_SUCCESSFUL');
DISP_CHANGE_RESTART : Add('DISP_CHANGE_RESTART');
DISP_CHANGE_BADFLAGS : Add('DISP_CHANGE_BADFLAGS');
DISP_CHANGE_FAILED : Add('DISP_CHANGE_FAILED');
DISP_CHANGE_BADMODE : Add('DISP_CHANGE_BADMODE');
DISP_CHANGE_NOTUPDATED: Add('DISP_CHANGE_NOTUPDATED');
end;
end;
end;
이경수 wrote:
> 제목 그대로
>
> 어떤 버튼을 클릭했을 경우 해상도를 바꿀수 있는
> 방법은 없는지요...
>
> 예) 800 * 600 모드 인 모니터를
> 강제로 1024 * 768 로 바꾸어 버리기.............
>
> 읽어 주셔서 감사 합니다,. 꾸벅~~
0
0
삭제
수정
댓글
(NOTICE) You must be
logged in
to comment on this post.
hsband
•
2000.06.29 05:47
1
COMMENTS
/
0
LIKES
스크롤바와 에디터 좀 갈처 줘요
이상우
•
2000.06.29 06:53
hsband wrote: > 저는 초보인데요, 이렇게 질문만 올리게 되내요. 아주 간단한 것 같은데요 memo 콤포넌...
김영해
2000.06.29 05:02
0
COMMENTS
/
0
LIKES
Re: 왕건입니당.... ㅠ.ㅠ
[델파이]
2000.06.29 04:37
0
COMMENTS
/
0
LIKES
윈슈즈 (인터넷 컴포넌트) 질문.
박상조
2000.06.29 04:28
0
COMMENTS
/
0
LIKES
ActiveX 컴포넌트에서 파일 열기
문진현
2000.06.29 04:27
0
COMMENTS
/
0
LIKES
날짜와 시간을 동시에 바꿀수 있는 콤포넌트 있나요?
류응철
2000.06.29 04:11
0
COMMENTS
/
0
LIKES
알려주시와여... 간단하지만 제게는 힘든작업..ㅠ.ㅠ
김양미
•
2000.06.29 02:48
3
COMMENTS
/
0
LIKES
이런것도..
cell
•
2000.06.29 02:55
Button4Click(Sender); 또는 button4.Click; 이렇게 하면 됩니다.
김영해
•
2000.06.29 02:53
김양미 wrote: > 잉잉... ㅠ.ㅠ > 조금 알까 싶으면 저리로 도망가고.. 델이 밉슴다... 버뜨 좋다... *^^...
김양미
•
2000.06.29 03:28
남은 시간도 좋은 시간 만드세요~!!! 행복하세요~~ *^^*
김영희
•
2000.06.29 02:21
2
COMMENTS
/
0
LIKES
퀵리포트에서 변수자료 출력하기
최영근
•
2000.06.29 09:38
김영희 wrote: > > 간단한 프로그램인데요 > 폼도 단 두개, 출력만을 위한 겁니다. > > 출력을 위해...
cell
•
2000.06.29 03:08
레코드를 select한후 다시 편집해서 변수에 넣은 건가요. 변수의 갯수가 어느정도 되는지... 자세한 내용...
김경율
•
2000.06.29 01:52
2
COMMENTS
/
0
LIKES
한글 자모 분해 에 관한 질문( 소스포함)
이재식
•
2000.06.29 05:07
이재식 Wrote : 안녕하세요? 본 소스에서 크게 잘못된 부분은 없습니다. 이 소스는 그대로 사용하면...
김경율
•
2000.06.30 18:08
답변 감사 합니다. 늘 행복하시고 하시고자 하는 모든일들이 다 잘 되었으면 합니다.
전해영
•
2000.06.29 01:46
2
COMMENTS
/
0
LIKES
엑셀데이타 테이블로 저장.
cell
•
2000.06.29 03:45
전해영 wrote: > 델파이 프로그램내에서 엑셀혹은 이와유사한 기능을 사용하여 데이타를 가공후 > 오라클...
이재식
•
2000.06.29 03:38
전해영 wrote: > 델파이 프로그램내에서 엑셀혹은 이와유사한 기능을 사용하여 데이타를 가공후 > 오라클...
조선일
•
2000.06.29 01:45
1
COMMENTS
/
0
LIKES
델에 이런기능도 있는지?
윈디하나
•
2000.07.04 23:26
직접 Win32 API를 사용하셔야 합니다. GetPrevilige~로 시작하는 함수로 기억합니다만... 그럼 이만...
사발우성
•
2000.06.29 01:43
3
COMMENTS
/
0
LIKES
디비그리드에 관한 초보적인 질문 암나 갈켜주시와엽 ^^
cell
•
2000.06.29 02:29
편법으로 가능합니다. 먼저 calculate field인가 한국식으로 계산 필드를 하나 생성하시고 그다음 on cal...
김영해
•
2000.06.29 01:52
사발우성 wrote: > > 안뇽 하신가엽 여러 고수님 & 중수님... > > 전 울트라 캡숑초보...헐 프로그...
사발우성
•
2000.06.29 02:11
^^ 죄성엽.. 지금 제가 로컬 디비(파라독스)를 사용하구 있어서엽... 어떻게 해야할쥐를 모르겠네...
준희
•
2000.06.29 01:03
5
COMMENTS
/
0
LIKES
Form 호출 Error 문제 좀 봐주세요..
조상
•
2000.06.29 01:47
준희 wrote: > 안녕하세요.. > > 다름이 아니라 Form 호출에러가 발생해서 그러는데 도대체 어디서 잘...
김영해
•
2000.06.29 01:46
준희 wrote: > 안녕하세요.. > > 다름이 아니라 Form 호출에러가 발생해서 그러는데 도대체 어디서 잘...
준희
•
2000.06.29 02:47
김영해 wrote: > 준희 wrote: > > 안녕하세요.. > > > > 다름이 아니라 Form 호출에러가 발생해서 그...
사발우성
•
2000.06.29 01:10
^^ 사발임당... 전 완전 초본디엽.. 컁 form2:Tform2.creat(self); form2.show; 이렇게 ...
이경문
•
2000.06.29 01:39
Modal폼은 그 자체가 시행이 끝나기 전까지는 메인폼(Modal폼을 부른 폼)으로 돌아가지 않는 성질을 갖...
장형욱
•
2000.06.29 00:57
3
COMMENTS
/
0
LIKES
심 동훈님께... 시리얼 통신(RS-232c)에 대하여 도움을 청합니다.
cell
•
2000.06.29 02:40
심동훈님이 아니라 죄송하네요.... 저도 rs-232통신을 많이 사요하기 때문에 몇자 적습니다. 제가 알기...
장형욱
•
2000.06.29 03:23
cell님 안녕하십니까? cell님께 감사의 말씀 전합니다. 이렇게 한수 가르켜주시니 정말 고맙습니다. ...
장형욱
•
2000.06.29 03:23
cell님 안녕하십니까? cell님께 감사의 말씀 전합니다. 이렇게 한수 가르켜주시니 정말 고맙습니다. ...
DaeSung
2000.06.29 00:44
0
COMMENTS
/
0
LIKES
SQL에러
얀
•
2000.06.29 00:01
3
COMMENTS
/
0
LIKES
BDE가 98은 되고 95는 안돼고 이것참나~~~
이미나
•
2000.06.30 00:37
저두 MS-SQL에 delphi로 프로젝트 경험이 있습니다. 헌데 win98, 95 모두 BDE 설정시 문제가 없었네요. ...
이재식
•
2000.06.29 03:48
이재식 Wrote : 안녕하세요? 인식못할 이유가 없다고 생각합니다. 작업과 환경을 98에서 하신것처럼 ...
cell
•
2000.06.29 03:12
혹시 95에 ms-sql client가 설치되어 있지 않거나, 아니면 client설치 없이 사용할 때 필요한 DLL이 없...
heimdal
•
2000.06.28 23:37
4
COMMENTS
/
0
LIKES
페이지컨트롤에서..
까마귀
•
2000.06.29 20:10
heimdal wrote: > 페이지컨트롤에 탭시트가 두개가 있습니다.. > 탭시트1에 4개의 입력창이있고 탭시트2...
초보초보
•
2000.06.29 00:01
heimdal wrote: > 페이지컨트롤에 탭시트가 두개가 있습니다.. > 탭시트1에 4개의 입력창이있고 탭시트2...
heimdal
•
2000.06.29 01:08
초보초보 wrote: > heimdal wrote: > > 페이지컨트롤에 탭시트가 두개가 있습니다.. > > 탭시트1에 4개...
cell
•
2000.06.29 03:00
setfocus 전에 먼저 페이지탭의 이동을 해야지요 pageControl1.ActivePageIndex := 0 과 같이요.
이경수
•
2000.06.28 23:30
1
COMMENTS
/
0
LIKES
강제로 해상도 바꾸기
제목 그대로 어떤 버튼을 클릭했을 경우 해상도를 바꿀수 있는 방법은 없는지요... 예) 800 * 600 모드 인 모니터를 강제로 1024 * 768 로 바꾸어 버리기............. 읽어 주셔서 감사 합니다,. 꾸벅~~
강인규
•
2000.06.28 23:49
허일학님의 자료중 일부를 발췌합니다. 자세한건 허일학님의 홈이나 자료실의 xProject프로그램을 참고하...
이창영
2000.06.28 22:56
0
COMMENTS
/
0
LIKES
odbc(코딩으로 추가해주는 방법)?
초보
•
2000.06.28 22:42
2
COMMENTS
/
0
LIKES
웹브라우저에서 HTML로 인식하는 방법 없을까요?
이경문
•
2000.06.29 01:42
우선 S의 내용을 로컬에 저장하고(c:temp.txt) WebBrowser1.Navigate('c:temp,txt', 어쩌구저쩌구) 하면 ...
초보
•
2000.07.05 02:50
> 우선 S의 내용을 로컬에 저장하고(c:temp.txt) > WebBrowser1.Navigate('c:temp,txt', 어쩌구저쩌구) 하...
이경수
2000/06/28 23:30
Views
570
Likes
0
Comments
1
Reports
0
Tag List
수정
삭제
목록으로
한델 로그인 하기
로그인 상태 유지
아직 회원이 아니세요? 가입하세요!
암호를 잊어버리셨나요?
자세한건 허일학님의 홈이나 자료실의 xProject프로그램을 참고하시기 바랍니다.
http://myhome.hananet.net/~memogi/
type에 아래와 같이 선언하시구요
{해상도변경관련변수}
type
PdmArray = ^TDmArray;
TDmArray = array[0..0] of TDeviceMode;
Form Create Event
{--------해상도변경관련---------------------------시작-------------------------}
procedure TF107.FormCreate(Sender: TObject);
var
MyPC_DC: THandle; // Display context
MyPC_Bits: Integer; // Bits per pixel
MyPC_HRes: Integer; // Horizontal resolution
MyPC_VRes: Integer; // Vertical resolution
i: integer;
dm : TDeviceMode;
begin
MyPC_DC := Canvas.Handle;
MyPC_Bits := GetDeviceCaps(MyPC_DC, BITSPIXEL); // 각 pixel당 칼러의 비트수
MyPC_HRes := GetDeviceCaps(MyPC_DC, HORZRES); // 화면의 폭(Width)의 비트수
MyPC_VRes := GetDeviceCaps(MyPC_DC, VERTRES); // 화면의 높이(Height)의 비트수
// 내 PC의 video mode 정보
// Label1.Caption := Format('%d bits, %d x %d',[MyPC_Bits, MyPC_HRes, MyPC_VRes]);
Label1.Caption := Format('%d x %d',[MyPC_HRes, MyPC_VRes]);
// 현재 내 PC가 지원할 수 있는 video mode 를 구한다
Memo1.Lines.Clear;
NumModes := 0; // 첫번째 video mode의 번호(0번부터 시작)
while True do
begin
// nil 이면 현재 표시장치(display device)를 나타냅니다
if not EnumDisplaySettings(nil, NumModes, dm) then // False이면 더이상 없다
Break;
Memo1.Lines.Add('Mode ' +
IntToStr(NumModes) + ': ' +
IntToStr(dm.dmBitsPerPel) + ' Bits Per Pixel ' +
IntToStr(dm.dmPelsWidth) + ' x ' +
IntToStr(dm.dmPelsHeight));
Inc(NumModes); // 다음번 video mode의 번호를 나타냅니다
end;
// 선택 가능한 mode의 최소값
SpinEdit1.MinValue := 0;
// NumModes에는 마지막 mode번호보다 1이 큰 mode의 갯수가 들어있음
SpinEdit1.MaxValue := NumModes - 1;
// TDeviceMode 를 배열요소로 NumModes 크기의 동적배열을 만든다
// 위 type 선언문 "TDmArray = array[0..0] of TDeviceMode" 이 동작배열을
// 만들기 위한 선언이며 아래와 같이 실제 메모리를 할당받는다
// DELPHI 4.0 에서는 이런 일련의 동작을 하나로 통합한 동적배열을
// 직접 지원하고 있음
GetMem(lpDmArray, sizeof(TDeviceMode) * NumModes); // 배열의 메모리 할당
FillChar(lpDmArray^, sizeof(TDeviceMode) * NumModes, #0); // 배열의 초기화
// 동적배열에 mode정보를 저장(위의것은 화면에 보여주기 위해 읽은것임)
for i := 0 to (NumModes - 1) do
begin
EnumDisplaySettings(nil, i, lpDmArray[i]);
if (lpDmArray[i].dmBitsPerPel = MyPC_Bits) and
(lpDmArray[i].dmPelsWidth = MyPC_HRes) and
(lpDmArray[i].dmPelsHeight = MyPC_VRes)
then
SpinEdit1.Value := i;
end;
end;
procedure TF107.Button3Click(Sender: TObject);
var
ReturnVal : LongInt;
begin
// 선택한 모드로 화면 변경
ReturnVal := ChangeDisplaySettings(lpDmArray[SpinEdit1.Value],
CDS_UPDATEREGISTRY);
with Memo1.Lines do
begin
case ReturnVal of
DISP_CHANGE_SUCCESSFUL: Add('DISP_CHANGE_SUCCESSFUL');
DISP_CHANGE_RESTART : Add('DISP_CHANGE_RESTART');
DISP_CHANGE_BADFLAGS : Add('DISP_CHANGE_BADFLAGS');
DISP_CHANGE_FAILED : Add('DISP_CHANGE_FAILED');
DISP_CHANGE_BADMODE : Add('DISP_CHANGE_BADMODE');
DISP_CHANGE_NOTUPDATED: Add('DISP_CHANGE_NOTUPDATED');
end;
end;
end;
이경수 wrote:
> 제목 그대로
>
> 어떤 버튼을 클릭했을 경우 해상도를 바꿀수 있는
> 방법은 없는지요...
>
> 예) 800 * 600 모드 인 모니터를
> 강제로 1024 * 768 로 바꾸어 버리기.............
>
> 읽어 주셔서 감사 합니다,. 꾸벅~~