MDI 또는 SDI 에서 새로운 폼을 생성 할때 폼의 이름으로 생성하면 편리 할 때가 있습니다.
1. 우선 생성 될 폼을 [Project > Options... > forms] 에서 해당 폼을 Avaiable forms: 에 등록합니다.
2. 해당 폼 Unit 에서
initialization
RegisterClasses([TfrmChild]);
를 아래 쪽에 추가합니다.
3. 생성되는 폼의 OnClose 에서
procedure TfrmChild.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:= caFree;
end;
3. 폼을 생성 하는 메인 폼에서
function TfrmMain.CreateChild(iClass: string): Boolean;
var
iMyFormClass: TFormClass;
iWorkform: TForm;
iHnd: THandle;
idx: integer;
begin
result := True;
iHnd := 0;
for idx := 0 to Screen.FormCount - 1 do begin
if UpperCase('T' + Screen.Forms[idx].Name) = UpperCase(iClass) then begin
iHnd := Screen.Forms[idx].Handle;
Break;
end;
end;
if iHnd = 0 then begin
iMyFormClass := TFormClass(GetClass(iClass));
if iMyFormClass <> nil then begin
iWorkform := iMyFormClass.Create(Application.MainForm)
end
else result := False;
end
else begin
if IsIconic(iHnd) then ShowWindow(iHnd, SW_SHOWNORMAL)
else BringWindowToTop(iHnd);
end;
end;
을 선언 하여 주고
4. 폼 생성시 frmChild:= TfrmChild.Create(Self); 대신
CreateChild('TFrmChild');
을 사용하여 생성하거나 보여주거나, 최상위 위치로 올려 주면 됩니다.
2012년 10월 25일 목요일
피드 구독하기:
댓글 (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] 파인더를 엽니다. [...
댓글 없음:
댓글 쓰기