Nie pokazuj okna ponownie MessageBox

0

Witam! Jak zrobić takie coś ze po wyswietlniu MessageBox'a, moge na nim zaznaczyc opcję nie pokazuj tego okna ponownie? Jest to możliwe?

0

Tak jest to możliwe, z pod VCL funkcją CreateMesageDlg zwracającą TForm albo pod WinAPI subclassując funkcję obsługi komunikatów dla MessageBox(W) przez wcześniejsze wysłanie komunikatu użytkownika do okna rodzica. Odpowiednie przykład wygooglujesz, bo fajnie by było jakbyś ruszył swoje cztery literki i raz coś pokombinował samodzielnie. Zamiast czekać na posty.

0

w WinAPI można to zrobić za pomocą funkcji TaskDialogIndirect i pola pszVerificationText.
Wymaga Visty lub wyżej (nie pójdzie pod XP-kiem)

0

Przykładowy kod znalazłem: przyciski w MessageBox WinApi

0

Hmmm jeżeli chodzi o takie systemowe okno dialogowe to od Windows XP jest funkcja SHMessageBoxCheck

const
  //wygeneruj sobie GUID w Delphi Ctrl + Shift + G
  MY_MSGBOX_UNIQUE_STRING = '{5E41DF79-6900-4A22-ABE2-275C49BE65ED}';

  function SHMessageBoxCheck(hWnd: THandle; Text: PChar; Title: PChar;
    dwType: DWORD; Default: Integer; RegVal: PChar): Integer; stdcall;
    external 'shlwapi.dll' name 'SHMessageBoxCheckA';

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
   SHMessageboxCheck(Handle, 'To jest test :)',
    PChar(Application.Title), MB_OK or MB_ICONINFORMATION, 0,
    MY_MSGBOX_UNIQUE_STRING);
end;

Więcej o funkcji: http://msdn.microsoft.com/en-[...]op/bb773836%28v=vs.85%29.aspx

1

Piszę trochę po nie w czasie, ale...

@andrzejbodziuzbychujarek - jeśli nie musisz koniecznie skorzystać z systemowego okna to polecam stworzenie własnego formularza i napisanie własnej klasy dialogu w oparciu o ten formularz; Wszelkie potrzebne informacje znajdziesz w moim artykule na temat tworzenia własnych okien dialogowych z przykładem prostego okna będącego odpowiednikiem Messagebox, a także bogatszego okna dialogowego umożliwiającego wybranie ustawień fontów; Zobacz, może akurat zechcesz wykorzystać własne okno.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0