Модераторы: Poseidon, Snowy, bems, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ошибка OpenDialog 
V
    Опции темы
DoZENT
Дата 11.8.2006, 13:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 326
Регистрация: 2.6.2006

Репутация: нет
Всего: 1



В моей проге резко появилась странная ошибка: в open или save диалоге при переходе в папку "Мой компьютер" ВООБЩЕ ничего не отображается. И так с любым диалогом выбора файла в МОЕЙ программе. Если создать новый проект, кинуть в него OpenDialog, то там все нормально, т.е. проблема именно в моей проге. Что можно сделать  smile 


--------------------
Какая боль, какая боль, Internet Explorer 5.0...
PM MAIL   Вверх
Snowy
Дата 11.8.2006, 13:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



Проверь options своего диалога.
Витать ты там всё позапрещал...
PM MAIL   Вверх
DoZENT
Дата 11.8.2006, 13:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 326
Регистрация: 2.6.2006

Репутация: нет
Всего: 1



options дефолтом стоят


--------------------
Какая боль, какая боль, Internet Explorer 5.0...
PM MAIL   Вверх
Yanis
Дата 11.8.2006, 14:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2937
Регистрация: 9.2.2004
Где: Москва

Репутация: 72
Всего: 111



DoZENT
Нука скопируй компонент сюда. Я его у себя проверю.


--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
Alexeis
Дата 11.8.2006, 14:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 109
Всего: 459



Может dfm файл формы поврежден?
Хотелось бы на него взглянуть.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
DoZENT
Дата 11.8.2006, 15:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 326
Регистрация: 2.6.2006

Репутация: нет
Всего: 1



Цитата

Нука скопируй компонент сюда. Я его у себя проверю.

Какой компонент? Это обычный неизмененный/непропатченный OpenDialog

Добавлено @ 15:04 
Цитата

Может dfm файл формы поврежден?
Хотелось бы на него взглянуть.

Вот. Для сокращения объема различные битмапы вырезаны


Присоединённый файл ( Кол-во скачиваний: 5 )
Присоединённый файл  main.dfm 10,09 Kb


--------------------
Какая боль, какая боль, Internet Explorer 5.0...
PM MAIL   Вверх
Yanis
Дата 11.8.2006, 15:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2937
Регистрация: 9.2.2004
Где: Москва

Репутация: 72
Всего: 111



Цитата(DoZENT @  11.8.2006,  16:00 Найти цитируемый пост)
Какой компонент? Это обычный неизмененный/непропатченный OpenDialog

Копипаст это называется. Ctrl+C, а потом на форуме Ctrl+V. Не обязательно было всё форму кидать. 
У меня всё нормально отображается в "Мой компьютер". А точно там ничего нету у тебя? Может там из меню вызвать "Обновить" или что-нибудь такое... У меня вспоминается мне такое было однажды. Но это система кажется глючила.


--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
DoZENT
Дата 11.8.2006, 15:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 326
Регистрация: 2.6.2006

Репутация: нет
Всего: 1



Цитата

Не обязательно было всё форму кидать

Я всю форму кинул потому что alexeis1 попросил. В диалоге действительно НИЧЕГО нет. В смысле никаких дисков, папок, как обычно. Система глючить не может: в остальных прогах, в том числе и в моих (с этим компонентом) все OK  smile 




--------------------
Какая боль, какая боль, Internet Explorer 5.0...
PM MAIL   Вверх
Yanis
Дата 11.8.2006, 15:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2937
Регистрация: 9.2.2004
Где: Москва

Репутация: 72
Всего: 111



DoZENT
Предлагаю вариант. Скопируй свой проект полностью и начни потихонечку из него всё удалять приводя его тем самым к виду ного проекта. Переодически запуская прогу и проверя работоспособность диалога. Т.е. если твои заявления 
Цитата(DoZENT @  11.8.2006,  16:44 Найти цитируемый пост)
в остальных прогах, в том числе и в моих (с этим компонентом) все OK
 верны, то должен в конце концов выяснить где косяк.



--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
Snowy
Дата 11.8.2006, 16:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



А может просто убрать диалоги и брочить на форму новые...
PM MAIL   Вверх
DoZENT
Дата 11.8.2006, 16:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 326
Регистрация: 2.6.2006

Репутация: нет
Всего: 1



Цитата

А может просто убрать диалоги и брочить на форму новые...

Первым делом делал. Не работает как ни странно... А если бросить на пустой проект, тогда работает  smile 

Yanis, 
Дык, у меня проект запускаться просто не будет. Там же на компонентах все завязано. И обращения к компонентам грубо говоря  составляет весь проект, т.е. не удалишь компоненты...


--------------------
Какая боль, какая боль, Internet Explorer 5.0...
PM MAIL   Вверх
Yanis
Дата 11.8.2006, 16:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2937
Регистрация: 9.2.2004
Где: Москва

Репутация: 72
Всего: 111



Удали всё кроме кода работы с компонентами! Или проект переделай заново. 
Во всяком случае ты сам сказал, что у тебя всё работает. Поэтому без кода как то лень разбираться, что не работает в твоём одном злосчастном проекте.


--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
Alexeis
Дата 11.8.2006, 16:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 109
Всего: 459



Стоит попробовать альтернативу, т.е. айпишный вызов того же диалога
Код

function OpenSaveFileDialog(ParentHandle: THandle; const DefExt, Filter, InitialDir,
   Title: string; var FileName: string; IsOpenDialog: Boolean): Boolean;


implementation

{$R *.dfm}

 uses ShlObj;

 type
   POpenFilenameA = ^TOpenFilenameA;
   POpenFilename = POpenFilenameA;
   tagOFNA = packed record
     lStructSize: DWORD;
     hWndOwner: HWND;
     hInstance: HINST;
     lpstrFilter: PAnsiChar;
     lpstrCustomFilter: PAnsiChar;
     nMaxCustFilter: DWORD;
     nFilterIndex: DWORD;
     lpstrFile: PAnsiChar;
     nMaxFile: DWORD;
     lpstrFileTitle: PAnsiChar;
     nMaxFileTitle: DWORD;
     lpstrInitialDir: PAnsiChar;
     lpstrTitle: PAnsiChar;
     Flags: DWORD;
     nFileOffset: Word;
     nFileExtension: Word;
     lpstrDefExt: PAnsiChar;
     lCustData: LPARAM;
     lpfnHook: function(Wnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): UINT stdcall;
     lpTemplateName: PAnsiChar;
   end;
   TOpenFilenameA = tagOFNA;
   TOpenFilename = TOpenFilenameA;

 function GetOpenFileName(var OpenFile: TOpenFilename): Bool; stdcall; external 'comdlg32.dll'  name 'GetOpenFileNameA';
 function GetSaveFileName(var OpenFile: TOpenFilename): Bool; stdcall; external 'comdlg32.dll'  name 'GetSaveFileNameA';

 const
   OFN_DONTADDTORECENT = $02000000;
   OFN_FILEMUSTEXIST = $00001000;
   OFN_HIDEREADONLY = $00000004;
   OFN_PATHMUSTEXIST = $00000800;

 function CharReplace(const Source: string; oldChar, newChar: Char): string;
 var
   i: Integer;
 begin
   Result := Source;
   for i := 1 to Length(Result) do
     if Result[i] = oldChar then
       Result[i] := newChar
 end;

 function OpenSaveFileDialog(ParentHandle: THandle; const DefExt, Filter, InitialDir, Title: string; var FileName: string; IsOpenDialog: Boolean): Boolean;
 var
   ofn: TOpenFileName;
   szFile: array[0..MAX_PATH] of Char;
 begin
   Result := False;
   FillChar(ofn, SizeOf(TOpenFileName), 0);
   with ofn do
   begin
     lStructSize := SizeOf(TOpenFileName);
     hwndOwner := ParentHandle;
     lpstrFile := szFile;
     nMaxFile := SizeOf(szFile);
     if (Title <> '') then
       lpstrTitle := PChar(Title);
     if (InitialDir <> '') then
       lpstrInitialDir := PChar(InitialDir);
     StrPCopy(lpstrFile, FileName);
     lpstrFilter := PChar(CharReplace(Filter, '|', #0)+#0#0);
   if DefExt <> '' then
       lpstrDefExt := PChar(DefExt);
   end;
   if IsOpenDialog then
   begin
     if GetOpenFileName(ofn) then
     begin
       Result := True;
       FileName := StrPas(szFile);
     end;
   end
   else
   begin
     if GetSaveFileName(ofn) then
     begin
       Result := True;
       FileName := StrPas(szFile);
     end;
   end
 end;

procedure TForm1.btn1Click(Sender: TObject);
var
  filename : AnsiString;
begin
  OpenSaveFileDialog(handle,'', '*.*', 'c:\', 'Ïðîáà', filename, true);
end;




--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Yanis
Дата 11.8.2006, 16:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2937
Регистрация: 9.2.2004
Где: Москва

Репутация: 72
Всего: 111



alexeis1
Я бы из принципа не стал так поступать smile
Нужно же разобраться почему компоненты неправильно работают. Но автору конечно виднее.


--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
Alexeis
Дата 11.8.2006, 17:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 109
Всего: 459



Цитата(Yanis @  11.8.2006,  16:55 Найти цитируемый пост)
Я бы из принципа не стал так поступать

так я и не предлагаю так поступать, просто проверить, дело в том, что этот код анологичный коду TOpenDialog если он сработает, значит дело не в программе а в настройках делфи, если же не вызовится значит сама программа что-то блокирует. Т.о. мы сузим круг поиска smile 

Это сообщение отредактировал(а) alexeis1 - 11.8.2006, 17:07


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0620 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.