Вопрос № 71816: Здравствуйте.Мне необходмы общие характеристики Delphi6 и Delphi7.То есть,что в этих версиях появилось нового по сравнению с предыдущими.Своего рода эволюция Delphi....Вопрос № 71823: Здравствуйте, Эксперты!
Я делаю печать StringGrid таким образом: (см приложение)
То есть, во время работы приложения создаю метки QRLabel, присваиваю им необходимые свойства (владелец, ширина, линии, caption).
Скажу сразу, что этот код я ...Вопрос № 71832: Вопрос, наверно не совсем в тему, но наиболее близок всё-таки сюда...
Используется связка Delph + OpenOffice-OLE
На всех форумах как рекомендация по установке ширини столбца приводят код:
Column.OlePropertySet("width"...Вопрос № 71894: Уважаемые эксперты, скажите, как реализовать в своей программе возможность по нажатию кнопки в программе, удалять несколько символов в Word'е, т.е. имитировать нажатие клавиши Backspace в Word'е. ...
Вопрос № 71.816
Здравствуйте.Мне необходмы общие характеристики Delphi6 и Delphi7.То есть,что в этих версиях появилось нового по сравнению с предыдущими.Своего рода эволюция Delphi.
Отвечает: Костенко Игорь Викторович
Здравствуйте, Kelvine_1987!
Компилятор Delphi теперь поддерживает три новых предупреждения: Unsafe_Type, Unsafe_Code и Unsafe_Cast. Данные предупреждения запрещены по умолчанию, но могут быть разрешены с помощью следующих директив {$WARN UNSAFE_CODE ON}, с помощью ключей командной строки компилятора dcc32 -W+UNSAFE_CODE и в среде, Project|Options|Compiler Messages. Данное свойство предназначено для помощи в переносе вашего кода на платформу .NET. В обслуживаемой среде выполнения, "unsafe" означает, что операция не может быть
проверена во время статического анализа, выполняемого компилятором Just In Time (JIT). Такой код может серьезным риском в безопасности, поскольку здесь недостаточно информации для компилятора JIT для проверки его runtime поведения. Примером опасного кода, являются операции с указателями и перезапись памяти.
∙ Новые события в THTTPReqResp позволяют отделить HTTP сообщения до их и индикации прогресса при передаче или приеме длинных сообщений.
∙ THTTPSoapPascalInvoker теперь имеет опубликованные события, которые позволяют вам писать код до или после выполнения инвокер (invoker) выполнит запрошенный метод вызова.
∙ Теперь вы имеете большее управление над связыванием с извлекаемыми интерфейсами и WSDL документами. TWSDLHTMLPublish теперь публикует некоторые события, позволяя вам управлять генерацией WSDL. Вы можете также идентифицировать мапирование между возвращаемыми функцией значениями и именами параметров, с помощью пространства имен и действиями по умолчанию SOAP. На клиентской стороне, литеральное кодирование теперь поддержано, также как RPC кодирование.
∙ Новый интерфейс IRIOAccess позволяет вам иметь доступ до удаленного интерфейсного объекта, который реализует вызываемый интерфейс.
∙ Интерфейс IOPConvert имеет новое свойство: Encoding. Оно позволяет указать вам набор символов для передачи кодированных сообщений, передаваемых между клиентом и провайдером Web сервиса.
∙ Есть также изменения в Web сервисах, которые затрагивают Borland DataSnap приложения. Для более подробной информации смотрите главу "Database технологии".
∙ TLinkedRIO конструктор теперь автоматически генерирует отдельные имена файлов для каждого метода, который вы вызываете, делая отладку более простой.
∙ TOPToSoapDomConvert теперь имеет два новых события, которые позволяют вам при отладке десериализацию SOAP пакетов.
∙ Теперь вы можете использовать перегруженные методы на вызываемых интерфейсах, которые вы определили.
--------- Если хочешь заработать на жизнь - иди, работай. Если хочешь разбогатеть - придумай что-то другое.
Здравствуйте, Эксперты!
Я делаю печать StringGrid таким образом: (см приложение)
То есть, во время работы приложения создаю метки QRLabel, присваиваю им необходимые свойства (владелец, ширина, линии, caption).
Скажу сразу, что этот код я подсмотрел в компоненте PrnStringGrid (не помню, чей, но не стандартный).
Код полностью рабочий!
Вопросы:
1. Правильно ли я создаю метки? Может нужно какие-то еще параметры нужно установить (для корректности)?
2. Нет ли здесь каких-то подводных камней? Программа ИНОГДА (очень редко) вываливается с ошибкой Run-Time. Нет ли утечек памяти? Достаточно ли в конце освободить память у формы (FormReestr.Free)?
3. Как видно, метки создаются в цикле по количеству строк StringGrid-а. Как сделать, чтобы при достижении определенного количества происходил переход на следующий лист? Printer.NextPage и QuickRep1.NewPage не работают!
Благодарю всех за ответ.
P.S. на http://megalib.com наловил троянов. Будьте осторожнее!!!!
Приложение:
Отправлен: 20.01.2007, 16:06
Вопрос задал: Antares (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 6)
Отвечает: sir henry
Здравствуйте, Antares!
У компонента TStringGrid есть еще и свойство ColCount, т.е. кол-во столбцов. Поэтому процедуру можно упростить воспользовавшись вложенным циклом:
for i:=1 to StringGrid1.RowCount-1 do
for j:=1 to StringGrid1.ColCount-1 do
with TQRLabel.Create(DetailBand1) do { создали метку }
begin
....
Caption:=StringGrid1.Cells[j, i];
End;
Естественно только Вам нужно вычислять при назначении Top и Left смещение.
В этом случае Вы можете создавать автоматом и строки и колонки, по их количеству в StringGrid.
Возможно (но проверить я, естественно, это не могу) ошибка Run-Time у Вас выскакивала при попытке превысить созданные QRLabel по горизонталии.
И еще. Кол-во строк и колонок начинается с нуля (это заголовки) и до ColCount-1 (RowCownt-1).
Ответ отправил: sir henry (статус: Академик) Россия, Красноярск ---- Ответ отправлен: 20.01.2007, 17:37 Оценка за ответ: 3 Комментарий оценки: Я привел лишь кусок кода. По нему можно понять смысл создания меток. На самом деле структура сложная, и я только беру некоторые данные из StringGrid. Как это "превысить созданные QRLabel по горизонтали"? Если задать height или left большой, метка легко уйдет за лист! Без ошибок!!!
Вопрос № 71.832
Вопрос, наверно не совсем в тему, но наиболее близок всё-таки сюда...
Используется связка Delph + OpenOffice-OLE
На всех форумах как рекомендация по установке ширини столбца приводят код:
Вопрос, не знаете ли вы, какого типа объект Column и каким методом можно получить нужный столбец?
Заранее спасибо!
Отправлен: 20.01.2007, 17:14
Вопрос задал: Стас М. (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: sir henry
Здравствуйте, Стас М.!
Единственный тип который Вы можете получить из OpenOffice в Delphi (это в равной мере относится и к MS Office), это тип OleVariant. Непосредственно к компоненту обращается сам ОО, т.к. в Delphi Вы работаете не с ОО, а с объектом COM который и передает далее офису Ваши параметры свойствам или процедуры на выполнение.
По поводу "как", Вам лучше обратится на форум по ОО, там наверняка Вам ответят. Ссылка: http://community.i-rs.ru/
Ответ отправил: sir henry (статус: Академик) Россия, Красноярск ---- Ответ отправлен: 20.01.2007, 18:12
Вопрос № 71.894
Уважаемые эксперты, скажите, как реализовать в своей программе возможность по нажатию кнопки в программе, удалять несколько символов в Word'е, т.е. имитировать нажатие клавиши Backspace в Word'е.