2011-11-06 7 views
1

나는 아주 간단한 질문이있다. 내 코드는 파스칼로 작성되었습니다.페이지 중간에 단어 보여주기 - 파스칼

Program Example; 
Begin 
Writeln('Question'); 
Readln; 
End. 

페이지 중간에 "질문"단어를 표시하고 싶습니다. 어떻게합니까? 이 같은

+0

화면 중간을 의미합니까? – TridenT

+0

이 코드를 실행하면 콘솔 응용 프로그램이 열리고 배경이 검은 색임을 알 수 있습니다! 나는이 검은 배경의 중간에이 단어를 보여주고 싶다 :) 어떤 방법 으로든? – Nofuzy

답변

6

아마도 뭔가 (내가 당신이 실제로 델파이 또는 호환 무언가를 사용하는 가정은) :

var 
    csbi: TConsoleScreenBufferInfo; 
    crd: TCoord; 
    h: THandle; 

const 
    S = 'Hello World!'; 

begin 
    h := GetStdHandle(STD_OUTPUT_HANDLE); 
    GetConsoleScreenBufferInfo(h, csbi); 
    crd.Y := csbi.dwSize.Y div 2; 
    crd.X := (csbi.dwSize.X - length(S)) div 2; 
    SetConsoleCursorPosition(h, crd); 
    Write(S); 
    Readln; 
+0

안녕하세요, 답장을 보내 주셔서 감사합니다. 1- 식별자가 없습니다. TCONSOLESCREENBUFFERINFO 2- 식별자가 없습니다. TCOORD. 그래서 내가 무엇을해야하니? – Nofuzy

+0

'는 Windows, SysUtils를 사용합니다. –

+0

고마워요, 완료 :) – Nofuzy

1

Console 단위를 시도 할 수 있습니다. 그것은 이것과 몇 가지 더 많은 일을 할 것입니다. 기능을 보여주는 간단한 데모가 함께 제공됩니다.

1

콘솔 모드를 80 열 25 행 (행)으로 사용하는 경우 더 쉽게 할 수 있습니다. 공상적인 코드는 필요 없으며 단지 12 번째 줄을 가정합니다 (25 div 2는 12.5이므로 12를 사용합니다). 여기에 볼랜드 파스칼을 사용하고 있습니다.

Uses CRT; 

Const 
    YourText = 'Hello World!'; 

Begin 
    GotoXY(40 - Length(YourText) div 2, 12); 
    WriteLn(YourText); 
End. 

희망이 있습니다.

+0

안녕하세요, 네 답은 위의 코드와 똑같은 작은 코드입니다. Well done man;) – Nofuzy

+1

FWIW에는 델파이 용 CRT 장치가 없습니다. 하지만 내 콘솔 장치는 가능한 한 그것을 모방합니다. –

관련 문제