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

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

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    VandB
    Что значит просмотр? Гаджеты имеют вполне определенный формат, и хранятся в специальных папках на диске. Организовать список вроде бы не проблема.

    Всего записей: 2318 | Зарегистр. 24-05-2007 | Отправлено: 23:17 16-08-2009
    Cryogen2003



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    data man
    Писал же
     
    Люди, помогите в маленькой проблемке. Вот чего-то навскидку не могу вспомнить как сделать кое что-то.
    Есть код определенный на HTML (форма для ввода):
     

    Код:
     
     
    <form action="http://myserver:8080/FileSave" enctype="multipart/form-data" method="post" name="JBOSS" id="JBOSS">
    FN:       <input type="file" name="FN" id="FN" />
    FILENAME: <input type="text" name="FILENAME" id="FILENAME" />
    PROJECT:  <input type="text" name="PROJECT" size=40 id="PROJECT" value="2007/1/25/PASSPORT" />
    C_DOCID:  <input type="text" name="C_DOCID" id="C_DOCID" value="30002061" />
    ZIPPED:   <input type="text" name="ZIPPED" id="ZIPPED" value="0" />
    <input type="submit" name="TYPE" id="TYPE" value="PUT" />
    </form>
     
     
     
    Как сделать так, что эти данные сразу посылались из дельфи. То есть в дельфе я должен показать это все в своей форме, правда не через html, а просто через TForm. И когда пользователь все настраивает, то я должен послать все эти данные на сервак и стало быть программно нажать на кнопку Put. Как вставить значения в эти поля, это все понятно, но не понимаю, как все это запостить на сервак.  
     
    Upd на сегодняшний день:
    Вроде все делаю через Indy, но сервак выдает ошибку 500, если через ID запускать эту форму, то все ок.

    ----------
    Холодильники мы

    Всего записей: 745 | Зарегистр. 08-12-2004 | Отправлено: 09:45 17-08-2009
    data man



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Cryogen2003
    Вопрос "А что случилось ?" задал не я.
    Я не использую INDY так что - сам, сам, сам

    Всего записей: 1696 | Зарегистр. 13-10-2005 | Отправлено: 11:22 17-08-2009
    Cryogen2003



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    data man
    Да уже разобрался, оказался сам дурак
    Оказывается параметр TYPE надо тоже передавать, а я думал он просто так
    А так, может быть кому-то будет интересно

    Код:
     
    Procedure TForm1.cxButton2Click(Sender: TObject);
    Var
      Data: TIdMultiPartFormDataStream;
      URL: String;
    Begin
      URL := 'http://myserver:8080/FileSave';
      IdHTTP1.Request.Accept := 'text/plain';
      IdHTTP1.Request.ContentType := 'multipart/form-data';
      Data := TIdMultiPartFormDataStream.Create;
      Try
        //Data.RequestContentType := 'multipart/form-data';
        Data.AddFile('FN', FilenameEdit1.FileName, 'text/plain');
        Data.AddFormField('FILENAME', ExtractFileName(FilenameEdit1.FileName));
        Data.AddFormField('PROJECT', '2007/1/25/PASSPORT');
        Data.AddFormField('C_DOCID', edtId.Text);
        Data.AddFormField('ZIPPED', '0');
        Data.AddFormField('TYPE', 'PUT');
        Memo1.Lines.Text := IdHTTP1.Post(URL, Data);
      Finally
        Data.Free;
      End;
      IdHTTP1.Disconnect;
    End;
     


    ----------
    Холодильники мы

    Всего записей: 745 | Зарегистр. 08-12-2004 | Отправлено: 11:26 17-08-2009
    Chulpon

    BANNED
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Привет всем!
    Помогите как вставить кнопка в ячейке Dbgrid?
    Мне надо, чтобы на каждой строке рисовать три кнопки
    Удалить Сохранить Редактировать когда стою на активную запись
    Есть Dbgrid c данными 4 полей + добавил еще колонку в гриде
    и на форму положил три TButtona
    formoncreate сделал
    button.visible:=false

    Код:
    procedure TfrmCMPMain.grdOperDrawColumnCell(Sender: TObject;
    const Rect: TRect; DataCol: Integer; Column: TColumn;
    State: TGridDrawState);
    var
    DrawState: Integer;
    DrawRect: TRect;
    begin
    if (gdfocused in State) then
    begin
      if (Column.index =5) then
      with button do
      begin
        Left := Rect.Left + grdOper.Left + 2;
        Top := Rect.Top + grdOper.Top + 2;
        Width := Rect.Right - Rect.Left;
        Width := Rect.Right - Rect.Left;
        Height := Rect.Bottom - Rect.Top;
        Visible := True;
      end
    end;  

     
    Но это дает резултать
    Заранее благодарен

    Всего записей: 85 | Зарегистр. 09-03-2009 | Отправлено: 14:10 17-08-2009
    VandB



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Frodo_Torbins
    Я это знаю )))))))))
    Нет мне надо запускать эти гаджет приложения в своей программе, как в боковой панели windows vista, это возможно?
     
    Добавлено:
    Вот смог импортировать dll из папки боковой панели получился компанент TWLServices , и как им пользоваться, он не визуальный.?

    Всего записей: 164 | Зарегистр. 05-05-2009 | Отправлено: 14:14 17-08-2009
    spasius



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    VandB
    описание можно найти в Visual Studio М$. там пробегал мануал к SDK.

    Всего записей: 695 | Зарегистр. 16-03-2009 | Отправлено: 15:02 17-08-2009
    Frodo_Torbins

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    VandB
    "Запускать эти гаджеты" означает написать второй сайдбар. Если кому то из присутствующих это и под силу, то займет ооочень много времени.

    Всего записей: 2318 | Зарегистр. 24-05-2007 | Отправлено: 15:15 17-08-2009
    VandB



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Frodo_Torbins
    Понял.  А можно сделать активным "открыть в новой вклаке" ? В меню веббраузера?
     
    Добавлено:
    В Visual Studio 2008 предусмотрено и создание этих гаджетов и запуск в своих программах, на сайте мелкософт щас прочитал.

    Всего записей: 164 | Зарегистр. 05-05-2009 | Отправлено: 18:10 17-08-2009
    Maks150988



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Добрый день. Необходимо создать ярлык впн подключения на рабочем столе. Нашел код на просторах интернет, сделал под свои нужды. Вобщем-то так толком не трогал ничего, так как плохо разбираюсь в делах взаимодействия с системной оболочкой и ее интерфейсами. Собственно, код впринципе работоспособен, только под Windows 2000 приложение вылетает с ошибкой, но ярлык при этом также создается. Не знаю что там происходит, но понаставив мессаджбоксов посмотрел что вероятно что-то связанное с освобождением указателя pMalloc и вызов CoUninitialize в поцедуре CreateShellVpnLink. Даже кажется что из-за вызова CoUninitialize все это происходит. Кому не сложно гляньте что не так там.
     
    Читать дальше..

    Всего записей: 836 | Зарегистр. 23-12-2006 | Отправлено: 14:17 18-08-2009 | Исправлено: Maks150988, 14:18 18-08-2009
    GPSGURU



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Использую Indy для сервера, к которому цепляются приборы, кол-во которых доходит до 500 штук, постоянно конектятся 100-150. Ну и соответственно большое кол-во потоков создается. Только вот я заметил, что это кол-во все растет и растет... а когда переваливает за 2000 выскакивает исключение и прога виснет. Это что так, со всеми компонентами Indy? Может быть мне их заменить?

    Всего записей: 84 | Зарегистр. 06-05-2008 | Отправлено: 00:11 19-08-2009
    Molniev

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Indy компоненты просто обертки над сокетами Win API, так что всегда можешь обратится к ним, вместо использования компонентов, что эффективней и сложней в программировании.
    Поэтому я бы порекомендовал обратится к штукам вроде IdThreadMgrPool и версии Делфи/Indy. Смысл в том, что Indy подерживает два типа архитектуры (хотя бы теоритически): когда  каждому клиенту создаётся поток и когда изначально создаётся какое-то число потоков (ограниченое), которое в дальнейшем и используется.

    Всего записей: 176 | Зарегистр. 13-03-2008 | Отправлено: 16:01 19-08-2009
    data man



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    GPSGURU
    Проблема Indy в том, что стремясь объять всё, они сделали библиотеку чересчур тяжелой.
    Рекомендую посмотреть на RealThinClient , благо он стал бесплатным.
    Ну и ICS, конечно.
     
    P.S. Возможно некоторые ошибки в Indy исправлены. Ежедневные сборки здесь.

    Всего записей: 1696 | Зарегистр. 13-10-2005 | Отправлено: 18:04 19-08-2009 | Исправлено: data man, 10:32 20-08-2009
    Maks150988



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Во, сделал, правда все равно не уверен что интерфейсные указатели освобождаются до конца. Кому интересно как создать ярлык сетевого подключения на рабочем столе. Проверял на Windows 2000, Windows XP, Windows 7. Проверьте кто разбирается в COM интерфейсах.
     
    ">>>"

    Всего записей: 836 | Зарегистр. 23-12-2006 | Отправлено: 22:22 19-08-2009 | Исправлено: Maks150988, 22:25 19-08-2009
    zolivan

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите пожалуйста по ZipTV
    есть ли более менее детальное описание этой компоненты??
    а именно интересует TZipCheck для того чтобы проверить кучу файлов  
    и TUnARJ, чтобы распаковать.
    Буду признателен.

    Всего записей: 46 | Зарегистр. 24-10-2006 | Отправлено: 01:09 21-08-2009
    Andrey128

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Как в TOpenDialog/TSaveDialog в событии OnTypeChange сделать смену расширение у файла?
    Присвоение OpenDialog1.FileName ни к чему не приводит.

    Всего записей: 408 | Зарегистр. 16-01-2003 | Отправлено: 06:43 21-08-2009
    mdid

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

    Всего записей: 1298 | Зарегистр. 13-02-2006 | Отправлено: 10:39 21-08-2009
    data man



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Andrey128
    Код для отладки
    Расширение файла должно совпадать с одной из масок фильтра.
    Либо нужно установить в опциях ofExtensionDifferent в true.

    Всего записей: 1696 | Зарегистр. 13-10-2005 | Отправлено: 11:10 21-08-2009 | Исправлено: data man, 11:14 21-08-2009
    Andrey128

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    data man
    Не совсем понял вас. Код для отладки - это событие OnTypeChange?
    Даже если так, то все равно в самом диалоге расширение не меняется.
     
    Может я не совсем корректно задал вопрос?
    Попробую еще раз: как сделать чтобы в открытом диалоге TOpenDialog/TSaveDialog при смене типа файла, автоматом менялось расширение в строке ввода файла.
    Например в Delphi:
    1. Открываем любой юнит
    2. Делаем сохранить как
    3. Руками меняем расшинение на .txt (Unit1.txt)
    4. Меняем тип на Any file (*.*)
    5. Меняем расширение на Delphi unit (*.pas)
    раширение меняется на .pas
     
    Нашел такой код, в принципе то-что нужно, но хотелось бы стандартными средствами обойтись.

    Всего записей: 408 | Зарегистр. 16-01-2003 | Отправлено: 12:08 21-08-2009
    data man



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Andrey128
    Тогда не понимаю в чем проблема.
    Я задал DefaultExt = 'pas', фильтр = 'pas|*.pas|any|*.*'
    И у меня диалог сохранения работает именно так, как Вам нужно.
    P.S. По крайней мере на Delphi 2009 именно так.
    P.P.S. Так работает только диалог сохранения.

    Всего записей: 1696 | Зарегистр. 13-10-2005 | Отправлено: 12:25 21-08-2009 | Исправлено: data man, 12:33 21-08-2009
       

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