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

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



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Может у кого есть пример как передать параметры из Dll в exe через PostMessage, зная Thandle exe? Ну и как их там обработать. Спасибо.

    Всего записей: 381 | Зарегистр. 25-01-2010 | Отправлено: 16:09 22-04-2011
    Molniev

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    По идеи это несколько разные вещи: PostMessage идёт через хенды окон (форм), через хенд процесса сообщение не передать. Поэтому я не уверен, что такой пример найдёться.
     
    Попробуйте другой способ, к примеру:
    Они в одном процессе:
    - Вызывать из exe функцию dll и передавать ей хенд окна с обработчиком. Эта функция запишет в глобальную переменную этот хенд и ваша dll будет её использовать
    - Сделайте CallBack (Функцию обратного вызова)
    Они в разных процессах:
    - Искать из библиотеки окно (форму) по тексту заголовка через FindWindow
    - Использовать другие средства передачи данных и синхронизации: использовать спроэцированные в память файлы и именнованные события

    Всего записей: 176 | Зарегистр. 13-03-2008 | Отправлено: 22:42 22-04-2011
    ShIvADeSt



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

    Цитата:
    По идеи это несколько разные вещи: PostMessage идёт через хенды окон (форм), через хенд процесса сообщение не передать.

    Если у процесса одно окно, то можно перебрать все окна, получить для каждого айдишник процесса, сравнить с нашим хэндлом, послать PostMessage. Но есть способ лучше Регаем собственный тип сообщения. Делаем бродкаст с нашим сообщением, оно гарантированно прилетит тому кто его ловит.

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

    Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 09:42 23-04-2011
    Maks150988



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Всем привет. Мне нужно распарсить m3u плейлист. Сделано в цикле.
     
    Тыдыдых!!!
     
    Почему в мессаджбоксе не удается отобразить Result[idItem].pszTextEx?

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



    Moderator
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Может потому что dwRet = 0?
    Брейкпойнты на верхние строки и смотри, что куда записалось.

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

    Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 06:58 25-04-2011
    Maks150988



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ShIvADeSt
    Вопрос снят. Сделал так. Через Pos немного удобнее, благо нативно, да и без приведения к LPWSTR/LPTSTR обходится вслучае lstrcmp.
    Далее
     
    Если у кого-то есть какие-то замечания к коду - прошу комментарии, хочется удостовериться что код лишен неожиданных изъянов.

    Всего записей: 836 | Зарегистр. 23-12-2006 | Отправлено: 19:24 25-04-2011 | Исправлено: Maks150988, 19:26 25-04-2011
    KorolCOOL



    BANNED
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Кто знает  в RichEdit'е есть какой-либо указатель на текущую строку или позицию? Не могу избавиться от следующей проблемы:
     
    Если залить в компонент сначала форматированный текст последние строки которого будут иметь какое-то стилевое оформление (будь то выравнивание или подчеркивание с курсивом), то потом это же оформление распространяется на последующий текст (т.е. если потом еще добавить текст в RichEdit то к нему применится это самое оформление).  
     
    Подскажите как этого избежать? Спасибо.

    Всего записей: 38 | Зарегистр. 04-11-2009 | Отправлено: 13:45 27-04-2011
    Molniev

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Сохранять свойство Font компонента RichEdit. Сохранили в другую переменную, "залить", приравняли свойство Font сохраненной переменной. Вот и все вроде.

    Всего записей: 176 | Зарегистр. 13-03-2008 | Отправлено: 20:36 27-04-2011
    KorolCOOL



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

    Цитата:
    Сохранять свойство Font компонента RichEdit. Сохранили в другую переменную, "залить", приравняли свойство Font сохраненной переменной. Вот и все вроде.

     
    Проблема в том, что я не могу никак найти где в RichEdit'е есть свойство или метод с помощью которого определятся положение указателя на место, с которым будут производиться следующие действия. Я имею ввиду как сказать проге делать какие-то определенные манипуляции с текстом именно (к примеру) в 25 строке от начала документа.

    Всего записей: 38 | Зарегистр. 04-11-2009 | Отправлено: 10:32 30-04-2011 | Исправлено: KorolCOOL, 10:42 30-04-2011
    ShIvADeSt



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

    Цитата:
    Я имею ввиду как сказать проге делать какие-то определенные манипуляции с текстом именно (к примеру) в 25 строке от начала документа.

    Если мне не изменяет память, то у рич едита есть возможность перейти к любой строке и символу в тексте. То есть встаешь у начала нужного текста, потом выделяешь сколько надо символов (SelLength вроде бы) и потом уже к выделению применяешь стили текста.

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

    Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 14:02 30-04-2011
    smirnvlad

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

    Цитата:
    Я имею ввиду как сказать проге делать какие-то определенные манипуляции с текстом именно (к примеру) в 25 строке от начала документа.

    вроде так
    Подробнее...

    Всего записей: 417 | Зарегистр. 31-03-2009 | Отправлено: 14:09 30-04-2011
    andrey777k



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подробнее...
    Помогите немогу понять почему!!!только началась белая полоса в проэкте как такая вот ошибка!

    Всего записей: 27 | Зарегистр. 19-02-2011 | Отправлено: 08:33 08-05-2011 | Исправлено: ShIvADeSt, 12:38 08-05-2011
    smirnvlad

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

    Цитата:
    Все большие куски кода (более 5 строк) оформляем в тег [morе] дабы уменьшить размер поста.

     
    ошибка не "тут", а в функции cof
    надо проверять результат CreateFile и GetFileSize, может они завершены с ошибкой и скорее всего ошибка в SetLength(data{2}, len); из-за неправильного размера

    Всего записей: 417 | Зарегистр. 31-03-2009 | Отправлено: 09:41 08-05-2011
    R3Pa4eK



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Всем привет! Вот решил написать библиотеку для вставки .png изображения. Использую pngimage .
     
    Код библиотеки
     
    Но на тех строчках (которые закомментированные) выбивает ошибку. Не могу понять, что я делаю не так.
     
    И еще:
    У меня Делфи вообще ничего не понимает OnClick, Left, Height он не знает. В var пишу lebel: TLabel; он ошибку выбивает. Что это такое?
    И как добавить Version Info в библиотеку?

    Всего записей: 963 | Зарегистр. 15-01-2011 | Отправлено: 14:29 14-05-2011 | Исправлено: R3Pa4eK, 14:33 14-05-2011
    Man_Without_Face



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    R3Pa4eK
    Ну, если я правильно понял, то: Project - Options - VersionInfo.
    Также вот процедура, возвращает строку с версией твоей проги:
    Подробнее...

    Всего записей: 381 | Зарегистр. 25-01-2010 | Отправлено: 16:04 14-05-2011
    GRom V

    Full Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Люди!!! Уже всю голову сломал! В делфи играю совсем недавно, поэтому прошу не пинать!
    Помогите плизЗ!
    На форму кинул два таймера, в приведенном ниже коде, проблема с Form1.BTimer2.enabled:=true
    Он зараза не врубается  
    главное  
    Form1.BTimer1.enabled:=true; работает, а верхний ниФиГа!!!
    Вроде все правильно, а не пашет!!! Что не так???
    И еще прикол - если я кидаю на форму третий таймер, и вгоняю его вместо Form1.BTimer2, но не удаляю Form1.BTimer2, то третий работает!??
     
    Создал поток:
      TNewThread1 = class(TThread)
      private
        { Private declarations }
    procedure checkproc;
    protected
    procedure Execute;
    override;
    end;
     
    {$R *.dfm}
    {TNewThread}
     
    procedure TNewThread1.Execute;
    begin while true do begin
    synchronize(checkproc);  
    sleep(1000);
    end;
    end;
     
    procedure TNewThread1.checkproc;  
    begin
    if EXE_Running('notepad.exe', False) then
    Form1.BTimer2.enabled:=true  
    else
    Form1.BTimer2.enabled:=false;
     
    if EXE_Running('wordpad.exe', False) then begin
    Form1.BTimer1.enabled:=true;
     
    procedure TForm1.FormCreate(Sender: TObject);
    begin
    NewThread1:=TNewThread1.Create(true);
    NewThread1.FreeOnTerminate:=true;
    NewThread1.Priority:=tpLower;
    NewThread1.Resume;

    Всего записей: 466 | Зарегистр. 31-10-2006 | Отправлено: 16:12 15-05-2011
    Frodo_Torbins

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    GRom V
    Единственное что приходит в голову, так это то что EXE_Running постоянно возвращает False. Другие ошибки по такому небольшому количеству кода не определить.

    Всего записей: 2318 | Зарегистр. 24-05-2007 | Отправлено: 17:07 15-05-2011
    GRom V

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

    Цитата:
    EXE_Running постоянно возвращает False.

    нет!!!
    Если вместо таймера пишу showmessage('test'); - сообщение вылазит, следовательно с  
    EXE_Running проблем нет!
    А вот таймер не врубается!

    Всего записей: 466 | Зарегистр. 31-10-2006 | Отправлено: 17:31 15-05-2011 | Исправлено: GRom V, 17:32 15-05-2011
    R3Pa4eK



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Имеется 5 dll'ок . Таскать их за собой не удобно, по-этому хочу спросить, как можно все эти dll'ки запихнуть в одну, и вызывать их функции через нее?

    Всего записей: 963 | Зарегистр. 15-01-2011 | Отправлено: 19:10 15-05-2011
    V1s1ter



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    GRom V
    Выложи весь тестовый проект, я посмотрю.

    Всего записей: 948 | Зарегистр. 06-02-2007 | Отправлено: 19:47 15-05-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