Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Delphi (все версии) - часть 3

Модерирует : ShIvADeSt

ShIvADeSt (07-04-2008 02:27): продолжение в http://forum.ru-board.com/topic.cgi?forum=33&topic=9383  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101

   

Maks150988



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Да не. Ну как объяснить-то... Вобщем допустим гружу из ресурса эбаут диалог с заголовком блаблабла. Мне нужно поверх этого диалога вывести мессаджбокс или отправить в элемент на этом диалоге какой-то текст. В константу сую текст как раз то что отображается в заголовке эбаут диалога.  Но тут приперло локализовать приложение. Локализовать получится только строковые ресурсы, а этот текст остается в теле программы и геморройно потом изменять после компиляции. То есть понятно что если на инглишь допустим перевести заголовок О программе, то About получим и соответсвенно мессаджбокс не появится модально перед эбаут диалогом из-за несовпадения заголовка окна. Как быть?

Всего записей: 836 | Зарегистр. 23-12-2006 | Отправлено: 00:20 20-09-2007
OdesitVadim



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Еще раз говорю: когда создаётся диалог, запоминаем его хэндл. И никаких проблем с именами диалогов

----------
Press any key to continue or any other key to exit
Пишите так, чтобы не было стыдно за нобелевскую премию.

Всего записей: 1568 | Зарегистр. 19-09-2003 | Отправлено: 00:35 20-09-2007
Maks150988



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ну дайте код тогда. Я не знаю как вы хэндлы запоминаете... Шаманство...

Всего записей: 836 | Зарегистр. 23-12-2006 | Отправлено: 08:41 20-09-2007
GimTonik

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
У меня возникла проблема
 
Использую компонент TeeChart программно добавляю LineSeries, появляется проблема допустим у одной линии диапазон значений от 0 до 100 а у другой от 300 до 1500 естессно перевую уже не видно, нужно вручную добавить свой Axis... получилось но как-то криво (не правильно расположена) мне нужно чтобы для первой линии Axis был с слева, для второй справа, для третьей вверху и тд.
 
Подмогните плииз

Всего записей: 9 | Зарегистр. 05-07-2007 | Отправлено: 08:42 20-09-2007
rs

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
использую D7,  для работы с IB попробовал  TIBClientDataSet, заполнил его sql-выражением типа
  select * from table
связал его с гридом и запустив программу, заполнил грид вручную.
однако при выполении в коде команд  
  IBClientDataSet.ApplyUpdates(-1);
  IBTransaction.Commit;
измененея, сделанные в гриде, в БД не сохраняются (никаких exceptions не вываливается, всё проходит тихо)
 
что делаю не так?
 
есть ли где в сети _работающие_ примеры с исходными текстами по использованию TIBClientDataSet? - хотя бы в приведенной выше минимальной функциональности

Всего записей: 1344 | Зарегистр. 19-04-2003 | Отправлено: 08:58 20-09-2007 | Исправлено: rs, 08:59 20-09-2007
vserd

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
То есть мне нужно точно знать хэндл, надо которым помещать сообщение. У меня таких мессаджбоксов в приложении больше 20 штук и некоторые должны отображаться поверх определенных диалогов.  

А почему нельзя использовать getfocus?

Всего записей: 2065 | Зарегистр. 08-05-2002 | Отправлено: 09:25 20-09-2007
George_Lucky



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ситуация.
на форме для TEdit имеется обработчик OnChange
в D7 приложение работает корректно
а в D2007 если OnChange отрабтает, то после закрытии формы обрабатывается вновь, вызывая ошибку.
Посоветуйте, как ее ликвидировать или
в этом и есть принципиальное отличие D7 от D2007 ???

Всего записей: 413 | Зарегистр. 12-09-2002 | Отправлено: 11:26 20-09-2007
AntonVA1



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
rs
Тебе нужен TIBDataset
Книга мир interbase есть у тебя? там это хорошо описано.
 
Добавлено:
Она в сети есть. ищи. авторы Ковязин, Востриков
 
Добавлено:
Ладно, я тебе в пм главу кинул.

Всего записей: 474 | Зарегистр. 17-09-2003 | Отправлено: 12:38 20-09-2007
OdesitVadim



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Maks150988
Что есть хэндл? это просто 4байтовое целое. Кто мешает обявить переменную типа hwnd?

----------
Press any key to continue or any other key to exit
Пишите так, чтобы не было стыдно за нобелевскую премию.

Всего записей: 1568 | Зарегистр. 19-09-2003 | Отправлено: 14:53 20-09-2007
Maks150988



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
OdesitVadim
А как правильно объявить? Использую
procedure VersionDlgInit;
var
  hIcon, hWnd : Integer;
begin
  hIcon := LoadIcon(Inst, PChar(MAIN_ICON));
  hWnd := FindWindow(nil, 'опять же из константы гружу');
  SendMessage(hWnd, WM_SETICON, ICON_SMALL, hIcon);
  SendMessage(hWnd, WM_SETICON, ICON_BIG, hIcon);
end;
Как избавиться от константы?

Всего записей: 836 | Зарегистр. 23-12-2006 | Отправлено: 16:49 20-09-2007
lavren



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Maks150988
 
var s:string;
...
hWnd := FindWindow(nil, PChar(s));

Всего записей: 545 | Зарегистр. 29-05-2007 | Отправлено: 17:14 20-09-2007
Maks150988



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
lavren
ох блин спасибо. что-то я не додумался... блин...

Всего записей: 836 | Зарегистр. 23-12-2006 | Отправлено: 17:22 20-09-2007
JbBaD



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Люди подскажите...
В D2007 в OnKeyDown событии любого контрола нажатие Enter не ловица, а комбинация Ctrl+Enter отлавливается как Enter.
Как быть?

Всего записей: 562 | Зарегистр. 08-12-2001 | Отправлено: 18:36 20-09-2007
q2q2q2q2q2



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спаибо за интересную информацию




за подобный флуд можно и бан получить

Всего записей: 6 | Зарегистр. 10-01-2007 | Отправлено: 19:40 20-09-2007 | Исправлено: ShIvADeSt, 01:55 11-10-2007
rs

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AntonVA1
большое спасибо, разберусь
 
--
 
выяснил, что нужно еще обновить IBX - версию IBX11 нашёл, но оказалось, что для неё требуется SP1 для Delphi7
 
ссылку на скачивание SP1 для Delphi7 найти пока не удалось.  
 
подскажите, пожалуйста, где SP1 можно взять? желательно прямой линк (или могу принять SP1 аттачем в почте)
 
tnx

Всего записей: 1344 | Зарегистр. 19-04-2003 | Отправлено: 08:32 21-09-2007
skinash



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Maks150988
FindWindow возвращает HWND, LoadIcon возвращает HICON, поэтому будет правильнее так:

Код:

var
  hWnd: HWND;
  hIcon: HICON;

хотя работать будет и так.
 
Добавлено:
rs
Посмотри здесь.

Всего записей: 145 | Зарегистр. 21-09-2006 | Отправлено: 08:54 21-09-2007
rs

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
skinash
спасибо

Всего записей: 1344 | Зарегистр. 19-04-2003 | Отправлено: 09:09 21-09-2007
Maks150988



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
skinash
компилятор ругается Constant or type identifier expected.
 
Есть пара вопросов:
1) Как покрасить кнопку? Собственно код для использования цвета уже есть - покрасил статики и диалог. Это все работает. Но возникла прорблема с покраской кнопки.

Код:
 
    WM_CTLCOLORBTN : begin
                          case GetDlgCtrlId(lParam) of
                          BUTTON_PROPERTY:
                          begin
                            whitebrush := CreateBrushIndirect(WhiteLB);
                            SetBkColor(wParam, WhiteLB.lbColor);
                            result := whitebrush;
                          end;
                       end;
 

Пробовал также через GetDlgItem, но не работает код. Наверное я что-то не так делаю...
 
2) Как можно нормально поместить битмап на кнопку и если программа запущена например в ХР, то как можно применить к этой кнопке современный вид? А то классический вид у нее...

Всего записей: 836 | Зарегистр. 23-12-2006 | Отправлено: 10:37 21-09-2007
skinash



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Maks150988

Цитата:
компилятор ругается Constant or type identifier expected.

Наверно uses Windows надо.
2) Надо подключить манифест. В VCL просто бросить на форму TXPManifest. А в WinAPI надо какой то файлик создать.

Цитата:
 The manifest is a XML document. It will allow Windows XP to decide which  
  version of the comctl32.dll to use when binding.  
  The XML document contains information about the application you are  
  writing as well as information concerning the version of the comctl32.dll to use.

А файлик такой:

Код:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
 <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
 <assemblyIdentity
     version="1.0.0.0"
     processorArchitecture="X86"
     name="CompanyName.ProductName.MyProgram"
     type="win32"
 />
 <description>Your Application Description</description>
 <dependency>
     <dependentAssembly>
         <assemblyIdentity
             type="win32"
             name="Microsoft.Windows.Common-Controls"
             version="6.0.0.0"
             processorArchitecture="X86"
             publicKeyToken="6595b64144ccf1df"
             language="*"
         />
     </dependentAssembly>
 </dependency>
 </assembly>

Сохрани как WinXP.manifest  
Затем из этого файлика надо сделать ресурс:
Создай WinXP.rc с таким содержанием:
 
1 24 "WinXP.manifest"
 
Скомпилируй WinXP.rc в WinXP.RES
brcc32 WinXP.rc
 
Ну и подключи этот ресурс в своей программе сразу после
{$R *.DFM}:
 
{$R WinXP.res}
 
 
Вообще, скачай себе какой-нибудь сборник советов, например DelphiWorld или Delphi Russian Knowlege Base сразу многие вопросы отпадут.

Всего записей: 145 | Зарегистр. 21-09-2006 | Отправлено: 11:30 21-09-2007
Maks150988



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
skinash
Это все есть. Это когда с формами работаешь, там нормально SpeedButton выглядит. А когда с диалогами работаешь и на WinAPI картинку на кнопку суешь, классический стиль почему-то у кнопки. Не знаю почему манифест не применяется к такой кнопке...

Всего записей: 836 | Зарегистр. 23-12-2006 | Отправлено: 13:24 21-09-2007
   

Страницы: 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 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Delphi (все версии) - часть 3
ShIvADeSt (07-04-2008 02:27): продолжение в http://forum.ru-board.com/topic.cgi?forum=33&topic=9383


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru