Отправляет email-рассылки с помощью сервиса Sendsay

Delphi - проблемы и решения

  Все выпуски  

Проблемы и решения в Delphi #43


Служба Рассылок Subscribe.Ru

5712 подписчиков.

Проблемы и решения в Delphi - выпуск 43 от 18.01.2002.


Лучше 10 раз по разу ...


* ВСЕ ВОПРОСЫ * * СПРОСИТЬ * * ПРЕДЛОЖИТЬ * * АРХИВЫ * * СКОЛЬКО НАС *


Доброго Вам времени суток уважаемый читатель.
Специально для земляков!Появилась новая рассылка: 'Комсомольск на Амуре OFFLine', ее код - country.fareast.kmsoffl . Для наших краев это... ну... очень неплохо :-)) . Подпишитесь - не пожалеете!





Как обычно в выпуске:

1. Очередные вопросы.
2. Отвеченные вопросы.


* ВСЕ ВОПРОСЫ * * СПРОСИТЬ * * ПРЕДЛОЖИТЬ * * АРХИВЫ * * СКОЛЬКО НАС *

1. Очередные вопросы.

Вопрос 631:
От: Турейский Геннадий Алексеевич

Как читать и писать в порты?
Причем делать это надо под Windows 2000 <br> .
Вставка asm и команды ассемблера in и out дают ошибку
выполнения привелигированных команд.
sa

Ответить.


Попробуй так:


Вопрос 632:
От: vfinup.obladm.msk.su!vvv@vfinup.obladm.msk.su

ТДВ> Рекомендую APD. Там всё есть и с приличными примерами:'
А что т <br> акое APD и где его нарыть?
sa

Ответить.


Попробуй так:


Вопрос 633:
От: Alexander Galaktionov

как можно считать из базы данных
BLOB-поле, для этого в MS Visual Fo <br> xPro есть OLE, а в дельфи нет
компоненты DBOLE. Как можно разрешить эту проблему.
sa

Ответить.


Попробуй так:


Вопрос 634:
От: drunya

Как в Dеlphi работать с командами модема.
sa

Ответить.


Попробуй так:


Вопрос 635:
От: drunya

Как на Delphi написать программу, которая бы автоматически записывала <br>
все входящие и исходящие телефонные разговоры.
Телефон подключен к модему.
sa

Ответить.


Попробуй так:


Вопрос 636:
От: drunya

Какой функцией нужно пользоваться, чтобы определить поднята трубка
т <br> елефона или нет.
sa

Ответить.


Попробуй так:


Вопрос 637:
От: drunya

Как  программно на Delphi определить какой номер набирается, если наб <br> ор
номера происходит не на компе, а с телефонной трубки.
sa

Ответить.


Попробуй так:


Вопрос 638:
От: Стас

Нет ли у кого опыта работы с SSH. Нужно написать программу которая-бы <br>
конектилась на 22 порт и могла с ним разговаривать. Буду рад примерам.
sa

Ответить.


Попробуй так:


Вопрос 639:
От: Shamashov

Как memo выводить массив,чтобы после каждого элемента был пробел?:
sa

Ответить.


Попробуй так:


Вопрос 640:
От: Artur

кто знает!!! намыльте ссылку на (не архив) файл Fr_class.pas для
Fas <br> tReport2.45 или сбросте на мыло artur_kabanov@mailru.com
sa

Ответить.


Попробуй так:


Вопрос 641:
От: Таня

Как можно узнать, какие права конкретный пользователь имеет на сетевы <br> е
каталоги в сети Novell ?
В C-Builder вроде бы это можно сделать с помощью библиотеки NDK. Есть ли
какой-нибудь аналог для Delphi ?
sa

Ответить.


Попробуй так:


Вопрос 642:
От: Hitman

Помогите с передачей данных в Excel.
Использую компоненты с закладки <br>  Servers - TExcelApplication и
TExcelWorkbook.
//----------------------------------------------------------------------
-------------
procedure   TOS.ExcelExport(aApp : TExcelApplication; aBook :
TExcelWorkbook);
var
  i    :   integer;
begin
  aApp.Connect;
  // открывааем файл
  aApp.Workbooks.Add('card.xls', 0);
  // подключаем книгу
  aBook.ConnectTo(aApp.ActiveWorkbook);
  for i := 1 to k do
  begin
    // добавляем нужное количество листов в книгу
    aApp.Sheets.Add(EmptyParam, EmptyParam, EmptyParam, EmptyParam, 0);
    // Как переименовать новый лист????????????????????
    //?????????????????????????????????????????????????
  end;
  aApp.Visible[0] := true;
end;
Как же  переименовать вновь добавленные 'Лист1','Лист2'  в нужные мне
имена?
Ответ как бы прост - использовать WorkSheet.Name, но как до него
добраться? Иерархия Excel97.pas - голову сломать можно!
Help-файл по VB для Excel97 изучил - не помогло...
Буду рад ответам, примерам передачи данных, а т.ж. ссылкам...
sa

Ответить.


Попробуй так:


Вопрос 643:
От: Horreap

