SDI 로만 작업해 오다 MDI 가 필요하여 웹서핑하여 자료를 모아 보도록 하겠습니다.
1. MDI 폼에서 SDI 가 크라이언트 영역을 벗어나면 자동으로 스크롤 바가 생깁니다. 이 스크롤 바를 없애고 싶으면
- 메인폼에
function ClientWindowProc(wnd: HWND; msg: Cardinal; wparam, lparam: Integer): Integer; stdcall;
var
f: Pointer;
Begin
f := Pointer(GetWindowLong(wnd, GWL_USERDATA));
case msg of
WM_NCCALCSIZE: begin
if (GetWindowLong(wnd, GWL_STYLE) and (WS_HSCROLL or WS_VSCROLL)) <> 0 Then
SetWindowLong(wnd, GWL_STYLE, GetWindowLong(wnd, GWL_STYLE) and not(WS_HSCROLL or WS_VSCROLL));
end;
end;
Result := CallWindowProc(f, wnd, msg, wparam, lparam);
end;
- 폼 생성 시
procedure TfrmMain.FormCreate(Sender: TObject);
begin
if ClientHandle <> 0 Then begin
if GetWindowLong(ClientHandle, GWL_USERDATA) <> 0 then Exit;
SetWindowLong(ClientHandle, GWL_USERDATA, SetWindowLong(ClientHandle, GWL_WNDPROC, Integer(@ClientWindowProc)));
end;
end;
2. 차일드폼이 미니마이즈 될때 엠디아이 크라이언트 영역 아래쪽에 네모로 보입니다. 이게 보기 싫어 안보이게 하려면..
- 베이직 폼을 하나 만들고
type
TfrmBase = class(TForm)
private
{ Private declarations }
public
procedure WMSize(var M: TWMSIZE); message WM_Size;
end;
- 구현(Implementation) 영역에
procedure TfrmBase.WMSize(var M: TWMSIZE);
begin
if M.SizeType = Size_Minimized then begin
ShowWindow(Handle, Sw_Hide);
M.Result := 0;
end
else inherited;
end;
- 차일드 폼이 이 베이직 폼을 승계 하면 됩니다.
TfrmChildForm = class(TfrmBase) // 그냥 만든 후 수정해주어도 됩니다.
private
public
end;
2012년 10월 30일 화요일
피드 구독하기:
댓글 (Atom)
델파이 12.1이냐 11.3이냐?
델파이가 12.1이 나왔습니다. 혹시 11.3버전의 커뮤니티버전이 필요하시는분이 있을 수 있을 것 같아 https://altd.embarcadero.com/.../RADStudio_11_3_esd_28... 와 이것 찾느랴 엄청고생함.
-
윈도우10에 있는 음성 녹음기는 간단하게 녹음 할 때 간편하고 좋다. 곰 녹음기를 사용하면 오늘기준으로 CPU 점유율이 35% 이상 올라가 맥의 팬이 돌아간다. 윈10의 음성녹음기는 좋은 데 저장 폴더가 디폴트로 되어 있어 사용하기 불편하다. ...
-
클라이언트가 HTTP프로토콜을 이용해서 서버에 무언가를 전달할 때 Get 이나 Post가 사용됩니다. GET은 주소줄에 값이 ?뒤에 쌍으로 이어붙고 여러개일 경우에는 & 으로 반복하고, POST는 숨겨져서(body안에) 보내집니다. GET...
-
일단은 Python 사이트에가서 dmg 파일을 다운받아 설치합니다. m1 프로세서일경우에는 아래에 있는 파일이겠죠. 터미널을 열어 파이썬의 위치를 확인합니다. 파이썬3의 위치로 이동합니다. [cd /usr/local/bin] 파인더를 엽니다. [...
댓글 없음:
댓글 쓰기