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

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


Информационный Канал Subscribe.Ru

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

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

Выпуск № 296
от 15.11.2005, 20:15

Администратор:Калашников О.А.
В рассылке:Подписчиков: 249, Экспертов: 48
В номере:Вопросов: 2, Ответов: 11


Вопрос № 29287: Есть программа по подсчёту премии. Но она врёт на копейки. Вопрос такой как информацию из DBGrid перенести в ворд, вместо Фаст Репорта, для дальнейшего редактирования, посредством Делфи? И вообще возможно ли это? P.S.Высылаю исходник программ...
Вопрос № 29298: Приветствие уважаемые эксперты!! подскажите пажалуйста как в делфи делается явное приведение типов. в часности проблема возникла в том что при задании в edit ip-адресса для функции bind несовпадают типы данных String и PAnsiChar как можн...

Вопрос № 29.287
Есть программа по подсчёту премии. Но она врёт на копейки. Вопрос такой
как информацию из DBGrid перенести в ворд, вместо Фаст Репорта, для дальнейшего редактирования, посредством Делфи? И вообще возможно ли это?
P.S.Высылаю исходник программы.

Приложение:

Отправлен: 10.11.2005, 07:27
Вопрос задал: Vbhjndjhtw (статус: 1-ый класс)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: sir henry
Здравствуйте, Vbhjndjhtw!
Чтобы расчеты не врали на копейку, надо сделать 3 или 4 знака после запятой. У Вас, скорее всего, ошибка в последнем разряде, поэтому этот последний разряд надо отодвинуть, чтобы его ошибки не влияли на результат.
Дальше, зачем Вам пересылать данные в Word, чтобы все равно редактировать в Дельфи? Бессмыслица. Может быть Вы поясните, зачем это?
Ответ отправил: sir henry (статус: Академик)
Отправлен: 10.11.2005, 08:18
Оценка за ответ: 5
Комментарий оценки:
:-)
, посредством Делфи, --- заключено в запятые. Может я неправильно выразился? Надо было написать: для дальнейшего представления в бухгалтерию :-)
Я попробую как Вы сказали. Ведь я только начинаю программировать в Делфи и эту прогу чирканул мне один мой хорощий знакомый.
Хотя дареному коню в зубы несмотрят я могу на сегодня написать программу попроще, без таких наворотов.

Отвечает: Архангельский Андрей Германович
Здравствуйте, Vbhjndjhtw!
Я использую "Ek RTF Report for Delphi". Простой компонент, позволяет выводить таблицы в шаблон в формате rtf. Это позволяет конечному пользователю создавать свои шаблоны (формы документов).
Хотя раньше я генерировал файл RTF впрямую, это тоже достаточно просто

Приложение:

Ответ отправил: Архангельский Андрей Германович (статус: 7-ой класс)
Отправлен: 10.11.2005, 09:53
Оценка за ответ: 5
Комментарий оценки:
Ух ты млин, спасибо!

Отвечает: Vadim Vitomsky
Здравствуйте, Vbhjndjhtw!
Высылаю исходник модуля, упрощающего работу автоматизации M$ Word.
Необходимые константы можно взять в самом Ворде (я их выделил в отдельный файл, слишком большой для аттача)

Приложение:

---------
оЕ ЧУЕ ФП Windows, ЮФП ЧЙУЙФ!

Ответ отправил: Vadim Vitomsky (статус: 2-ой класс)
Отправлен: 10.11.2005, 14:54
Оценка за ответ: 5
Комментарий оценки:
Огромное СПАСИБО!


Вопрос № 29.298
Приветствие уважаемые эксперты!!
подскажите пажалуйста как в делфи делается явное приведение типов.

в часности проблема возникла в том что при задании в edit ip-адресса для функции bind несовпадают типы данных String и PAnsiChar как можно решить эту проблему ?? .. Заранее спасибо.
Отправлен: 10.11.2005, 11:03
Вопрос задал: Александер (статус: Посетитель)
Всего ответов: 8
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Lector
Здравствуйте, Александер!
если s имеет тип string, то преобразовать её к типу PAnsiChar можно так: PAnsiChar(s).
---------
Хочешь помочь старику - сделай вместо него.
Хочешь помочь новичку - сделай вместе с ним.
Хочешь помочь мастеру - отойди и не мешай,
а хочешь помочь дураку - сам дурак.
Ответ отправил: Lector (статус: 9-ый класс)
Отправлен: 10.11.2005, 11:13
Оценка за ответ: 5

Отвечает: Маренич Владимир
Здравствуйте, Александер!
Приведение типа на паскале делается как вызов функции:
a: byte;
b: integer;
...
b:=Integer(a);

А вот строку в число и наоборот приведением типа не сделаешь. Нужно использовать специальные функции, которые это делают: StrToInt и IntToStr.

В вашем примере можно сделать приведение типов: PChar(Edit1.Text).
Ответ отправил: Маренич Владимир (статус: 5-ый класс)
Отправлен: 10.11.2005, 11:22
Оценка за ответ: 5

Отвечает: Татьяна
Здравствуйте, Александер!
Обычно, если нужно передевать строку в качестве параметров помогает преобразование типа
PAnsiChar(str) (у меня это PChar(str) - суть дела не меняет)
Ну а если делать правильно, см. приложение
Желаю удачи

Приложение:

---------
Нет ничего невозможного!!!

Ответ отправила: Татьяна (статус: 7-ой класс)
Отправлен: 10.11.2005, 11:27
Оценка за ответ: 5

Отвечает: sir henry
Здравствуйте, Александер!
Если говорить вообще, то типы должны быть похожи и значения нового типа не должно выходить за пределы, задаваемые этим типом.
Если взять Ваш случай, то тут вообще все просто.
PAnsiChar - это PChar:
var
s: string;
pch: PAnsiChar;
Begin
s:='192.168.1.1';
pch:=PChar(s);
End;
Ответ отправил: sir henry (статус: Академик)
Отправлен: 10.11.2005, 11:48

Отвечает: Romodos
Здравствуйте, Александер!
Ну, наверное, надо использовать явное приведение типов, как вы и говорили

var x:pansichar;
begin
x:=pchar(edit1.text);
end;
---------
FAQ me off!
Ответ отправил: Romodos (статус: Студент)
Отправлен: 10.11.2005, 14:02

Отвечает: Schmak
Здравствуйте, Александер!

Приводятся посредством функций с одноимёнными названиями (почти всегда). Например: Byte(), Char(), PChar().
Соответственно в Вашем случае функция PAnsiChar(s:string):PAnsiChar

---------
Не всё то Windows, что висит!
Ответ отправил: Schmak (статус: 7-ой класс)
Отправлен: 10.11.2005, 19:33

Отвечает: nimoid
Здравствуйте, Александер!

//--------------------
...
var
IP: PAnsiChar;
begin
IP := ChPAnsiChar(Edit1.Text);
...
//--------------------
---------
А так все хорошо начиналось...
Ответ отправил: nimoid (статус: 4-ый класс)
Отправлен: 10.11.2005, 19:58

Отвечает: Ataman N. N.
Здравствуйте, Александер!
Явное приведение делается таким образом:
если надо привести из s: String в PAnsiChar -> PAnsiChar(s);
Сначала пишите тип к которому нужно привести, а в скобках переменную, приводимую к данному типу.
Ответ отправил: Ataman N. N. (статус: 1-ый класс)
Отправлен: 13.11.2005, 14:00


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

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

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

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

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


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



© 2001-2005, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Яндекс Rambler's Top100 hotlog_js="1.0"; hotlog_r=""+Math.random()+"&s=314124&im=101&r="+escape(document.referrer)+"&pg="+ escape(window.location.href); document.cookie="hotlog=1; path=/"; hotlog_r+="&c="+(document.cookie?"Y":"N"); hotlog_js="1.1";hotlog_r+="&j="+(navigator.javaEnabled()?"Y":"N") hotlog_js="1.2"; hotlog_r+="&wh="+screen.width+'x'+screen.height+"&px="+ (((navigator.appName.substring(0,3)=="Mic"))? screen.colorDepth:screen.pixelDepth) hotlog_js="1.3" hotlog_r+="&js="+hotlog_js; document.write("HotLog")

Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: comp.soft.prog.delphiplus
Архив рассылки
Отписаться
Вспомнить пароль

В избранное