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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Первые впечатления о Delphi 2006 
:(
    Опции темы
wesadex
Дата 23.12.2005, 09:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



А по-разному пробовал:
Код

Внутри метода класса:
MessageBox(hInstance, PAnsiChar('Message'), PAnsiChar('Title'), MB_ICONWARNING or MB_OK);
MessageBox(Handle, PAnsiChar('Message'), PAnsiChar('Title'), MB_ICONWARNING or MB_OK);

//Вместо преобразований к PAnsiChar пробовал переменные заводить этого типа и их в 
//качестве параметра передавать:
var Mes,title:PAnsiChar;


Пробовал во вне класса обращаться MessageBox(Form.Handle,...) и внутри так же пробовал: все одно - если стоит бит MB_ICONWARNING, то MessageBox не срабатывает... Даже ноль пробовал - не пашет.

Если есть какая-то хитрость особенная - то это фишка 2006 Дельфи ибо все приведенные выше способы вполне работоспособны на 7-ой Дельфи! Пример Ваш у меня не работает.
Одним словом, сколько я с бубном не плясал, но победить MB_ICONWARNING_ГЛЮК я так и не смог... с любыми другими сочетаниями кнопок, иконок, стилей - все прекрасно!

Дельфи 2006 снес - родная "семерка" - верный друг и помощник!

Кстати, у кого стоит - гляньте, если не сложно, есть ли там исходники Windows, System модулей, я что-то не посмотрел, а ставить заново только ради этого...

Это сообщение отредактировал(а) wesadex - 23.12.2005, 10:06
PM MAIL   Вверх
Петрович
Дата 23.12.2005, 12:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

Репутация: 25
Всего: 55



Цитата(_hunter @ 22.12.2005, 20:47)
шайтан аднака
пойду настройки ковырять...

А ты посмотри свои настройки цвета.


--------------------
Все знать невозможно, но хочется
PM ICQ   Вверх
Петрович
Дата 23.12.2005, 13:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

Репутация: 25
Всего: 55



Цитата(wesadex @ 23.12.2005, 10:23)
все одно - если стоит бит MB_ICONWARNING, то MessageBox не срабатывает... Даже ноль пробовал - не пашет.

1. При чем тут Delphi? Дело в том, что MessageBox это чистый вызов WinAPI.
2. Прежде чем такое утверждать, надо проверять на простейших примерах типа:
Код

procedure TForm1.Button1Click(Sender: TObject);
begin
  MessageBox(Handle, PAnsiChar('Message 1'), PAnsiChar('Title'), MB_ICONWARNING or MB_OK);
  MessageBox(     0, PAnsiChar('Message 2'), PAnsiChar('Title'), MB_ICONWARNING or MB_OK);
end;

Так вот, в этом примере все работает нормально!

Что-же касается твоих проблем то:
Цитата(wesadex @ 23.12.2005, 10:23)
А по-разному пробовал:
Внутри метода класса:
Код

MessageBox(hInstance, PAnsiChar('Message'), PAnsiChar('Title'), MB_ICONWARNING or MB_OK);
MessageBox(Handle, PAnsiChar('Message'), PAnsiChar('Title'), MB_ICONWARNING or MB_OK);

1. Передача hInstance это полный бред. Первым параметром MessageBox может быть только либо 0, либо хендл ОКНА. Передеча ему хндла любого другого объекта будет восприниматься как ошибка, и окно выводиться НЕ БУДЕТ!.
2. Из данного фрагмента совершенно не ясно чей Handle имеется ввиду. Свойство Handle имеется у многих объектов Delphi а не только у формы.

Еще, пожалуй обращу внимание на одну особенность работы MessageBox. Возможно это натолкнет на мысль о том почему у тебя она "не работат".
Если в качестве хэндла отцовского окна (первый параметр) ей передать 0, то окно сообщения не будет модальным по отношению к приложению. Т.е., активное окно приложения останется активным, а значит сможет принимать все сообщения. В приведенном мною примере, во время отображения второго сообщения (Message 2), можно переключиться на окно приложения и снова нажать кнопку Button1 со всеми вытекающими последствиями. Данное поведение функции при неправильном ее использовании может приводить к рекурсии. Например, если ее вызывать при обработке OnPaint.
Чтобы избежать подобных проблем, можно добавить флаг MB_TASKMODAL:
Код

MessageBox(0, PAnsiChar('Message'), PAnsiChar('Title'), MB_ICONWARNING or MB_OK or MB_TASKMODAL);

Но, все равно, использовать ее для отладки OnPaint не стоит smile.


--------------------
Все знать невозможно, но хочется
PM ICQ   Вверх
_hunter
Дата 23.12.2005, 14:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 15
Всего: 98



а как поменять BDSPROJECTSDIR причем не "User override" а глобально?
потому как делфи упорно пытается загрузить пакеты из системного значения, наплевав на пользовательское


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Alex
Дата 23.12.2005, 14:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

Репутация: 80
Всего: 162



Цитата(_hunter @ 23.12.2005, 14:20)
а как поменять BDSPROJECTSDIR причем не "User override" а глобально?
потому как делфи упорно пытается загрузить пакеты из системного значения, наплевав на пользовательское

Если правильно понял

Присоединённый файл ( Кол-во скачиваний: 92 )
Присоединённый файл  01.jpg 55,66 Kb


--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
_hunter
Дата 23.12.2005, 14:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 15
Всего: 98



блин.
борланд порадовал:
http://qc.borland.com/wc/qcmain.aspx?d=10265
что за "as designed"? точнее нафига.


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
rsm
Дата 23.12.2005, 16:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Я вот тут интерес имею: может ли сабж создавать нормальные Win32-приложения? Или он выдает только .NET'овый полу- недо- код?

Это сообщение отредактировал(а) rsm - 23.12.2005, 16:25
PM MAIL   Вверх
_hunter
Дата 23.12.2005, 16:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 15
Всего: 98



может и обычные Win32


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
_hunter
Дата 23.12.2005, 16:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 15
Всего: 98



еще один глюк обнаружил ( по крайней мере для C++ Builder-части ) -- полностью ( или почти полностью smile ) игнорируется Browsing path из опций среды.
поэтому не находит файлы исходников VCL smile


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
_hunter
Дата 23.12.2005, 17:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 15
Всего: 98



и еще один глюк: после 750-й строки перестает работать Code completion ( причем четко после 750-й )


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Петрович
Дата 23.12.2005, 19:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

Репутация: 25
Всего: 55



Цитата(_hunter @ 23.12.2005, 15:20)
потому как делфи упорно пытается загрузить пакеты из системного значения, наплевав на пользовательское

Если я правильно понимаю то что имел ввиду автор, то Delphi IDE всегда грузила пакеты по обычным правилам загрузки dll в Windows. Т.е., пакеты, как и обычные dll, ищутся в следующих каталогах:

  • Текущий каталог процесса
  • Список каталогов из пользовательской переменной окружения PATH
  • Список каталогов из системной переменной окружения PATH
  • Каталог System32
  • Каталог System

Возмоно я напутал с порядком, но сути это не меняет.

Поскольку по умолчанию параметр "Environment Option" -> "Delphi Options" -> "Library - Win32" -> "Package output dirrectory" задан равным каталогу проектов, точно уже не помню значение smile, то именно этот каталог и добавляется при инсталяции в переменную окружения PATH.
Если Вы размещаете Ваши пакеты где-то в другом месте, то вам необходимо добавить это место в переменную PATH.

Цитата(_hunter @ 23.12.2005, 15:53)
что за "as designed"? точнее нафига.

Что значит "нафига"?

Цитата(_hunter @ 23.12.2005, 17:36)
еще один глюк обнаружил ( по крайней мере для C++ Builder-части ) -- полностью ( или почти полностью  ) игнорируется Browsing path из опций среды.
поэтому не находит файлы исходников VCL 

При работе с Delphi проектами такой проблемы не наблюдал!
Особенно интересно что значит "( или почти полностью )"? Он что, игнорирует только четные или только не четные пути? smile Лично мне трудно предствить как можно достигнуть избирательности игнорирования, если конечно это не закладывать специально smile.


Цитата(_hunter @ 23.12.2005, 18:59)
и еще один глюк: после 750-й строки перестает работать Code completion ( причем четко после 750-й )

Опять же в Delphi-проекте, у меня есть модули размером более 1000 строк. У меня в них нет проблем с Code completion.
Может у вас где-то в районе 750-й строки есть синтаксическая ошибка? Модуль транслируется?


--------------------
Все знать невозможно, но хочется
PM ICQ   Вверх
_hunter
Дата 23.12.2005, 20:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 15
Всего: 98



по поводу пакетов: в том то и прикол что задано там $(BDSPROJECTSDIR)\bpl
и в User overrides ( Options->Environment Options->Environment Variables ) наличиствует этот оверрайд. но пакеты валятся по пути, указанному в System Variables и, даже если их переинсталировать ( Component->Install Packages... ) из каталога User overrides -- студия их пытается найти в System Variables и в каталоге User overrides искать даже не пытается.

по поводу "Что значит "нафига"?" это так -- мысли в слух. просто интересно зачем нужно было хард-кодить положение папки проектов в папку "Мои документы"

по поводу "интересно что значит "( или почти полностью )"?" исходники того же Virtual TreeView прекрасно находит. исходники VCL -- не находит.

но это ( как и Code completion ) как я понимаю, проблема Builder-части.
не зря, видно, его Preview обозвали...


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Петрович
Дата 23.12.2005, 23:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

Репутация: 25
Всего: 55



Цитата(_hunter @ 23.12.2005, 21:21)
по поводу пакетов: в том то и прикол что задано там $(BDSPROJECTSDIR)\bpl
и в User overrides ( Options->Environment Options->Environment Variables ) наличиствует этот оверрайд. но пакеты валятся по пути, указанному в System Variables ...

Аааа. Теперь понятно о чем речь.
Вообще-то, Мне казалось что в "Environment Option" -> "Delphi Options" -> "Library - Win32" -> "Package output dirrectory" он вообще не терпит указания переменных. Я когда-то, еще в Delphi 6 пробовал поставить туда User переменную и меня игнорировали. С тех пор и считал что там нельзя указывать переменные. Правда, я не догадался попробовать подставить системную переменную.

Цитата(_hunter @ 23.12.2005, 21:21)
по поводу "Что значит "нафига"?" это так -- мысли в слух. просто интересно зачем нужно было хард-кодить положение папки проектов в папку "Мои документы"

Может у меня трудности с английским, но я что-то не увидел по указанной ссылке ничего подобного!


Цитата(_hunter @ 23.12.2005, 21:21)
но это ( как и Code completion ) как я понимаю, проблема Builder-части.

Возможно, хотя и странно.


--------------------
Все знать невозможно, но хочется
PM ICQ   Вверх
Чел
Дата 24.12.2005, 06:15 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Кто-нибудь может ответить мне на вопрос, зачем Борланд после 7-мой версии поменяли дизайн?
Хотя бы одну причину?
  Вверх
Grol
Дата 24.12.2005, 06:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Вообще нормально, где купить и будет ли дистрибутив на DVD. А так спасибо за статью, а то я юзаю в Delphi 7 и больше ничего не знаю. Пора переходить на новые версии Delphi.
--------------------
Живи так, как будто тебе предстоит умереть завтра...Учись так, как будто тебе предстоит жить вечно.........
PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

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

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

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

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


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

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


 




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


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

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