Я пишу скринсэйвер, и у меня появился такой вопрос: как в Win2000/XP
 <br>
заблокировать комбинации системных клавиш - ctrl-alt-del, alt-tab,
ctrl-esc  и etc.
sa

Ответить.


Попробуй так:



* ВСЕ ВОПРОСЫ * * СПРОСИТЬ * * ПРЕДЛОЖИТЬ * * АРХИВЫ * * СКОЛЬКО НАС *

2. Отвеченные вопросы.

Вопрос 620:
От: Dr.IMP

Подскажите, пожалуйста, как мне из своей программы работать с Outlook 
(XP) Если точнее, то необходимо сохранить письмо на диск в формате HTML.sa

Ответить.

Попробуй так:
Сохранять не пробовал, но отсылать письма отсылал. Сделай I
mport Type Library для Outlook и там есть несколько интерфейсов к объектам Outlook. Минимальных знаний COM технологии должно хватить


Вопрос 621:
От: Ovtchinnikov Kirill

У меня на компе стоит MS Speech API 3.0. Можно ли мне использовать ег 
о в Delphi 5? Если да, то как?sa

Ответить.

Попробуй так:
Инсталлируй в Дельфах компонент МС Агент (эктив-икс), и работ
ай в свое удовольствие! (В эту АПИшку входят также и несколько других эктив-иксов, но этот наиболее удобен и функционален. Одно "но" - работает он по СОМ-принципу, т.е. через линки на интерфейсы.) Попробуй так:


Вопрос 622:
От: Artem Krylov

Подскажите пожалуйста новичку, у меня есть таблица *.db, в формате
P 
ARADOX7, там есть колонка "Date" (TDate) она проиндексирована. При сортировке она отображается в виде: с начала самое "старое" число и ниже к более раннему, подскажите, как сделать наоборот?sa

Ответить.

Попробуй так:
В источнике данных TQuery укажи select ... from ... ORDER BY
date DESC (если этого не указывать, то по умолчанию стоит ASC сортировка - т.е. то, что ты и имеешь сейчас) Попробуй так:
:'Привет,чтобы отсортировать колонку в обратном направлении есть три варианта решения: 1) изменить св-во индекса на физическом уровне,т.е. надо включить св-во descending (например в Database dekstop) 2)создать индекс программно,со св-вом [ixdescending] и сделать его текущим 3)использовать TQuery,а в запросе пишешь : " select * from yourtable order by date desc" Больше способов пока не знаю :) Попробуй так:
Необходимо создать не возрастающий, а убывающий индекс. В SQL выражении это выглядит примерно так: CREATE INDEX имяИндекса ON имяТаблицы (имяСтолбца DESC) (короче смотрите примеры создания индексов). Попробуй так:
А ты не пробовал ставить галочку в определении индкса на Descneded Попробуй так:


Вопрос 623:
От: Giny

У меня возник вопрос вот какой. Как мне получить серийные номера
раз 
личных устройств, нап. процессора, мат. платы, и др.(кроме винчестера).sa

Ответить.

Попробуй так:


Вопрос 624:
От: Konstantin Ovsienko

 
в вашей рассылке уже говорилось как работать с СОМ-портом, а у мен 
я вопрос следующий: как работать с LPT-портом средствами WinAPI, есть у меня например на нем какое-то устройство? Если можно, то с примером.sa

Ответить.

Попробуй так:


Вопрос 625:
От: Danil

Как изменить цвет выделения в листбоксе и, может кто-нибудь знает, в
 
KOLListbox?sa

Ответить.

Попробуй так:
Установите свойство TListBox.Style в одно из следующих значен
ий lbOwnerDrawFixed, lbOwnerDrawVariable или lbVirtualOwnerDraw и напишите обработчик события OnDrawItem, в котором отрисуйте ВСЕ элементы списка на его канве, указывая цвет кисти. Например: procedure Tfrm.lbxDrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState); begin with lbx.Canvas do begin if (odFocused in State) or (odSelected in State) then Brush.Color := clRed else Brush.Color := clWindow; Pen.Style := psDot; Pen.Color := Brush.Color; Rectangle(Rect); if Del[Index] = '' then if (odFocused in State) or (odSelected in State) then Font.Color := clWhite else Font.Color := clBlack else Font.Color := clGreen; TextOut(Rect.Left+30, Rect.Top+2, lbx.Items[Index]); end; end; Попробуй так:
Так, выделение в листбоксе (имхо любом) - это цвет выделения, заданный в операционке. Так что следует либо дорисовывать список самому, или поменять установленные цвета в Виндоуз


Вопрос 626:
От: Alexandr Chernjavski

Как загрузить в Pointer - файл?sa

Ответить.

Попробуй так:
var s : tstream; p : pointer; begin s := tfilestre
am.create('filename',fmopenread); getmem(p,s.size); s.ReadBuffer(p^,s.size); <....> end; Попробуй так:
Вопрос непонятный, если нужен поинтер НА файл, то переменная типа "file" по сути и есть этот поинтер. Если файл загружен в TFileStream, то переменная TFileStream и есть в каком-то смысле поинтер на файл, а если файл открыт средствами Windows то на него есть Handle, а не поинтер, разве что можно наверное найти поинтер на handle... Если же файл длинной 4 байта и в нем действительно записан pointer, что представляется мне в 99.99% случаев бессмысленным, то обычный read должен с этой задачей справиться. Я думаю, что Вам надо изложить суть проблемы, конечную цель, так как скорее всего Вам нужно совсем не то что Вы ищите. Попробуй так:
1. GetMem(Bf, nBytes) - Выделить область размером nBytes-байт - столько, сколько нужно загрузить. 2. Assign(f, ....); Reset(f, 1) - открыть файл на чтение. 3. BlockRead(f, Bf^, nBytes) - читаем файл (или его часть) в область, куда указывает Bf. Попробуй так:


Вопрос 627:
От: Кондратьев Андрей Фёдорович

Подскажите как в Delphi развернуть свернутое окно.sa

Ответить.

Попробуй так:
Почитай HELP на функцию ShowWindow(). Там есть все, что нужн
о. ShowWindow(Form1.handle, sw_Restore) Попробуй так:
Application.Restore Application.BringToFront Попробуй так:
Если речь идет о главном окне приложения, то Application.Restore. А если о других окнах, то Show, ShowModal соответствующей формы. Попробуй так:


Вопрос 628:
От: Sashka_Zel@rambler.ru

Где взять компонент RxTrayIcon?sa

Ответить.

Попробуй так:
Думаю, что если у тебя есть интернет, то это не вопрос :), по
тому как набор компонент RXLib бесплатный, и ссылки на него много где есть. Попробуй так:
В библиотеке компонентов RxLib. Лежит, кажется, на www.rxlib.ru, очень советую для многих вкусностей и удобностей. Попробуй так:
Уж не знаю где официалный сайт, но весь пакет "Rx VCL extension" лежит на www.torry.net Там надо зайти в VCL/Component Packs/Huge Попробуй так:
Правельнее всего - на www.rxlib.com/ Лень? Пиши - намылю ZIP acidcool17@vlink.ru Попробуй так:


Вопрос 629:
От: xxmail@grsu.grodno.by

У меня есть 16-битная DLL-библиотека, скомпилированная на Delphi 1.0. 
Могу ли я подключить ее к своему 32-разрядному приложению для вызова подпрограмм или способ подключения отличается от обычного? Очень нужна ваша помощь.sa

Ответить.

Попробуй так:
Еще и как отличается! Это на самом деле достаточно сложно и
я бы посоветовал перекомпиллировать библиотеку под 32 битную платформу. Если же исходных кодов нет надо почитать так называемые thumb в Win Api Попробуй так:
:'Нужно использовать работу с Thunk. Это описано в документации по Win32Api, скажу только, что вещь исключительно геморройная и требует Thunk compiler - его нужно будет где-то скачивать.


Вопрос 630:
От: Andrey Kochetov

Прошу прощения за ламерский вопрос, но с Internet я до сих пор не
ра 
ботал из программы, а решение очень нужно. Вопрос такой: как из программы узнать, есть ли в настоящий момент соединение с Internet (прямое или черех proxy, работать должны все варианты), а также проверить, доступен ли адрес, заданный строковым параметром (например, " http://www.hp.com/") Желательно решение без использования сторонних (не родных для BCB 5.0) компонент, так как никакой другой функциональности не требуется. Буду крайне признателен за совет с исходным текстом.sa

Ответить.

Попробуй так:
можно, например, использовать gethostbyname из winsock Отве
т: Проверить подключение к интернуту.. хм... реально - никак... в Win API (по сведениям от Microsoft`а) функция есть, но нормально не работает, то есть работает, но криво... смысл такой - возвращает "False" - (!!!) если НЕ БЫЛО ПОПЫТОК ПОДКЛЮЧЕНИЯ, во всех остальных случаях "True". Поясню: комп только включил (соединение и инетом РЕАЛЬНО ЕСТЬ, по крайней мере коннект до провайдера работает) - функция вернёт "Ложь". По поводу проверки наличия адресов, компоненты и в стандартной Pro / Enterprise поставке (FastNet вроде... правда я на Delphi пишу... так что может и ошибаюсь).





Если Вы хотите как можно скорее получить ответ на свой вопрос, то
укажите в теме письма - delphiV,иначе письмо будет прочитано значительно
позже, если же у вас есть предложения то в теме письма укажите delphiP.

Для интересующихся - немного о себе. Работаю на
железнодорожном транспорте ведущим программистом.
Основные мои разработки - это сбор и доставка клиентам
информации о вагонах и поездах: где находится(по России),
куда едет. В связи с этим программировал для e-mail,Socket,БД,ISAPI.

За сим прощаюсь - скорых Вам и качественных программ.

Автор рассылки - Дмитрий.
ICQ - 89533941.

* ВСЕ ВОПРОСЫ * * СПРОСИТЬ * * ПРЕДЛОЖИТЬ * * АРХИВЫ * * СКОЛЬКО НАС *



http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное