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

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

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Каждой кнопке в наследнике прописать inherited ?
    А разве наследник не должен использовать обработчик родителя, если я не переопределяю обработчик?

    Всего записей: 4 | Зарегистр. 16-06-2010 | Отправлено: 15:17 14-04-2011 | Исправлено: liron111, 15:47 14-04-2011
    svs123456789

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

    Цитата:
    Я так понимаю, join вам ничего не говорит?

     у меня одна таблица и нечего джойнить!

    Всего записей: 2934 | Зарегистр. 10-04-2003 | Отправлено: 15:25 14-04-2011 | Исправлено: svs123456789, 15:26 14-04-2011
    greenpc

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

    Код:
    select table.*, iif(table.CODE= 1, 'ONE' , IIF(table.CODE=2 ,'TWO' ,'UNKNOW')) AS name from table
     
    Но проще создать таблицу(справочник) и join

    Всего записей: 401 | Зарегистр. 18-04-2003 | Отправлено: 15:40 14-04-2011 | Исправлено: greenpc, 15:42 14-04-2011
    V1s1ter



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    svs123456789
    Чегото я не въехал. Напишите структуру таблице и что конкретно надо, а то мы все тут телепаты, но на отдыхе...

    Всего записей: 948 | Зарегистр. 06-02-2007 | Отправлено: 16:06 14-04-2011
    volser

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    svs123456789
    Сделайте локальный датасет (в памяти) и уже на него сделайте лукап.

    Всего записей: 713 | Зарегистр. 31-03-2006 | Отправлено: 23:43 14-04-2011
    KorolCOOL



    BANNED
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите пожалуйста какой DataSet использовать для JvDBRichEdit. (Поставил JVCL). При запуске и попытке что-либо напечатать ничего не получается (еще звук такой характерный раздается, типа "ты че втыкаешь?"). Пробовал делать так делать так:
     
    JvQuery
    JvDataSource
    Ну и JvDBRichEdit.
     
    В query вписал запрос на выборку из поля с типом BLOB. До этого заранее сделал в WordPad'е rtf документ и залил в соответствующее поле. При запуске относительно все идет как положено.  
     
    Но в DBRichEdit'е отображаются символы которые были в документе, но помимо них еще куча всякой абракадабры, напоминает разметку HTML, наверно это прибамбасы специфичные для rtf. И самое главное текст как раз то ни ввести, ни отредактировать.
     
    Я подозреваю что это из-за того что DataSet'ом выступает запрос на выборку. Может сделать по событию onChange DBRichEdit'а изменение запроса JvQuery ? Но это больше похоже на костыль. Кто-нибудь знает правильный выход из данной ситуации?  
     
    P.S. Еще хочу спросить насчет работы с текстом из DBRichEdit, где можно раздобыть информацию по данному вопросу. На wiki офф сайта еще пока все пусто. В паре имеющихся книг тоже особо ничего не нашел.  
     
    Насколько я уловил из справки Дельфы для форматирования текста внутри этого компонента необходимо сделать внешний интерфейс (ну там кнопочки, переключатели ...) с помощью которого пользователь сможет настроить шрифт, размер, отступы и т.д т.п. То есть должно быть похоже на панель в которой на форумах сообщения пишут и добавляют. Поэтому позарез нужна информация как это сбацать.

    Всего записей: 38 | Зарегистр. 04-11-2009 | Отправлено: 15:31 15-04-2011
    Frodo_Torbins

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    KorolCOOL
    Вы демку richedit.dpr у себя на компьютере нашли? Делайте все как там.
    Что касается датасетов, то их выбор полностью зависит от БД, с которой нужно работать.

    Всего записей: 2318 | Зарегистр. 24-05-2007 | Отправлено: 15:56 15-04-2011
    KorolCOOL



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

    Цитата:
    Вы демку richedit.dpr у себя на компьютере нашли?

    Её как бе нету.
     
    Еще хочу спросить можно ли в одном DBRichEdit соединить данные из нескольких полей, если нельзя то с помощью чего можно это сделать?
    Т.е я из MySQL базы, из таблицы выбираю 1 строку и мне необходимо соединить данные их двух полей этой строки, причем одно будет с форматированием (BLOB поле), а другое без (просто Text).
     
     
    Нашел решение (На всякий случай опишу): в простой JvRichEdit сначала потоком загружаю данные из BLOB поля (Запроса JvQuery),  а затем методом JvRichEdit.Lines.Insert() все хорошо вставлятся из остальных полей в нужные места.

    Всего записей: 38 | Зарегистр. 04-11-2009 | Отправлено: 07:28 16-04-2011 | Исправлено: KorolCOOL, 13:36 17-04-2011
    RuPurple



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Имеется форма с компонентом TScrollbox, который содержит только TImage с картинкой. Для того чтобы организовать вертикальную прокрутку Scrollbox колесиком мышки был написан следующий код:
    Подробнее...
    Но почему-то этот код сам по себе не работает. Т.е. он работает только если в Scrollbox поместить, например, кнопку. Но мне кнопка там совсем не нужна. Как заставить Scrollbox обрабатывать события MouseWheelUp и MouseWheelDown?

    Всего записей: 724 | Зарегистр. 21-02-2010 | Отправлено: 16:33 17-04-2011 | Исправлено: RuPurple, 16:58 17-04-2011
    greenpc

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

    Код:
    procedure TForm1.FormShow(Sender: TObject);
    begin
     with Img1.Picture, scrlbx1 do
     begin
          HorzScrollBar.Range:= Width;
          VertScrollBar.Range:= Height;
     end;
    end;
    procedure TForm1.FormMouseWheel(Sender: TObject; Shift: TShiftState;
      WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
    var
      Msg: Cardinal;
      Code: Cardinal;
      I, ScrollLines: Integer;
      ScrollBoxCursosPos: TPoint;
    begin   //position of the mouse cursor related to TScrollBox
        ScrollBoxCursosPos := scrlbx1.ScreenToClient(Mouse.CursorPos);
        if (PtInRect(scrlbx1.ClientRect, ScrollBoxCursosPos)) then // мышь(курсор) над ScrollBox
        begin
          Handled := True;
          If ssShift In Shift Then //зажат  Shift ?
            msg := WM_HSCROLL // да - горизонтально
          Else
            msg := WM_VSCROLL; //  нет - вертикальный скрол
         If WheelDelta < 0 Then // направление "кручения" колеса мыши
            code := SB_LINEDOWN
          Else
            code := SB_LINEUP;
          ScrollLines:= Mouse.WheelScrollLines * 3; // сколько строк крутим(чувствительность)
          for I:= 1 to ScrollLines do  // собственно курчение
            scrlbx1.Perform(Msg, Code, 0);  
          scrlbx1.Perform(Msg, SB_ENDSCROLL, 0); // завершение прокрутки
        end;
    end;
     
     

    Всего записей: 401 | Зарегистр. 18-04-2003 | Отправлено: 08:35 19-04-2011 | Исправлено: greenpc, 16:59 19-04-2011
    RuPurple



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    greenpc
    Большущее спасибо!
    А где можно найти информацию про WM_HSCROLL, WM_VSCROLL, SB_LINEDOWN, SB_LINEUP ?
    Почему-то если в обработчике FormShow стоят HorzScrollBar.Range:= Width; VertScrollBar.Range:= Height; то отображается только кусочек картинки.  Если я их убираю, то все работает нормально.

    Всего записей: 724 | Зарегистр. 21-02-2010 | Отправлено: 15:57 19-04-2011 | Исправлено: RuPurple, 18:41 19-04-2011
    greenpc

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

    Цитата:
    А где можно найти информацию про WM_HSCROLL, WM_VSCROLL, SB_LINEDOWN, SB_LINEUP ?  
    _http://msdn.microsoft.com/ru-ru/

    Цитата:
    в обработчике FormShow  

    я делал для того, что если картинка больше размера ScrollBox- показались полосы прокрутки при условии что image.autosize :=true
     

    Всего записей: 401 | Зарегистр. 18-04-2003 | Отправлено: 14:39 20-04-2011
    DokPZ

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Господа подскажите, можно ли написать такую функцию, которая берет массив и обрабатывает его независимо от того какого он типа (real или integer)?

    Всего записей: 22 | Зарегистр. 12-12-2007 | Отправлено: 10:27 21-04-2011
    data man



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

    Цитата:
    можно ли написать такую функцию

    Можно. (array of const) и TypeInfo в помощь.
    А с generics (Delphi 2009 и выше) функция элементарна.

    ----------
    Любой достаточно развитый тролль неотличим от подлинно помешанного на какой-либо идее.
    Кекс. Антибиотики. Ламбада.

    Всего записей: 1696 | Зарегистр. 13-10-2005 | Отправлено: 11:13 21-04-2011
    GRom V

    Full Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Подскажите...создаю файл:
    AssignFile(F, Extractfilepath(application.exename)+'name.log');
     
    Как создать файл с именем равным текущей дате?

    Всего записей: 466 | Зарегистр. 31-10-2006 | Отправлено: 17:12 21-04-2011
    V1s1ter



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    GRom V
    А всправке что то типа DateToStr посмотреть слабо?

    Всего записей: 948 | Зарегистр. 06-02-2007 | Отправлено: 21:15 21-04-2011
    GRom V

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

    Цитата:
    А всправке что то типа DateToStr посмотреть слабо?

    У меня в семерке справка чет не открывается...по этому и спросил...
     
     
     
     
    Добавлено:
    Но все разобрался уже
    AssignFile(F, Extractfilepath(application.exename)+(DateToStr(Date)+'.log'));

    Всего записей: 466 | Зарегистр. 31-10-2006 | Отправлено: 00:22 22-04-2011
    ShIvADeSt



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

    Цитата:
    У меня в семерке справка чет не открывается...по этому и спросил...  

    У гугля спроси, там надо вначале апдейт поставить, чтобы хлпшники открывались, а потом если будет ругаться на индекс, то еще один апдейт. Просто текст ошибки в поиск и все потом открывается нормально.

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

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



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    GRom V
    В дополнение к ShIvADeSt, могу chm справку кинуть, она мне чего больше нравится.

    Всего записей: 948 | Зарегистр. 06-02-2007 | Отправлено: 12:36 22-04-2011
    KorolCOOL



    BANNED
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Как сохранить в BLOB поле (MySQL через BDE) форматированный текст из RichEdit'а. В частности используя TQuery. На каком-то ресурсе что-то такое было (больше не смог его отыскать, как ни старался), там сначала потоком данные из RichEdit сохранялись в параметр запроса, т.е. Query.Params... и потом уже осуществлялась подстановка. Пытался методом проб и ошибок сделать подобное, ничего не получилось.  
    Ну вот например
    Сразу скажу, что в низу ересь наиочевиднейшая, но от безысходности уже даже не знаешь что писать:
     

    Код:
    Query2.SQL.Add('insert into lab_work ');
    Query2.SQL.Add('set work = :w_stream');  
    Query2.Prepare;      
    Query2.Params.AddParam(Query2.Params.CreateParam(ftBlob, 'w_stream', ptInput));
    Stream:=TStringStream.Create(Query2.ParamByName('work_stream').AsBlob);
    EditW.RichEdit.Lines.SaveToStream(Stream);
    Stream.Free;
    Query2.Open;
     

     
    В итоге
    Query2: Field'w_stream' is an of unknown type
     
    И как я только не делал, че только не писал, в результате всегда фэйлится.
    В общем кто знает как правильно данные вещи реализуются?
     
     

    Всего записей: 38 | Зарегистр. 04-11-2009 | Отправлено: 14:42 22-04-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