Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Что было нажато: Да или Нет? [D6, Win95/98, WinME, NT4, Win2k, WinXP]


Kripton ©   (2005-08-19 05:27:00) 

Привет вам, господа! У меня мизерная проблемка. Надо узнать, когда пользователь нажимает Да и когда Нет в диалоге удаления файла. Удаление происходи при нажатии на кнопку. Код такой:

From:='';
 with Struct do
 begin
   Wnd := Handle;
   wFunc := FO_DELETE;
   for i:=0 to ListBox2.Items.Count-1 do
    if ListBox2.Selected[i] then
    From:=From+ListBox2.Items.Strings[i]+#0#0;
    From := From+#0#0;
   pFrom := PChar(From);
   pTo := nil;
   fFlags := 0;
   fAnyOperationsAborted := False;
   hNameMappings := nil;
   lpszProgressTitle := nil;
 end;
 Err := SHFileOperation(Struct);

if Err <> S_OK then MessageDlg('ла-ла-ла',mtError,[mbOk],0);

Безвозвратно. Как дописать программно: Было нажато Да?


GuAV   (2005-08-20 15:41:00) [1]

psa247 ©   (20.08.05 12:47) [2]
Flag Meaning
MB_DEFBUTTON1 The first button is the default button. MB_DEFBUTTON1 is the default unless MB_DEFBUTTON2, MB_DEFBUTTON3, or MB_DEFBUTTON4 is specified.
MB_DEFBUTTON2 The second button is the default button.
MB_DEFBUTTON3 The third button is the default button.
MB_DEFBUTTON4 The fourth button is the default button.


psa247   (2005-08-20 15:06:00) [2]


> alpet ©

Хоть кривой, но работает.
Благодарю...


alpet   (2005-08-20 14:33:00) [3]

psa247 ©   (20.08.05 12:47) [2]

Предполагаю что можно, но только наверное из отдельного потока или по обработчику WM_TIMER для своей процедуры.

Вот кривой примерчик:

uses windows;

var bFocus: Boolean = False;

procedure TimerProc (hwnd, uMsg, idEvent, dwTime: dword); stdcall;
var h: THandle;
begin
if bFocus then exit;
h := FindWindow (nil, 'Message Caption');
if IsWindow (h) then
 begin
  h := GetDlgItem (h, IDNO);
  if IsWindow (h) then
    begin
     SetFocus (h);
     bFocus := true;  
    end;
 end;
end;

begin
SetTimer (0, 0, 100, @TimerProc);
MessageBoxA (0, 'Message Text', 'Message Caption', MB_YESNO);
end.


psa247   (2005-08-20 12:47:00) [4]

Возможно ли задать фокус на кнопки Yes | No в MessageBox по умолчанию?


alpet   (2005-08-19 07:05:00) [5]

Документацию надо читать.
SHFILEOPTSTRUC
.fAnyOperationsAborted
Value that receives TRUE if the user aborted any file operations before they were completed, or FALSE otherwise.


Наверх

Титульная страница Поиск, карта сайта Написать письмо