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

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

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

ShIvADeSt (19-05-2010 05:14): Продолжаем тут http://forum.ru-board.com/topic.cgi?forum=33&topic=11215  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

ShIvADeSt



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

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

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

  • Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 02:09 28-06-2009 | Исправлено: psa1974, 12:00 02-02-2010
    VandB



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Добрый день!
    Столкнулся с такой проблемой: Нужно узнать существует ли изображение в интернете или нет, например дается адрес хттп://мой сайт/папка/1.jpg надо узнать по этому адресу есть картинка или нет, (учитывая что может выйти страница с кодом ошибки 404). код должен быть минимален.... Изображение из нета загружается по этому коду :

    Код:
     
    tt:=pwidechar(edit1.tex);
      OleCheck(URLOpenBlockingStreamW(nil, tt, Stream, 0, nil));
      OleCheck(OleLoadPicture(Stream, 0, True, IID_IPicture, Pict));
      OleCheck(Pict.get_Handle(OLE_HANDLE(Bitmap)));
      Image1.Picture.Bitmap.Handle := Bitmap;
      image1.AutoSize:=true;
     

    Заранее спасибо.

    Всего записей: 164 | Зарегистр. 05-05-2009 | Отправлено: 19:57 25-04-2010
    EugeneBoss3



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Коллеги, вопрос по индексам в Apollo VCL.
    Помогите разобраться с созданием и применением индексов. Пытаюсь создать индекс как в хелпе написано, но изменения в гриде не отображаются.  
    Пример

    Всего записей: 247 | Зарегистр. 15-09-2009 | Отправлено: 03:20 26-04-2010
    AviDen



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    TechnoDreamer, а пусть твоё приложение отдаёт рисунки веббраузеру по http с локального хоста
     
    Добавлено:
    upd: а если серьёзно, то рыть нужно сюда: http://msdn.microsoft.com/en-us/library/aa767916(v=VS.85).aspx
     
    Т.е., предлагается при запуске приложения регистрировать свой собцтвенный Asynchronous Pluggable Protocol Handler для кастомной URL-схемы, напр., "MyApp", и потом через неё отдавать веббраузеру контент, используя ссылки типа "MyApp:folder1\folder2\image.jpg". Где-то так.

    Всего записей: 316 | Зарегистр. 05-06-2007 | Отправлено: 10:06 26-04-2010
    egerLESHIK



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Здравствуйте, уважаемые. Не могли бы Вы просветить на счет компоненты Tregistry в части работы с бинарными данными в реестре. И Google-м искал и на популярных форумах по Delphi побывал и некоторые книжки пересмотрел. Впрочем, видать, что-то недопонял.
    К примеру записываю некий набор цифр, например, 548158 в файл реестра, там он сохраняется под бинарным кодом: b8 c9 47 01. Если пытаться перезаписывать 548158 несколько раз в этот файл - код будет изменяться, к примеру у меня сохранялось под:
    - b8 c9 37 01;
    - b8 c9 3с 01;
    Как я обратил внимание всегда менялась 3 пара чисел. Здесь возникает вопрос, если бинарный код непостоянен, то есть я не могу его прочесть в переменную таким образом, чтобы он принял первоначальное значение - 548158?
    Вот собственно цель к которой иду, чтобы получить исходное значение 548158 из бинарного кода записанного в файл реестра.
    Спасибо.

    Всего записей: 950 | Зарегистр. 24-03-2004 | Отправлено: 16:36 26-04-2010
    AviDen



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    egerLESHIK, простите, но вы абсурд какой-то написали. TRegistry с бинарными данными работает безукоризненно. Ищите ошибки в своём коде.

    Всего записей: 316 | Зарегистр. 05-06-2007 | Отправлено: 17:29 26-04-2010
    Frodo_Torbins

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

    Всего записей: 2318 | Зарегистр. 24-05-2007 | Отправлено: 17:43 26-04-2010
    egerLESHIK



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Ну коль я где-то допустил ошибки, не могли бы Вы подсказать где мой промах? Ниже привожу коды:
    1. Запись данных в реестр:
    Из первой части кода, ясно что данные помещаются в number в бинарном виде, при этом в поле Edit2.Text ввожу "548158".
     
    А вот во второй части никак не могу разобраться, пытаюсь прочесть эти бинарные данные и вывести в первоначальном виде, то есть в Label1.Caption должно отобразиться "548158":
    2. Читаем бинарные данные из файла в реестре

    Всего записей: 950 | Зарегистр. 24-03-2004 | Отправлено: 18:16 26-04-2010 | Исправлено: egerLESHIK, 18:21 26-04-2010
    Frodo_Torbins

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    egerLESHIK
    aUser - указатель, SizeOf(aUser) - размер указателя. Кроме того, в реестр вы пытаетесь писать строку, а читать - число.

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



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    egerLESHIK
    исправьте Ваш код в 2-ух местах:
     

    Код:
     
     
    procedure Reg_WriteTools(dwRootKey: DWord; const sKey: string; const sField: string; aUser:Integer);
    ....
     
     
    Reg_WriteTools(HKEY_CURRENT_USER, 'Software\prog\test\tools','number',StrToInt(Edit1.Text));
     
     


    ----------
    Что будет стоить тысяча слов когда важна будет крепость руки? (В.Цой)

    Всего записей: 655 | Зарегистр. 22-06-2003 | Отправлено: 19:30 26-04-2010 | Исправлено: Bonivur, 19:31 26-04-2010
    egerLESHIK



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Frodo_Torbins
    Bonivur
     
    Премного благодарен за Вашу помощь. Спасибо, что уделили внимание. Действительно ошибка была в разных типах данных.

    Всего записей: 950 | Зарегистр. 24-03-2004 | Отправлено: 20:03 26-04-2010
    TechnoDreamer

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

    Цитата:
    upd: а если серьёзно, то рыть нужно сюда: http://msdn.microsoft.com/en-us/library/aa767916(v=VS.85).aspx  

    Да, этот вопрос я уже немного изучил. Только насколько я понимаю, использование не клиент-серверной модели вряд ли получится. А разделять приложение на два, это как минимум получить проблему с файрволами. В общем то, после обдумывания, не настолько оно мне и нужно, будут временные файлы.
     
    Есть еще мегавариант, хранить картинки в HTML (base64) и рисовать их таблицами:
    http://www.bennherrera.com/EmbeddedImage/example.html
    К сожалению метод слишком медленный.

    Всего записей: 259 | Зарегистр. 01-06-2008 | Отправлено: 22:54 26-04-2010
    OOD

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

    Код:
    uses
    DbiProcs;
     
    function TablePack(oTable : TTable): DBIResult;
    begin
    oTable.Close;
    oTable.Exclusive := TRUE;
    oTable.Open;
    Result := DbiPackTable(oTable.DBHandle, oTable.Handle, nil, nil, TRUE) ;
    end;
     

     
    запускаю TablePack(Table1); приложение виснет ошибка:
       
     
     
     

    Всего записей: 3379 | Зарегистр. 20-05-2006 | Отправлено: 13:07 27-04-2010 | Исправлено: OOD, 13:07 27-04-2010
    MrZeRo



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    OOD
    Скорее всего, таблица действительно занята.
    Вот фрагмент кода с дополнительными проверками: hччз://www.delphicorner.f9.co.uk/articles/db15.htm

    ----------
    ... не это главное ...

    Всего записей: 831 | Зарегистр. 30-01-2002 | Отправлено: 14:31 27-04-2010
    sly konrad



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

    Код:
     
    WordApp := CreateOleObject('Word.Application');
    WordApp.Documents.Add(Template);
     

    Template - переменная, содержащая полное имя файла шаблона документа.
    Как передать в новый документ "Имя файла", которое автоматически будет отображено в диалоговом окно при первом сохранении, а также папку для сохранения по умолчанию (отличную от "Мои документы")?

    Всего записей: 5 | Зарегистр. 24-04-2007 | Отправлено: 17:47 27-04-2010 | Исправлено: sly konrad, 17:59 27-04-2010
    JohnSilver182



    BANNED
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Hi
    Я тут думаю про SDI .
    КАк Обрезать главную форму чтобы у нее были видны визуальные компоненты . Form1.AutoSize=true что то не канает .

    Всего записей: 829 | Зарегистр. 03-06-2009 | Отправлено: 19:33 28-04-2010
    Frodo_Torbins

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

    Всего записей: 2318 | Зарегистр. 24-05-2007 | Отправлено: 20:44 28-04-2010
    Maks150988



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Помогите оптимизировать код. Я хочу нарисовать сетку, которая подобна визуализатору винампа.
    Было
     
    Стало
    В измененной варианте я лишь изменил 3 цикла и все. Как поточечное рисование в циклы бы оптимальнее засунуть. Просто контрол обновляется несколько раз в секунду и на допотопных ЦП выполнение кода критично.

    Всего записей: 836 | Зарегистр. 23-12-2006 | Отправлено: 20:49 28-04-2010
    JohnSilver182



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

    Цитата:
    Я тут думаю про SDI .
    КАк Обрезать главную форму чтобы у нее были видны визуальные компоненты . Form1.AutoSize=true что то не канает .  

     
    То есть  как была форма здоровая  так  и осталась
     
    Вот волюнтаристский подход

    Код:
    procedure TFormMain.FormResize(Sender: TObject);
    begin
     self.Height :=84;
     self.Top:=0;
    end;

     
    Вот еще один волюнтаристский подход  что бы Пристыковать Подчиненную  форму  к  главной .  Работает криво если форма Изначально форма WsMaximized;
     

    Код:
    procedure TFormZakaz.FormResize(Sender: TObject);
    var l_Height:integer;
    begin
     
     l_Height:=FormMain.Top+Formmain.Height;
     if self.WindowState = wsMaximized then self.Top:=l_Height;
     if (self.WindowState = wsNormal) and  (self.Top<l_Height) then self.Top:=l_Height;
     
    end;

     

    Всего записей: 829 | Зарегистр. 03-06-2009 | Отправлено: 21:44 28-04-2010
    Frodo_Torbins

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Maks150988
    Создайте DIB-секцию и меняйте ее отдельные байты, потом одним махом отрисовывайте на канве. В Delphi это делается через TBitmap.ScanLine: http://www.delphisources.ru/pages/faq/base/bitmap_scanline_for_pixelformat.html

    Всего записей: 2318 | Зарегистр. 24-05-2007 | Отправлено: 21:53 28-04-2010
    Ramazan



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Вопрос не сколько по программированию, сколько по использованию IDE:
     
    Как известно, Delphi позволяет регистрировать графические форматы для их использования в IDE и программах. Но, например, формат png сейчас не реализует только ленивый, в результате чего, при большом количестве загруженных пакетов, мы имеем несколько классов поддержки формата. В моем случае png поддерживают DevExpress, FastReport и LMD tools.
    Механизм поиска класса поддержки построен таким образом, что вне зависимости от того, сколько классов было зарегистрировано для расширения файла, возвращаться всегда будет последний зарегистрированный класс, в моем случае от LMD. Проблема в том, что другие библиотеки, естественно, отказываются использовать этот формат у себя - Invalid graphic format. Решение проблемы заключается в изменении очередности загрузки пакетов компонент, например для поддержки DevEx-формата png необходимо грузить их в таком порядке: FR, LMD, DevExpress.  
    К сожалению, я не знаю другого метода изменения порядка загрузки, кроме удаления пакетов из IDE и повторная их регистрация в нужной последовательности, что крайне раздражает и отнимает кучу времени. Может быть кто-нибудь знает, где хранится порядок загрузки пакетов в Delphi?
     
    Унифицировать компоненты не предлагать - проще повеситься

    ----------
    Per rectum ad...

    Всего записей: 359 | Зарегистр. 13-04-2002 | Отправлено: 22:10 28-04-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

    Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Delphi (до версии 2009) - часть 5
    ShIvADeSt (19-05-2010 05:14): Продолжаем тут http://forum.ru-board.com/topic.cgi?forum=33&topic=11215


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru