문제

~ 안에 델파이; Application.MessageBox, Windows.MessageBox 또는 Dialogs.MessagedLG의 차이점은 무엇입니까? 또는 컴퓨터 메모리를 사용하는 것이 더 효율적입니까?

도움이 되었습니까?

해결책

Windows.MessageBox ~이다 winapi messagebox, application.messagebox는 주변의 래퍼입니다. 그러나 MessagedLG는 VCL 형식입니다. 따라서 메모리 또는 스레드 안전에 대해 우려하는 경우 처음 두 개가 더 적합 할 수 있습니다. Messagedlg Otoh는 더 유연하고 사용하기 쉽습니다 (물론 IMHO).

다른 팁

Windows MessageBox는 OS (예, 아니오, 취소 ...)로 현지화되며 MessagedLG는 손으로 로컬 로컬로 변할 수 있습니다.

메시지 상자에서 사용하는 작은 양의 메모리에 관심이있는 이유는 무엇입니까? 델파이 앱을 쓸 때 자신과 관련하여 다른 많은 것들이 있습니다. 어쨌든, 내가 알고있는 한, 이것들은 Windows Messagebox API 주변의 얇은 포장지입니다.

내가 올바르게 기억한다면 Delphi VCL 메시지 상자와 Windows Message 상자가 하나의 중요한 차이점이 있습니다. 응용 프로그램 메시지가 서비스되는 것을 막는 플래그를 지정할 수 있습니다 (예 : MB_SYSTEMMODAL). 이는 응용 프로그램을 '동결'해야하는 오류를 표시하는 데 유용 할 수 있습니다. Delphi MessagedG는 화면에서도 타이머 이벤트를 계속 발사합니다. 보다:

MSDN MessageBox 물건

메모리 사용이 메시지 상자에 문제가되지 않아야합니다. 나는 VCL 양식 (dialogs.messagebox)을 개인적으로 선호합니다. 또한 "다시 표시하지 말라"는 확인란과 같은 다른 것들과 같이 사용자 정의 컨트롤을 추가 할 수 있다는 사실에서도 좋아합니다.

그들은 모두 똑같이합니다 - Winapi 함수 messagebox () 호출. 자원 소비의 차이는 최소화됩니다. 너무 신경 쓰면 MessageBox ()에게 직접 전화 할 수 있습니다. "Windows 사용"만 포함하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top