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

RusFAQ.ru: Программирование на Delphi


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Delphi

Выпуск № 946
от 07.10.2007, 02:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 461, Экспертов: 81
В номере:Вопросов: 4, Ответов: 7


Вопрос № 103872: Уважаемые эксперты! Прошу помощи таком вопросе: 1. Как работать в Delphi6(7) с портом RS-485 (ОС Win98, 2000, XP)? Т.е. как опознать, открыть, послать через него сообщения (байты или блоки информации), принять информацию, закрыть. 2. Если е...
Вопрос № 103889: Здраствуйте. У меня есть файлы для разработки программы на языке С (*.h, *.lib, *.dll). Как я могу использовать эти библиотеки для написания программы на языке Делфи?...
Вопрос № 103907: Подскажите где можно скачать нормальную версию "Turbo Delphi",если не сложно и если есть свободное время?!...
Вопрос № 103934: Всем привет!У меня есть следующий код поиска и выделения найденного в ListBox-е private FFoundText: string; FFoundPos: TPoint; function Search(Text: string; FromStart: boolean): boolean; ..... function TCreateWorkForm....

Вопрос № 103.872
Уважаемые эксперты! Прошу помощи таком вопросе:
1. Как работать в Delphi6(7) с портом RS-485 (ОС Win98, 2000, XP)? Т.е. как опознать, открыть, послать через него сообщения (байты или блоки информации), принять информацию, закрыть.
2. Если есть переходник кабельный USB-RS-485, как тоже самое осуществить с помощью команд к USB-порту?
Отправлен: 01.10.2007, 06:53
Вопрос задал: Шукайло В.Б. (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: NiGHT
Здравствуйте, Шукайло В.Б.!

Есть функции для работы, есть спец. компоненты. И переходники тоже есть (http://www.chip-dip.ru/product0/9000035156.aspx). Вполне может быть что с переходником будет прилагаться драйвер, котрый обеспечит связь через 485 подмонтировав его как обычный COM.

Вобще работать с 485 можно как и с 232, но там возникают некотрые нюансы, требующие доработки в порядке передачи (считается что согласование на физ. уровне берет на себя микросхема). Вобще можно по этому вопросу глянуть книгу Агурова "Последовательные интерфейсы ПК", там есть отдельная глава.

Про работу вообще с COM можно глянуть тут http://delphikingdom.ru/asp/itemq.asp?Mode=1&ItemID=151

Это про интерфейс: http://www.mayak-bit.narod.ru/rs485.html
http://ru.wikipedia.org/wiki/RS-485

Это компонента
http://by32.pp.ru/Development/Components-Libraries/Windows_Std_Serial_Comm_Lib_for_Delphi-b14455.html

Тут в конце статьи куча ссылок на компоненты в том числе универсальные
http://disktrouble.narod.ru/rs232.html

---------
Нам много не надо, лишь власти над миром, и вкусненького что-нибудь (Slayers)
Ответ отправил: NiGHT (статус: Практикант)
Ответ отправлен: 01.10.2007, 12:42


Вопрос № 103.889
Здраствуйте.

У меня есть файлы для разработки программы на языке С (*.h, *.lib, *.dll).
Как я могу использовать эти библиотеки для написания программы на языке Делфи?
Отправлен: 01.10.2007, 10:47
Вопрос задал: Завьялов А.В. (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: sir henry
Здравствуйте, Завьялов А.В.!
Файлы типа *.lib - никак. Это специфичный для Си файл, в котором написано откуда берутся те или иные функции.
Файлы типа *h - это текстовый файл объявлений функций, взятых из DLL (по всей видимости, раз DLL идёт в комплекте с программой), но без указания на то, из какой DLL берётся какая функция. Можно взять программу h2pas (например из дистрибутива FreePascal - http://www.freepascal.org, или найти с помощью Yandex/Google) ипереконвертировать файл *.h в файл *.pas. Сразу предупреждаю, что переконвертируется не всё, т.к. некоторым ключевым словам из Си нет прямых аналогов в Delphi. Далее Вам остаётся только вручную подставить названия DLL-ки из которой взяты функции.
Далее всё как обычно, так как Вы привыкли программировать в Delphi, т.е. подставляете в строку USES название получившегося модуля *.pas и пользуетесь в своей программе объявленными там функциями.
Ответ отправил: sir henry (статус: Академик)
Россия, Красноярск
----
Ответ отправлен: 01.10.2007, 11:07


Вопрос № 103.907
Подскажите где можно скачать нормальную версию "Turbo Delphi",если не сложно и если есть свободное время?!
Отправлен: 01.10.2007, 13:16
Вопрос задал: Медведев С.А. (статус: Посетитель)
Всего ответов: 4
Мини-форум вопроса >>> (сообщений: 4)

Отвечает: Drbear
Здравствуйте, Медведев С.А.!

Зайдите по ссылке http://allsoft.ru/program_page.php?grp=34977
Ответ отправил: Drbear (статус: 2-ой класс)
Ответ отправлен: 01.10.2007, 13:37

Отвечает: Delph
Здравствуйте, Медведев С.А.!

За полноценную версию Вам придётся выложить денежку. Если же Вас устроит триал-версия, то цитирую ответ эксперта на вопрос 103547:

--------------------------------------------------------------------------------------------------------

Отвечает: Drbear
Здравствуйте, Kharitonov Sergei!

попробуйте http://infostore.org/info/1721611

почитайте http://www.delphilab.ru/content/blogsection/5/75/

Ответил: Drbear (статус: 2-ой класс)
Дата отправки: 27.09.2007, 11:16

--------------------------------------------------------------------------------------------------------
---------
Сомневайся во всём! Реальность часто бывает не такой, как мы о ней думаем.
Ответ отправил: Delph (статус: 10-ый класс)
Ответ отправлен: 01.10.2007, 13:41
Оценка за ответ: 4

Отвечает: Архангельский Андрей Германович
Здравствуйте, Медведев С.А.!

"Turbo Delphi", Так же как и "Turbo C" - бесплатные по определению.
Взять можно на сайте CodeGear.com - правоприемника Borland.

Версия Turbo не позволяет добавлять компоненты - следовательно для работы с БД придется использовать библиотеку DBExpress

При повышении уровня переустановка не требуется. Нужно заплатить денюжку и получить соответствующий рег. код.

Я получил копию Turbo Delphi на одном из бесплатных семинаров CodeGear - бесплатно

---------
Если дело заслуживает быть сделаным, то оно заслуживает, чтобы его сделали ХОРОШО
Ответ отправил: Архангельский Андрей Германович (статус: Специалист)
Ответ отправлен: 01.10.2007, 13:50
Оценка за ответ: 5

Отвечает: Гальцов Андрей Михаилович
Здравствуйте, Медведев С.А.!

http://www.codegear.com/downloads/free/turbo

---------
Да здравтствует С++!!!...;)
Ответ отправил: Гальцов Андрей Михаилович (статус: 3-ий класс)
Ответ отправлен: 01.10.2007, 22:31


Вопрос № 103.934
Всем привет!У меня есть следующий код поиска и выделения найденного в ListBox-е

private
FFoundText: string;
FFoundPos: TPoint;
function Search(Text: string; FromStart: boolean): boolean;
.....
function TCreateWorkForm.Search(Text: string; FromStart: boolean): boolean;
function DoSearch(start: integer): TPoint;
var
i,n: integer;
begin
for i:=start to ListBox1.Items.Count-1 do begin
n:=pos(Text, ListBox1.Items[i]);
if n>0 then begin
result.Y:=i;
result.X:=n;
exit;
end;
end;
result:=point(-1,-1);
end;
var
p: TPoint;
begin
if FromStart then p:=DoSearch(0)
else p:=DoSearch(FFoundPos.Y+1);
result:=p.Y>-1;
if result then begin
FFoundText:=Text;
FFoundPos:=p;
ListBox1.Invalidate;
end;
end;
.......
//необходимо изменить свойство Style в TListBox на lbOwnerDrawFixed иначе событие OnDrawItem никогда не вызовется
procedure TCreateWorkForm.ListBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState);
var
SelRect: TRect;
Cl: TColor;
begin
with ListBox1.Canvas do
begin
FillRect(Rect);
if FFoundPos.Y=Index then
begin
SelRect:=Rect;
SelRect.Left:=Canvas.TextWidth(copy(ListBox1.Items[Index], 1, FFoundPos.X-1));
SelRect.right:=SelRect.Left+Canvas.TextWidth(copy(ListBox1.Items[Index], FFoundPos.X, length(FFoundText)));
Cl:=Brush.Color;
Brush.Color:=clRed;
FillRect(SelRect);
Brush.Color:=Cl;
end;
Brush.Style:=bsClear;
DrawText(Handle, pchar(ListBox1.Items[Index]), -1, Rect, DT_SINGLELINE or DT_NOPREFIX or DT_VCENTER);
end;
end;
... ну не буду писать процедуру по которой Search вызывается,вопрос у меня в следующем ,как сделать так что бы в ListBox1DrawItem строка,в которой происходит выделение попадала в зону видимости,ну т.е чтобы в ListBox происходила прокрутка до нужной строки
Отправлен: 01.10.2007, 17:25
Вопрос задал: Gaz (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Drbear
Здравствуйте, Gaz!

ListBox.Perform(LB_SETTOPINDEX, Pred(ListBox.Items[Index]), 0);

Должно получиться.
Ответ отправил: Drbear (статус: 2-ой класс)
Ответ отправлен: 01.10.2007, 18:22
Оценка за ответ: 3
Комментарий оценки:
Ну во-первых ты имел ввиду наверное ListBox1.Perform(LB_SETTOPINDEX, Pred(ListBox1.Items.Count), 0);,во-вторых указал бы куда,в-третих ставлю после
Brush.Color:=Cl;- не работает


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.60.10 от 27.09.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное