Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/16: Рейтинг темы: голосов - 16, средняя оценка - 4.69
Прогер
632 / 263 / 15
Регистрация: 17.11.2010
Сообщений: 1,371
Записей в блоге: 2
1

Когда OpenDialog1 откроется, программа должна сама нажать на кнопку "Открыть"

03.05.2011, 02:19. Показов 3324. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый ноч форум!

У меня такое ситуация: когда OpenDialog1 откроется программа должна сама нажать на кнопку "Открыть",
что мне сделать чтоб ето так произайщло?
Спс заранее
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.05.2011, 02:19
Ответы с готовыми решениями:

Программа должна удалить сама себя
Я хочу чтобы программа удалила свой .exe файл, то бишь саму себя, с...

Когда запускаю и ввожу параметры, то, в момент когда программа должна выполнять действие, пишет ошибку
Недавно начали изучать c++. так как в школе не было программирования (преподу пофиг было) я в...

Открыть браузер, передать значение в поле, нажать кнопку
Добрый день. Задача описана в теме. Вебсайт: http://www.namerr.org/ Необходимо в поле search...

Открыть нужный html файл в IE и нажать кнопку в его MsgBox
Здравствуйте, пробую так Sub Открыть_нужный_html_файл() Dim IE As Object Set IE =...

Не понимаю, как закончить программу. Сама программа должна нарисовать снежинку в Forms
Собрал программу из кусков других программ и не понимаю, как ее закончить. Ошибок нет, кроме одной:...

10
LK
Заблокирован
03.05.2011, 03:01 2
скажи: какая цель этой возни с опендиалогом в двух темах ? может, для решения твоей задачи есть более понятные/простые способы ?
Если установить при вызове OpenDialog сразу нужную директорию, то за это отвечает свойство InitialDir. Для выбора директории можно использовать стандартную функцию SelectDirectory(), для этого необходимо подключить файл FileCtrl.hpp, в котором она описана:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include < FileCtrl.hpp >
//---------------------------------------------------------------------// функция SelectDirectory() имеет 2 варианта
void __fastcall TForm1::Button1Click(TObject *Sender)
{
AnsiString sway = "c:\\";
// первый вариант
if(SelectDirectory("Укажите путь к папке","",sway)){
     OpenDialog1->InitialDir = sway;
     if(OpenDialog1->Execute()) {
         // ваши действия
         ShowMessage(OpenDialog1->FileName);
         }
   }
// второй вариант этой функции - подробнее смотрите в Help-e
// if(SelectDirectory(sway,
// TSelectDirOpts() << sdAllowCreate << sdPerformCreate << sdPrompt, 0))
// Label1->Caption = sway;
// ....
}
для общего развития: TOpenDialog
2
Прогер
632 / 263 / 15
Регистрация: 17.11.2010
Сообщений: 1,371
Записей в блоге: 2
03.05.2011, 11:22  [ТС] 3
LK,
Цитата Сообщение от LK Посмотреть сообщение
скажи: какая цель этой возни с опендиалогом в двух темах ? может, для решения твоей задачи есть более понятные/простые способы ?
Ну может быт и ест другой вариант но для етого мне вес код переделать подркбуется, жалко както, спс за код щас попробую!
0
return (true);
1976 / 1111 / 221
Регистрация: 19.04.2011
Сообщений: 2,345
03.05.2011, 11:27 4
Смысл вообще тогда какой от компонента? Он нужен только для того, чтобы получить имя открываемого файла. Если вы и так знаете какой файл открыть - компонент не нужен.
1
Прогер
632 / 263 / 15
Регистрация: 17.11.2010
Сообщений: 1,371
Записей в блоге: 2
03.05.2011, 11:41  [ТС] 5
LK,
Спасибо за код но мне для OpenDialog надо только автоматическая нажатия на "Открыть", остольное я всё сделал.

Добавлено через 4 минуты
mimicria,
Я задаю в Edit1 имя фаила и спомощию OpenDialog откриваю, когда нажимаю на Button Появляется OpenDialog уже выбранным фаилом (тем фаилом которою задаю в Edit1, и директория тоже выбранно)
0
return (true);
1976 / 1111 / 221
Регистрация: 19.04.2011
Сообщений: 2,345
03.05.2011, 11:44 6
Цитата Сообщение от Programmer. Посмотреть сообщение
mimicria,
Я задаю в Edit1 имя фаила и спомощию OpenDialog откриваю, когда нажимаю на Button Появляется OpenDialog уже выбранным фаилом (тем фаилом которою задаю в Edit1, и директория тоже выбранно)
Вот я и спрашиваю, зачем OpenDialog, если имя файла вы уже знаете. Итог его работы - OpenDialog->FileName, который потом используется в каком-нибудь FileOpen(). Вот и используйте Edit->Text вместо OpenDialog->FileName.
1
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
03.05.2011, 11:47 7
Цитата Сообщение от Programmer. Посмотреть сообщение
mimicria,
Я задаю в Edit1 имя фаила и спомощию OpenDialog откриваю, когда нажимаю на Button Появляется OpenDialog уже выбранным фаилом (тем фаилом которою задаю в Edit1, и директория тоже выбранно)
Из этого выше сказанного я могу тебе сказать, что тебе нужно в Edit1 указывать полный путь к файлу, а потом этот путь тебе надо впихнуть в OpenDialog1.

