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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
    dred2k



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ShIvADeSt, глядя на первоначальную тему вопроса Maks150988, могу предположить - есть ли уверенность, что в контроле что-то выбрано. Комбик может работать и так, что выбранного итема не будет.
     

    Всего записей: 403 | Зарегистр. 15-02-2006 | Отправлено: 12:23 10-12-2010
    EugeneBoss3



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Знатоки, может кто подскажет пример как реализовать всплывающее окно по типу TComboBox с компонентом TButtonEdit?

    Всего записей: 247 | Зарегистр. 15-09-2009 | Отправлено: 06:30 11-12-2010
    Frodo_Torbins

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    EugeneBoss3
    Создайте еще одну форму без рамки, и по клику показывайте ее в нужном месте.

    Всего записей: 2318 | Зарегистр. 24-05-2007 | Отправлено: 12:48 11-12-2010
    oRac001



    BANNED
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Пишу в Delphi небольшую программу, столкнулся с неожиданной проблемой. При работе программы все процедуры компонента MainMenu выполняются ровно один раз, т.е. если юзер выбирает диалог "сохранить файл" во второй раз, выбивает ошибка "Access violation at address 00457DB9 in module 'project1.exe'. Read of adress 0000000'. Подскажите, пожалуйста, что бы это могло быть.

    Всего записей: 2 | Зарегистр. 11-12-2010 | Отправлено: 15:18 11-12-2010
    tanaseduard



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    oRac001
    Код в студию.

    Всего записей: 518 | Зарегистр. 21-11-2009 | Отправлено: 15:24 11-12-2010
    mcdie



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    MapiSendMail перестал правильно работать у меня на XР, не выскакивает почтовая прога с аттачем и на других компах XP тоже не работает. На 2000й винде всё нормально работает. Вот код:

    Код:
     
    var
      MapiToDesc: TMapiRecipDesc;
      MapiFileDesc: array of TMapiFileDesc;
      MapiMessage: TMapiMessage;
      email : string;
      filename:string;
    begin
    ...
              filename:='C:\1.txt';
              email := someemail@mail.ru;
              FillChar(MapiToDesc, SizeOf(MapiToDesc), 0);
              with MapiToDesc do begin
                ulReserved:= 0;
                ulRecipClass:=MAPI_TO;
                if email <> '' then
                begin
                  lpszName := @email[1];
                  lpszAddress := @email[1];
                end
                else
                begin
                  lpszName:=nil;
                  lpszAddress:=nil;
                end;
                ulEIDSize:= 0;
                lpEntryID:= nil;
              end;
     
              SetLength(MapiFileDesc, 1);
              with MapiFileDesc[0] do
              begin
                ulReserved:= 0;
                flFlags:= 0;
                nPosition:= 0;
                lpszPathName:= PChar(fileName);
                lpszFileName:= nil;
                lpFileType:= nil;
              end;
     
              FillChar(MapiMessage, SizeOf(MapiMessage), 0);
              with MapiMessage do
              begin
                ulReserved := 0;
                lpszSubject:=nil;
                lpszNoteText:=nil;
                lpszMessageType := nil;
                lpszDateReceived := nil;
                lpszConversationID := nil;
                flFlags:=MAPI_RECEIPT_REQUESTED;
                lpOriginator := nil;
                nRecipCount:=1;
                lpRecips:=@MapiToDesc;
                nFileCount := 1;
                lpFiles := @MapiFileDesc[0];
              end;
     
              MapiSendMail(0, Application.Handle, MapiMessage, 0, 0);
    end;
     

    Может здесь чтото не указано для XP, подскажите пожалуйста.

    Всего записей: 145 | Зарегистр. 03-05-2006 | Отправлено: 18:16 13-12-2010 | Исправлено: mcdie, 18:21 13-12-2010
    Frodo_Torbins

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    mcdie
    Можно через командную строку почтовик вызвать:
    Код:
    ShellExecute(Self.Handle, nil, '"mailto:somebody@example.com?subject=This is ' +
      'the subject&body=The message''s first paragraph.%0ASecond paragraph.%0AThird ' +
      'Paragraph."', nil, nil, SW_SHOWNORMAL);
    Правда таким образом можно составлять только простые письма.

    Всего записей: 2318 | Зарегистр. 24-05-2007 | Отправлено: 19:12 13-12-2010 | Исправлено: Frodo_Torbins, 19:12 13-12-2010
    mcdie



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Frodo_Torbins
    Спасибо, мне этот способ ивзвестен, но нужно с вложением. Низнаю что произошло, может с MAPI32.dll чтото в XP.

    Всего записей: 145 | Зарегистр. 03-05-2006 | Отправлено: 09:26 14-12-2010
    ShIvADeSt



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

    Цитата:
    Спасибо, мне этот способ ивзвестен, но нужно с вложением. Низнаю что произошло, может с MAPI32.dll чтото в XP.

    Я посмотрел твой код и сравнил со своим - достаточно много различий, у тебя нет MAPILogon и прочие мелочи. Свой код я брал отсюда http://www.delphisources.ru/pages/faq/base/mapi_with_attach.html
    у меня все работает, при этом проверял и в случае с The Bat и Outlook.

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

    Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 01:54 15-12-2010
    EugeneBoss3



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

    Цитата:
    Создайте еще одну форму без рамки, и по клику показывайте ее в нужном месте

    Сейчас так и решаю проблему, но хотелось бы в виде компонента, т.е. нужно пример реализации всплывающего окна по типу TComboBox, но без стандартной стрелки вниз.

    Всего записей: 247 | Зарегистр. 15-09-2009 | Отправлено: 11:52 16-12-2010
    Frodo_Torbins

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    EugeneBoss3
    Вот вроде чтото похожее: http://delphikingdom.com/asp/viewitem.asp?catalogid=1213

    Всего записей: 2318 | Зарегистр. 24-05-2007 | Отправлено: 16:30 16-12-2010
    alex1334

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    В дэльфи 7 хотел изменить курсор по нажатию кнопки мыши. В обработчике события нажития кнопки командой statusBar1.Cursor:=crHSplit  но курсор изменяет свой вид только после отпускания кнопки. Как раз в обработчике отпускания кнопки я востанавливаю вид курсора  statusBar1.Cursor := crdefault
     Как поступить Если мне надо чтобы вид курсора изменился пока удерживаеться нажатой кнопка мыши

    Всего записей: 148 | Зарегистр. 10-10-2010 | Отправлено: 18:28 18-12-2010
    Frodo_Torbins

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    alex1334
    WinAPI-шный SetCursor всегда в вашем распоряжении. А в D2010 у меня еще такой код работает: "Panel1.Perform(WM_SetCursor, Panel1.Handle, HTCLIENT);" (после установки нужного курсора).

    Всего записей: 2318 | Зарегистр. 24-05-2007 | Отправлено: 23:47 18-12-2010
    EugeneBoss3



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Frodo_Torbins
    RyComboControls от Алексея Румянцева я уже пробовал, но очень много багов. Может еще что-нить похожее подскажете?

    Всего записей: 247 | Зарегистр. 15-09-2009 | Отправлено: 05:18 19-12-2010
    Frodo_Torbins

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    EugeneBoss3
    Там есть еще несколько вариантов от других авторов. А безбажные версии наверно лучше искать в больших пакетах типа ТМС.

    Всего записей: 2318 | Зарегистр. 24-05-2007 | Отправлено: 17:25 19-12-2010
    TechnoDreamer

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    alex1334
    Да, есть такое, лечится легко.

    Код:
     
    procedure TForm1.Panel1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X,
      Y: Integer);
    begin
        Cursor := crHSplit;
        Perform(WM_SETCURSOR, Handle, HTCLIENT);
    end;
     

    Всего записей: 259 | Зарегистр. 01-06-2008 | Отправлено: 23:26 21-12-2010
    StalkerSoftware



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Hi All,
     
    Word 2003 SP3.
     
    Есть такой код:

    Код:
     
     var
        FOleWord :ОleVariant;
     
     try
       FOleWord := GetActiveOleObject('Word.Application');
     except
       FOleWord := CreateOleObject('Word.Application');
     end;
     
     FOleWord.Documents.Add(EmptyParam);
     
     FOleWord.Selection.InsertFile(FileName := 'd:\x.doc');
     FOleWord.ActiveWindow.Activate;
     FOleWord.Activate;
     

    На компе не запущена ни одна копия Word'а.  
    Запускаю код. Он запускает Word, добавляет пустую страницу и открывает в ней файл, делает Word видимым.
     
    Я переключаюсь в Word и вызываю диалог поиска (Ctrl+F).
    То есть в Word'e становится активным (выделенный заголовок окна) именно диалог поиска - ЭТО ВАЖНО.
     
    Запускаю свой код повторно и на строке с Documents.Add получаю ошибку класса EOleException с текстом  

    Цитата:
    Метод или свойство Add недоступны, потому что диалоговое окно ''Найти'' или ''Заменить'' открыто.

    Если же после вызова диалога поиска ткнуть мышкой на само окно Word'а (то есть вернуть фокус основному окну Word'а), то данной ошибки не происходит.
     
     
    Вопрос: Как эту ошибку обойти ? Может как то можно программно перенести фокус с диалога поиска на само окно Word'a ?

    Всего записей: 682 | Зарегистр. 23-06-2008 | Отправлено: 15:33 22-12-2010 | Исправлено: StalkerSoftware, 15:36 22-12-2010
    Wahnsinn



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Столкнулся с такой проблемой - в случае, если в программе было создано подключение к базе (используя odac), а же потом создана главная форма приложения, то создание письма через MAPI (через весьма распространенную функцию function SendEMail(Handle: THandle; Mail: TStrings): Cardinal; или же сторонние компоненты) возвращает код 2 (MAPI_E_FAILURE),
    Как собственно попытаться обойти это, не меняя порядок создания форм.  
     

    Всего записей: 129 | Зарегистр. 20-01-2007 | Отправлено: 21:33 22-12-2010
    Frodo_Torbins

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Wahnsinn
    Чуть выше на этой странице я предлагал альтернативный вариант, возможно он вам подойдет?

    Всего записей: 2318 | Зарегистр. 24-05-2007 | Отправлено: 21:51 22-12-2010
    Wahnsinn



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Frodo_Torbins
    к сожалению нет, требуется вложение документов.

    Всего записей: 129 | Зарегистр. 20-01-2007 | Отправлено: 22:05 22-12-2010
    Открыть новую тему     Написать ответ в эту тему

    Страницы: 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