| 
			
			 | 
		#1 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
			
			
			диалоговые окна WinAPI
			 
			
			Подскажите при использовании диалогового окна WinAPI 
		
		
		
		
		
		
		
		
			X++: path = WinAPI::getOpenFileName("Please select your file");Подскажите как правильно вызвать. И еще, как отследить что нажал пользователь. OK или Cancel ? Последний раз редактировалось oleggy; 28.02.2020 в 14:06.  | 
| 
	
 | 
| 
			
			 | 
		#2 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Где вы хотите применить данный финт? 
		
		
		
		
		
		
			Случайно не в классе-наследнике RunBase? 
				__________________ 
		
		
		
		
	// no comments  | 
| 
	
 | 
| 
			
			 | 
		#3 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			первый параметр этой функции должен быть int (_hwnd), а у Вас : "Please select your file" 
		
		
		
		
		
		
			X++: client static str #fileNamelength getOpenFileName(int _hwnd, FilenameFilter _conFilter, str _strInitialPath, str _dialogTitle, str _strDefaultExtension='', str _strDefaultFileName='', int _flags = #OFN_FILEMUSTEXIST) X++: static void JobOpenFileName(Args _args) { FileNameFilter filter = ['Все файлы','*.*']; str filename; ; filename = Winapi::getOpenFileName(0,filter,'', 'Выберите файл', '*.*',''); if (filename) { info('ok'); info(filename); } else { info('отмена'); } } X++: static void JobOpenFileName_NET(Args _args) { System.Windows.Forms.OpenFileDialog _Dialog; System.Windows.Forms.DialogResult _DialogResult; System.Windows.Forms.DialogResult okResult; str selectedPath; int resultValue; int okValue; ; _Dialog = new System.Windows.Forms.OpenFileDialog(); _DialogResult = _Dialog.ShowDialog(); // Get the value from the dialog resultValue = CLRInterop::getAnyTypeForObject(_DialogResult); // Parse the OK enumeration of the enum DialogResult okResult = CLRInterop::parseClrEnum('System.Windows.Forms.DialogResult', 'OK'); // Get the int value of the OK enumeration okValue = CLRInterop::getAnyTypeForObject(okResult); // If the dialog is ended with OK, get the value or set it to blank selectedPath = okValue & resultValue ? _Dialog.get_FileName() : ''; if (selectedPath) { info('ok'); info(selectedPath); } else { info('отмена'); } } 
				__________________ 
		
		
		
		
		
			-Ты в гномиков веришь? -Нет. -А они в тебя верят, смотри, не подведи их. Последний раз редактировалось Pustik; 28.02.2020 в 15:24.  | 
| 
	
 | 
| 
			
			 | 
		#4 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Я все же верю, что это нужно в RunBase-классе. 
		
		
		
		
		
		
			Для этого просто пропишите в методе dialog(): X++: dialogFilename = dialog.addFieldValue(typeid(FilenameOpen), filename);X++:     DialogField             dialogFilename;
    Filename                filename;
				__________________ 
		
		
		
		
	// no comments  | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: S.Kuskov (2). | |
| 
			
			 | 
		#5 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			не для RunBase класса... 
		
		
		
		
		
		
		
	А диалоговое окно сохранения файла?  | 
| 
	
 | 
| 
			
			 | 
		#6 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Как знать как знать... 
		
		
		
		
		
		
		
	Смотря откуда и для чего идет сохранение. По хорошему бы на RunBase передалать  
		 | 
| 
	
 | 
| 
			
			 | 
		#7 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			обычное сохранение файла. 
		
		
		
		
		
		
		
	Разве не существует на основе WinAPI ?  | 
| 
	
 | 
| 
			
			 | 
		#8 | 
| 
			
			 Administrator 
		
			
	 | 
	
	
	
		
		
		
		 
			
			В системе - нет. Есть стандартный тип данных FilenameSave (если нужно указать файл на форме, на которой еще миллион полей) и наследник RunBase, если нужно вывести диалог с кнопками ОК, Отмена.
		 
		
		
		
		
		
		
			
				__________________ 
		
		
		
		
	Возможно сделать все. Вопрос времени  | 
| 
	
 | 
| 
	
	 | 
	
			 
			Похожие темы
		 | 
	||||
| Тема | Ответов | |||
| axaptapedia: WinAPI | 0 | |||
| Модальные диалоговые окна | 7 | |||
| Dynamics AX Geek: Finding files with WinAPI | 1 | |||
| Dynamics AX Geek: Finding files with WinAPI | 0 | |||
| WinApi. Удаление файлов глючит. | 10 | |||
		
  |