Короче тут у тебя много лишнего на мой взгляд будет
1
Прогер
632 / 263 / 15
Регистрация: 17.11.2010
Сообщений: 1,371
Записей в блоге: 2
03.05.2011, 11:53  [ТС] 8
Ну вот посмотрите, исправте если чёта лищнее, буду блогодарен
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
void __fastcall TForm23::Button1Click(TObject *Sender)
{
    TStringList *str = new TStringList;
    HWND hwnd = Application->Handle;
    wchar_t const Path[14] = L"C:\\InfoBase\\";
    str->Append(LabeledEdit1->Text);
    str->Append(LabeledEdit2->Text);
    str->Append(LabeledEdit3->Text);
    str->Append(LabeledEdit4->Text);
    CreateDirectory(Path,NULL);
    str->SaveToFile("c:\\InfoBase\\"+LabeledEdit1->Text+" "+LabeledEdit2->Text+".txt");
    MessageBox(hwnd,L"Data saved",L"Information",MB_OK);
    delete str;
}
//---------------------------------------------------------------------------
void __fastcall TForm23::Button2Click(TObject *Sender)
{
HWND hwnd = Application->Handle;
TDate *dat= new TDate;
TSearchRec sr;
OpenDialog1->FileName = LabeledEdit5->Text+".txt";
if(OpenDialog1->Execute()){
Timer1->Enabled=true;
  FindClose(sr);
TStringList *lst1 = new TStringList;
lst1->LoadFromFile(OpenDialog1->FileName);
if(LabeledEdit5->Text.operator ==(lst1->Strings[0]+" "+lst1->Strings[1]))
  {
  Label7->Caption=lst1->Strings[0];
  Label8->Caption=lst1->Strings[1];
  Label9->Caption=lst1->Strings[2];
  Label10->Caption=lst1->Strings[3];
  Label11->Caption=dat->CurrentDate();
    MessageBox(hwnd,L"Data found",L"Information",MB_OK);
}
 
delete lst1;
delete dat;
 
}
 
}
0
return (true);
1976 / 1111 / 221
Регистрация: 19.04.2011
Сообщений: 2,345
03.05.2011, 12:00 9
TSearchRec sr; - где используется?

Итого все эти костыли заменяем на простую строчку:
C++
1
lst1->LoadFromFile(LabeledEdit5->Text+".txt");
1
Прогер
632 / 263 / 15
Регистрация: 17.11.2010
Сообщений: 1,371
Записей в блоге: 2
03.05.2011, 12:16  [ТС] 10
mimicria,
Цитата Сообщение от mimicria Посмотреть сообщение
TSearchRec sr; - где используется?
В FindClose(sr);

Цитата Сообщение от mimicria Посмотреть сообщение
Итого все эти костыли заменяем на простую строчку:
Код C++1 lst1->LoadFromFile(LabeledEdit5->Text+".txt");
Вот ето помогло, больщое спасибо.
Sasha,
mimicria,
LK,
Всё ребята всем спасибо, сделано!
0
return (true);
1976 / 1111 / 221
Регистрация: 19.04.2011
Сообщений: 2,345
03.05.2011, 12:26 11
Цитата Сообщение от Programmer. Посмотреть сообщение
mimicria,

В FindClose(sr);
Для поиска используются FindFirstFile/FindNextFile, FindClose после них освобождает хэндл.
Так что вы создали и закрыли, не воспользовавшись О_о
0
03.05.2011, 12:26
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.05.2011, 12:26
Помогаю со студенческими работами здесь

Как нажать на кнопку, которая появляется в случайном месте в окне, когда на нее наводишь курсор?
У меня есть небольшое приложение, и мне нужно нажать на кнопку внутри окна с помощью мыши, но когда...

Ведется набор цифр и надо чтобы программа из него сама сообразило число. То есть что бы программа сама раскидывала их по разрядам.
Люди добрые, только начинаю программировать, пытаюсь освоить не очень простой язык С++. Есть такая...

Когда запускается компьютер открывается American megatrends и просто нажать меня на f1 f2 но я не могу нажать
Когда включаю компьютер вылезает American megatrends и в этом окне пишется что нужно нажать f1 или...

открыть другю старницу ,когда нажимаешь кнопку типа (Submit)
if(isset($_POST)) { $ZXC=$_POST ; if ($ZXC==&quot;{$smarty.const.CUSTOMER_OPLATA}&quot;) {...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru