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

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

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

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125

Открыть новую тему     Написать ответ в эту тему

ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Продолжение темы Вопросы по Delphi (до версии 2009) - часть 5

Познаем сами, помогаем другим...
Обсуждаем вопросы, не связанные с юникоидными версиями Delphi - для этого есть соответствующая тема (см. ссылки ниже).


 
Правила топика:
    Прежде чем спрашивать:
  1. Желательно изучить вопрос, попытаться найти ответ в прилагаемых мануалах, хелпах и анализируя исходники.
  2. Выполнить поиск по топику (открыть "Версия для печати" и поискать ответ там).
  3. Применить фильтр по разделу "Прикладное программирование". Ответы на многие старые вопросы могли быть даны в отдельных темах.
  4. Продумайте вопрос. На поверхностные вопросы вы получите поверхностные ответы, или вообще ответов не получите.
  5. Желательно указывать версии используемого компилятора и операционной системы.
    Прежде чем отвечать:
  1. Если не можете помочь, не мешайте.
  2. Если уж вы отвечаете на вопрос, давайте ответ по сути.
  3. Если вы не уверены, так и говорите! Ошибочный, но авторитетно звучащий ответ хуже, чем отсутствие ответа.
  4. Задавайте дополнительные вопросы, чтобы получить больше информации.
  • Отсутствие ответа не равносильно игнорированию - иногда участники форума просто не знают ответ. Повторная посылка вопроса не приветствуется. Посты типа "неужели никто не знает ответа..." или "может мне все-таки кто-нибудь ответит" недопустимы.  
  • Все большие куски кода (более 5 строк) оформляем в тег [morе] дабы уменьшить размер поста. FAQ по тегу [morе].


    Некоторые "родственные" топики:
     
  • Вопросы по Delphi (версии 2009-2010 Weaver)
  • Вопросы по компонентам для Delphi, C++ Builder
  • Использование DevExpress
  • Вопросы по Ehlib
  • Компоненты и утилиты для Delphi/BCB/FreePascal/Lazarus - только Open Source
  • Коммерческие компоненты и утилиты для Delphi/BCB
  • кабак программистов :)
     
    См. также: Некоторые полезные ресурсы о Delphi
     
    И старайтесь, чтобы ваш код не попал сюда :)

  • Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 05:13 19-05-2010 | Исправлено: akaGM, 02:33 15-07-2020
    A1exSun



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Как самому вызвать procedure TForm1.ButtonEqualClick(Sender: TObject); ?

    Всего записей: 1871 | Зарегистр. 25-11-2009 | Отправлено: 13:56 10-12-2011
    Frodo_Torbins

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    A1exSun
    Так как вызывают обычную процедуру. В скобках впишите любую кнопку, либо можно саму форму.
    Кстати вы читали статью, на которую я давал ссылку? Думаю что если бы читали, то такой простой вопрос не задавали бы

    Всего записей: 2318 | Зарегистр. 24-05-2007 | Отправлено: 14:19 10-12-2011 | Исправлено: Frodo_Torbins, 14:20 10-12-2011
    ShIvADeSt



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

    Цитата:
    Так как вызывают обычную процедуру. В скобках впишите любую кнопку, либо можно саму форму.  

    Хм не совсем верно ИМХО, особенно если данная процедура принадлежит нескольким кнопкам и результат зависит от тага.
    Все таки правильнее будет так
    ButtonEqual.Click;
    либо  
    ButtonEqual.Perform(BN_CLICKED, 0, 0)
    последний пример пишу по памяти, но суть думаю понятна. Особенно если нужно не клик послать, а другое сообщение.


    ----------
    И создал Бог женщину... Существо получилось злобное, но забавное...

    Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 15:50 10-12-2011
    A1exSun



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

    Цитата:
    ButtonEqual.Click;  
     либо  
     ButtonEqual.Perform(BN_CLICKED, 0, 0)

    Ошибка и так и так.

    Всего записей: 1871 | Зарегистр. 25-11-2009 | Отправлено: 16:56 10-12-2011
    alex1334

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Добрый день.  
    У меня есть длитель выполняющаяся цикличекая процедура вычисления. существует ли какой нибудь оператор чтобы как то отдавать часть времени   для обработки событий на форме. а то программа перестает реагировать даже на события завершения приложения

    Всего записей: 148 | Зарегистр. 10-10-2010 | Отправлено: 20:00 10-12-2011
    akaGM

    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    alex1334
    попробуй в этом цикле вызывать Application.ProcessMessages
    можно не каждую итерацию, а хотя бы каждую 10-ую,
    в общем, это подбирается отдельно...

    Всего записей: 24107 | Зарегистр. 06-12-2002 | Отправлено: 20:30 10-12-2011
    perceptron

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    2 A1exSun:
    как уже советовал ShIvADeSt должно работать

    Код:
     
    ButtonEqual.Click;
     

    (Если ButtonEqual - это твоя кнопа на форме)
     
    Можно ещё и так эмулировать нажатие:

    Код:
     
       ButtonEqual.Perform(WM_LBUTTONDOWN, 0, 0);
       ButtonEqual.Perform(WM_LBUTTONUP, 0, 0);
     

    Всего записей: 433 | Зарегистр. 23-12-2005 | Отправлено: 23:49 10-12-2011
    A1exSun



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

    Цитата:
    Кстати вы читали статью, на которую я давал ссылку?

    Частично

    Цитата:
    как уже советовал ShIvADeSt должно работать


    Код:
    ButtonEqualClick(ButtonEqual.Click);

    [DCC Error] lab8.pas(64): E2010 Incompatible types: 'TObject' and 'procedure, untyped pointer or untyped parameter'

    Всего записей: 1871 | Зарегистр. 25-11-2009 | Отправлено: 23:56 10-12-2011
    Frodo_Torbins

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    A1exSun
    Вы все в кучу смешали. Если вызываете метод кнопки (у вас Click) то больше ничего делать не надо, тем более что он не является функцией и значений не возвращает. Если же вызываете сразу обработчик (у вас ButtonEqualClick), то передавайте туда либо саму кнопку, либо форму.
    А статью продолжайте читать, и просветление обязательно наступит

    Всего записей: 2318 | Зарегистр. 24-05-2007 | Отправлено: 01:17 11-12-2011 | Исправлено: Frodo_Torbins, 01:18 11-12-2011
    Corsairs

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    А по моему вопросу (о саморисованных диалогах - сам вопрос на предыдущей странице) кто-нибудь подскажет, что почитать?

    Всего записей: 569 | Зарегистр. 30-06-2006 | Отправлено: 01:25 11-12-2011
    ShIvADeSt



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

    Цитата:
    Я хочу использовать в программе нестандартный диалог. Как я понимаю, для рисования используется редактор ресурсов (кстати, каким лучше всего воспользоваться?), но вот что делать дальше? Как вызвать этот диалог, и как организовать взаимодействие с ним? (т.е. передачу данных в диалог, обработку в диалоге и передачу данных в основную прогу)  

    Примерно так (естессно что константы и функции свои)
     
    Я диалоги создавал Restorator 2007
    hMain:=DialogBox(hInstance, PChar(MAINBOX), 0, @DlgFunc); - вызов диалога MAINBOX из ресурса
     
    function DlgFunc(hWnd: hwnd; Msg: dword; wParam: WPARAM; lParam: LPARAM): Longbool; STDCALL; - основная функция для обработки сообщений диалога
     
    А далее ловишь оконные сообщения и обрабатываешь их, например

    Код:
     
      case Msg of
        WM_INITDIALOG:
        WM_HOTKEY:
              case HIWORD(lParam) of
               VK_F10: FillEdit;
              end;
        WM_LBUTTONDOWN:
          begin
              Cur:=MakePoints(lParam);
              if PtInRect(CapRect,Cur) then SendMessage(hWnd,WM_SYSCOMMAND,$F012, 0);
          end;
        WM_CLOSE:
          begin
            UnregisterHotKey(hWnd,0);
            Shell_NotifyIcon(NIM_DELETE, @IconData);
            EndDialog(hWndAbout,0);
            EndDialog(hWnd,     0);
           end;
        WM_DRAWITEM: OnDrawItem(PDRAWITEMSTRUCT(lParam));
        WM_COMMAND:
          case LOWORD(wParam) of
          SC_CLOSE:SendMessage(hWnd,WM_CLOSE,0,0);
          SC_MINIMIZE:ShowWindow(hWnd,SW_HIDE);
          SC_RESTORE: begin
                    ShowWindow(hWnd,SW_SHOW);
                    SetForeGroundWindow(hWnd);
           end;
     


    ----------
    И создал Бог женщину... Существо получилось злобное, но забавное...

    Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 02:58 11-12-2011
    akaGM

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

    Цитата:
    Я хочу использовать в программе нестандартный диалог.
    нестандартный как противоположность стандартным, open/save/font/color/about?
    или просто диалоговая форма с функционалом под свою задачу?
    что?
    может быть прежде чем погружаться в дебри АПИ, посмотреть какие-нибудь готовые с исходниками? это если я правильно понял вопрос...
    вернее надо так спросить:
    приложение основано на VCL или API?
     
    а редактор ресурсов может быть любым, я вот до сих пор пользуюсь борландовским Resource Workshop, тебе что на выходе надо, .rc, инклуды?

    Всего записей: 24107 | Зарегистр. 06-12-2002 | Отправлено: 09:52 11-12-2011 | Исправлено: akaGM, 09:54 11-12-2011
    Corsairs

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ShIvADeSt
    Попробую...
     
    akaGM
    Я имел в виду вариант
    Цитата:
    просто диалоговая форма с функционалом под свою задачу

    Да, программа на VCL...
     
    А где можно посмотреть готовые, с исходниками?
     
    Как я понимаю, для проекта надо .res (и он компилится из .rc)

    Всего записей: 569 | Зарегистр. 30-06-2006 | Отправлено: 11:37 11-12-2011
    akaGM

    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Corsairs
    значит, ты новичок в дельфях?
     
    для поиска примеров/компонентов с сорсами всегда начинай с торри:
    http://torry.net/pages.php?s=69
     
    особое внимание обращай на компоненты с пометкой FWS (freeware with sources)

    Цитата:
    Как я понимаю, для проекта надо .res (и он компилится из .rc)
    забудь...
    редактором ресурсов у тебя будет дельфи :)

    Всего записей: 24107 | Зарегистр. 06-12-2002 | Отправлено: 12:33 11-12-2011 | Исправлено: akaGM, 12:51 11-12-2011
    salexn1



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Сколько юзаю дельфи, но делать диалоги в редакторе ресурсов - это что-то новенькое.
    Чем Дельфовский дизайнер-то не устроил?

    Всего записей: 502 | Зарегистр. 21-02-2008 | Отправлено: 14:54 13-12-2011
    Corsairs

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Ну самоучка я... В основном при программировании использую метод научного тыка... (а также Гугл, DelphiWorld)
    Вот и спрашиваю - что почитать по этой теме... (и примерчики посмотреть - как делать и что)

    Цитата:
    Чем Дельфовский дизайнер-то не устроил?
    А где его искать?

    Всего записей: 569 | Зарегистр. 30-06-2006 | Отправлено: 15:14 13-12-2011
    salexn1



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Corsairs
    А Дельфи хоть установлен?
    Начни с любой книги... Судя по всему еще ни строчки кода на Дельфи не было написано.
     
    тут простой пример с диалоговым окном
    хттр://ifolder.ru/27548482

    Всего записей: 502 | Зарегистр. 21-02-2008 | Отправлено: 15:25 13-12-2011
    akaGM

    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Corsairs
    фигня...
    все мы в большинстве своём такие и ничего, живём...
    главное: не стесняйся спрашивать, кто наезжает -- сам комплексует, а нормальные люди всегда помогут, ответят, обогреют... так, что-то не я того...
     
    диалог в VCL -- это та же форма, теже контролы и тд только со спец. атрибутами, кот. выставляются в инспекторе и всё...
    у тебя какая версия?
    в любом случае посмотри ссылки разные, позднее, если смогу напишу подробнее, если к тому времени не помогут более знающие люди...

    Всего записей: 24107 | Зарегистр. 06-12-2002 | Отправлено: 15:34 13-12-2011
    Corsairs

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Установлен D7.
    Когда я был студентом - мы учили Turbo Pascal (сначала на MSX Yamaha, а потом на 286...), так что кое-что умею и могу...
     
    akaGM
    Да понял я... И тоже стараюсь помочь, если в моих силах...

    Цитата:
    диалог в VCL -- это та же форма, те же контролы
    - ну, я так и представлял, просто не совсем понимаю механизм работы со всем этим... Вот и спрашиваю...

    Всего записей: 569 | Зарегистр. 30-06-2006 | Отправлено: 16:05 13-12-2011
    Frodo_Torbins

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Corsairs
    Ссылки в тему: http://www.delphikingdom.com/asp/viewitem.asp?catalogid=1266 http://www.delphikingdom.com/asp/viewitem.asp?catalogid=729 Вообще Королевство Делфи очень полезный сайт для новичка, я сам с него начинал. Сейчас правда там уже иногда попадается устаревшая информация, но в разделах Hello, World! и Лицей вы с такой врядли столкнетесь. А свежие новости всегда можно найти тут: delphifeeds.ru.

    Всего записей: 2318 | Зарегистр. 24-05-2007 | Отправлено: 16:36 13-12-2011 | Исправлено: Frodo_Torbins, 16:41 13-12-2011
    Открыть новую тему     Написать ответ в эту тему

    Страницы: 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 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125

    Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Delphi (до версии 2009) - часть 6


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru