Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.11.2008, 14:06   #1
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,210
Восклицание Проблема с диалоговым окном

В моем приложении происходит какая-то странная ошибка, не связанная с кодом в программе. Когда я нажимаю на кнопку "Сохранить" или "Открыть", должно появиться диалоговое окно сохранения или открытия, но оно появляется, появляется только почему-то на секунду и потом исчезает за окно моей программы и висит там и я никак не могу его оттуда вытащить и перейти на него. Приходится останавливать всю работу по нажатии на крестик Delphi. Хотя в предыдущей версии этой программы все работает. Что это может быть? Как убрать этот глюк?
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 27.11.2008, 14:12   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
ошибка, не связанная с кодом в программе
Скорее наоборот.
Код в студию тогда будет ясно.
Мало ли мож твоя прога стоит поверх всех окон... или еще чего типа такого.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 27.11.2008, 14:23   #3
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,210
По умолчанию

Вот код:
Код:
function SaveAsExcelFile4(SG11:TStringGrid; AFileName:string):Boolean;
const
 {$J+} CXlsBof:array[0..5] of Word = ($809,8,00,$10,0,0);
 {$J-} CXlsEof:array[0..1] of Word = ($0A,00);
var
 FStream:TFileStream;
 I,J:integer;
begin
 Result:=False;
 FStream:=TFileStream.Create(PChar(AFileName),fmCreate or fmOpenWrite);
 try
   CXlsBof[4]:=0;
   FStream.WriteBuffer(CXlsBof,SizeOf(CXlsBof));
   for I:=0 to SG11.ColCount-1 do
     for J:=0 to SG11.RowCount-1 do
       //XlsWriteCellLabel(FStream,I,J,SG11.Cells[I,J]);
   FStream.WriteBuffer(CXlsEof,SizeOf(CXlsEof));
   Result:=True;
 finally
   FStream.Free;
 end;
end;
Код кнопки:
Код:
procedure TForm1.SpeedButton16Click(Sender: TObject);
begin
 if SaveDialog3.Execute then
  if SaveAsExcelFile4(SG11,SaveDialog3.FileName) then
    begin
    // ProgressBar3.Position:=ProgressBar3.Position + 100;
    //  if ProgressBar3.Position <= 100 then
    end;
end;
Какие идеи?)
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 27.11.2008, 14:38   #4
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Хотя в предыдущей версии этой программы все работает. Что это может быть?
Это какая-то странная вещь. У меня тоже такое пару раз было.
Вроде бы все работает, начинаешь "вылизывать" код, и вдруг, после многочисленных поправок, начинается какая-то необъяснимая свистопляска с самыми элементарными операциями.
Помогает только одно - создание нового проекта и аккуратное перенесение туда кусков кода из старого.
Я все же склонен считать это каким-то глюком в Дельфи...
mihali4 вне форума Ответить с цитированием
Старый 27.11.2008, 14:38   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Криминала не вижу. прикрепи заархивированный проект, мож где на форме накрутил чего-то.
Цитата:
Помогает только одно - создание нового проекта и аккуратное перенесение туда кусков кода из старого...
Не спеши, Михалыч, мож у автора какие свойства стоят или директивы.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 27.11.2008, 15:09   #6
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Криминала не вижу. прикрепи заархивированный проект, мож где на форме накрутил чего-то.
Вот в том-то и дело
Хоть все глаза прогляди - никакого криминала, хоть весь остальной код удали, все равно не работает...
А перенесешь в новый проект и, о чудо...
mihali4 вне форума Ответить с цитированием
Старый 27.11.2008, 15:44   #7
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,210
По умолчанию

Ребята, мне нет смысла прикреплять сюда проект. Я переносил код из старой версии АБСОЛЮТНО ТОЧНО ТАКЖЕ как и было. Я ни одной буквы не поменял. Просто блин непонятно почему в старой работает, а в новой нет. Попробую завтра в университете проверить на компе.
Цитата:
Это какая-то странная вещь. У меня тоже такое пару раз было.
И в чем была причина?
Цитата:
мож у автора какие свойства стоят или директивы.
а какие свойства могут вызвать таакой глюк? директивы? нет, директивы все те самые, что и в старой версии.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 27.11.2008, 17:18   #8
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
И в чем была причина?
Еще раз, но внимательнее, читаем пост N 4:
Цитата:
Я все же склонен считать это каким-то глюком в Дельфи...
mihali4 вне форума Ответить с цитированием
Старый 27.11.2008, 18:09   #9
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,210
По умолчанию

Теперь понял, mihali4. . Ладно, завтра попробую завтра на другом компе проверить. Может с моим че то не так. Хотя хз. Блин, все сделал-переделал уже, а с этими диалогами встрял(((
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 27.11.2008, 20:05   #10
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Я переносил код из старой версии АБСОЛЮТНО ТОЧНО ТАКЖЕ как и было. Я ни одной буквы не поменял.
Я имел в виду не копирование "чохом" текста всего модуля, а нормальное наполнение формы компонентами, создание "скелетов" обработчиков событий, а вот наполнение обработчиков и других, созданных процедур - копированием.
Цитата:
все сделал-переделал уже, а с этими диалогами встрял
Вот и предлагаю начать пока с воссоздания по этой технологии только модуля с диалогом. Причем сначала сделать только малую толику именно с диалогом, убедиться, что работает, а потом уже обвешивать остальными процедурами.
Да, в дополнение к ранее сказанному. Припоминаю, у меня сложилось впечатление, что возникновение этого "полтергейста" зависит от очередности ввода в программу новых процедур. При одном порядке ввода возникает, при другом - нет...
mihali4 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема eldar Работа с сетью в Delphi 12 05.10.2008 18:10
работа с чужим окном RammFan Win Api 1 18.01.2007 20:21
поморгать окном Баламут Общие вопросы Delphi 1 10.11.2006 04:09
помогите разобраться с окном fэn Общие вопросы Delphi 1 08.11.2006 20:12