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

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


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


RusFAQ.ru: Программирование на C++ Builder / Delphi

Выпуск № 343
от 09.06.2004, 09:00

Администратор:
Имя: Калашников О.А.
URL: Информационный ресурс
ICQ: 68951340
Россия, Москва
О рассылке:
Задано вопросов: 1604
Отправлено ответов: 3726
Активность: 232.2 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе][Обсудить на форуме]


 Список экспертов, ответы которых опубликованы в данном выпуске

CJ
Статус: Опытный
Общий рейтинг: 122.24
URL: Персональный сайт Каратецкого Кирилла.
Телефон: +375297353706
[Подробней >>]
THE_PRO
Статус: Профессиональный
Общий рейтинг: 134.34
URL: THE_PRO
Телефон: (994 +12) 989647
[Подробней >>]
CrackLab
Статус: Опытный
Общий рейтинг: 139.56
[Подробней >>]
 
sir henry
Статус: Профессиональный
Общий рейтинг: 163.23
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 1600. Привет эксперты! есть проблемка одна, раньше я писал програмы на delphi, но в связи с тем что програ... (ответов: 4)
Вопрос № 1601. В дополнение к ответу на вопрос №1592 И-и-э-э-х-х... Если бы создание логики программ от меня зависе... (ответов: 1)
Вопрос № 1602. значит такая проблема в DLL следующий код library svprg; uses SysUtils, Classes, Windows; function... (ответов: 2)
Вопрос № 1603. Добрый день. У меня такая проблема. Пишу код: procedure TEditr.N11Click(Sender: TObject); var BlSt :... (ответов: 1)

Вопросов: 4, ответов: 8


 Вопрос № 1600

Привет эксперты!
есть проблемка одна, раньше я писал програмы на delphi, но в связи с тем что програмы получаются большие, решил перейти билдеру. Написал небольшую програмку на билдере версии 3.0, програма работает нормально, но на другом компе где нет билдера програмка выдает сообщение что нет файла vcl35.bpl. Подскажите плз, может надо какие то опции в самом билдере поменять?
заранее спасибо...



Вопрос отправлен: 04.06.2004, 11:29
Отправитель: kill

[Следующий вопрос >>] [Список вопросов]

Отвечает CJ

Добрый день, kill!
Енто как в Делфи, в опциях можно отключить Runtime Packages - пакеты времени выполнения,
и тогда программа по размеру становится намного меньше, но может работать только с установленным
Делфи. Так и в билдере. Тебе надо просто отключить в опциях одну галочку:
Project>Options>Build with Runtime Packages

Ответ отправлен: 04.06.2004, 18:32
Отправитель: CJ


Отвечает THE_PRO

Приветствую Вас, kill!
Убери флажок "Biuld with runtime packages"

Ответ отправлен: 04.06.2004, 15:29
Отправитель: THE_PRO


Отвечает CrackLab

Приветствую Вас, kill!
Меню Project -> Options.
Закладка Packages. Убираешь галку "Build with runtime packages".
Закладка Compiler. Жмешь Release.

Ответ отправлен: 04.06.2004, 13:23
Отправитель: CrackLab


Отвечает sir henry

Доброе время суток, kill!
Bpl - это Борландовский пакет с общими функциями, которые не включаются в программу, а идут отдельно (в пакете). За счет этого, если Вы запускаете много откомпилированых Вами в Билдере программ, экономится память компьютера. В случае, если Вы запускаете только одну подобную програму, то никакой экономии нет :).
К сожалению, у меня нет под рукой третьего Билдера, скажу примерно. Вы должны найти в настройках проекта что-то типа "Build with runtime packages" и отключить эту птичку. Примерно она должна находиться в меню "Project->Options...->Packages".
Если Вы отключите эту опцию, то все необходимые функции будут включены в Вашу программу, но и объем ее возрастет существенно. Однако общий объем что в том, что в другом случае (Ваша_прога+пакеты или Ваша_прога_все_включено) будет одинаков. Так что зря Вы ушли от Дельфи :)).
В качестве рецепта по уменьшению размеров программ (радикального) можно посоветовать или писать вручную на чистом WinAPI или в Дельфи применять специальную библиотеку KOL (можно найти на сайте www.delphimaster.ru). Но в любом случае VCL следует избегать, т.к. это из-за VCL получается такой сумашедший объем программ, что на Дельфи, что на Билдере .

Ответ отправлен: 05.06.2004, 06:44
Отправитель: sir henry


 Вопрос № 1601

В дополнение к ответу на вопрос №1592
И-и-э-э-х-х...
Если бы создание логики программ от меня зависело...
А так - основная программа написана в среде FoxPro 2.6 for DOS.
И логику ее менять - задолбаешся. Проще написать новую программу.
Просто основная программа кроме этой задачи делает ещё огромную кучу всяких других...
Просто при формировании файлов у пользователя есть возможность запустить bat-файл. Вот в нем моя программа и вызывается.



Вопрос отправлен: 04.06.2004, 13:15
Отправитель: Alexandr

[Следующий вопрос >>] [Список вопросов]

Отвечает sir henry

Доброе время суток, Alexandr!
Ну что я могу еще сказать, я тоже думаю что проще заново написать :)). А исходники проги на фоксе есть? Может стоит в ней покопаться и сделать весь функционал, который дает Ваша программа, там?
Может быть Вам разнести функции Вашей программы на две программы, т.е. пользователи будут запускать не один bat, а два? Т.е. сначала батник, который делает архивацию и резервное копирование, а потом второй батник, который копирует в каталог для исходящих файлов.

Ответ отправлен: 05.06.2004, 06:54
Отправитель: sir henry


 Вопрос № 1602

значит такая проблема в DLL следующий код
library svprg;
uses
SysUtils, Classes, Windows;
function strshifr(str:string):string;stdcall;
var i:integer;
begin
for i:=1 to length(str) do str[i]:=char(byte(str[i]) xor 1234567);
Result:=str;
end;
function intshifr(int:integer):integer;stdcall;
begin
int:=int xor 1234567;
Result:=int;
end;
{$R *.res}
exports strshifr, intshifr;
begin
end.
из exe вызываю следующим способом
function strshifr(str:string):string;stdcall;
function intshifr(int:integer):integer;stdcall;
var
Form1: TForm;
implementation
{$R *.dfm}
function strshifr; external 'svprg.dll';
function intshifr; external 'svprg.dll';
при компиляции выскакивает окно с ошибкой Invalid Pointer Operation, как исправить эту ошибку?



Вопрос отправлен: 05.06.2004, 10:18
Отправитель: morph

[Следующий вопрос >>] [Список вопросов]

Отвечает sir henry

Добрый день, morph!
При компиляции чего выскакивает такая ошибка? Библиотеки или программы? При компиляции Вашей билиотеки, у меня ни какой ошибки не выскочило, значит дело в Вашей прогграме. Ищите там.
При компиляции, кроме сообщения об ошибке, должен еще выскакивать номер строки с ошибкой.
"Invalid Pointer Operation" - это "Неправильная операция с указателем".

Ответ отправлен: 07.06.2004, 03:56
Отправитель: sir henry


Отвечает CrackLab

Здравствуйте, morph!
У меня вроде все нормально, ошибок при компиляции нет. Разве что res файл не найден, но я убрал эту директиву, и объявление функции из dll требовало указания возвращаемого значения, что я тоже поправил. После этого ошибок при компиляции и работе уже не было.
Можете попробовать упаковать ваш проект (только необходимые файлы, по минимуму) и закачать его куда-нибудь. Я скачаю и посмотрю.

Ответ отправлен: 06.06.2004, 18:21
Отправитель: CrackLab


 Вопрос № 1603

Добрый день.
У меня такая проблема. Пишу код:
procedure TEditr.N11Click(Sender: TObject);
var BlSt : TADOBlobStream;
begin
if not OpenPictureDialog2.Execute then exit;
OleContainer1.CreateObjectFromFile(OpenPictureDialog2.FileName,False);
With ADOTable1 do
begin
Edit;
BlSt:=TADOBlobStream.Create(ADOTable1Risunok,bmReadWrite);
OLEContainer1.SaveToStream(BlSt as TStream);
BlSt.Free;
Post;
end;
end;
При запуске сохраняю в базу данных большой рисунок (более 2 МБ).
Закрываю базу. При новом открытии базы выдаёт ошибку (что-то с Ole).
При изменении кода:
procedure TEditr.N11Click(Sender: TObject);
var BlSt : TADOBlobStream;
begin
OleContainer1.CreateObjectFromFile(\'D:РИСУНКИОткрыткиВил.bmp\', False);
With ADOTable1 do
begin
Edit;
BlSt:=TADOBlobStream.Create(ADOTable1Risunok,bmReadWrite);
OLEContainer1.SaveToStream(BlSt as TStream);
BlSt.Free;
Post;
end;
end;
Работает всё нормально. Подскажите, пожалуйста, почему?.
И ещё вопрос. Сохраняю в базу большой рисунок. База была 1Мб, стала 3 Мб.
Удаляю этот рисунок, но база все-равно осталась 3Мб.
Как очистить базу от удалённых данных?.(Работаю с ADO, база MS ACCESS).
Я, правда, задавал этот вопрос, но подтверждения что он дошёл не было.
(Может e-mail неправильно указал). Извините за неудобства.
Спасибо.



Вопрос отправлен: 05.06.2004, 16:08
Отправитель: Vova

[Следующий вопрос >>] [Список вопросов]

Отвечает sir henry

Доброе время суток, Vova!
1. Видимо в первом случае то, что сохраняется в Вашу базу - не рисунок. Я краем уха слышал, что у MS Aсcess есть подобные проблемы, но точно сказать не могу, потому что с Access не работаю.
2. По всей видимости, после удаления рисунка из базы, там остается пространство под него. В самом Access сжать базу можно с помощью меню: "Сервис→Служебные программы→Сжать и восстановить БД". Так же база может сжиматься автоматически при закрытии ее. Для этого в опциях выставляется специальная птичка. Но опять же, это если работать непосредственно в Access.

Ответ отправлен: 07.06.2004, 04:15
Отправитель: sir henry



Форма отправки вопроса

Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

(C) 2002-2003 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


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


Получить ответов:


 Выбор рассылки

Программисту
Assembler (23)
C / C++ (13)
Perl (1)
Builder / Delphi (16)
Pascal (20)
Basic / VBA (3)
Java / JavaScript (4)
PHP (14)
Криптография (8)
WinAPI (10)
Радиоэлектроника (9)
Пользователю
Windows 95/98/Me (34)
Windows NT/2000/XP (51)
"Железо" (31)
Поиск информации (15)
Администратору
Windows NT/2000/XP (26)
Linux / Unix (11)
Юристу
Гражданское право (11)
Семейное право (8)
Трудовое право (11)
КоАП (7)

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




Задать вопрос | Регистрация эксперта | Поиск в базе | Чат | Форумы | Новости
Проект экспертов RusFAQ.ru | Фотоальбом | Virus.RusFAQ.ru | Администрирование
Профессиональная WEB-Студия B.I.T.


Яндекс цитирования
© 2001-2004 Россия, Москва. Авторское право: Калашников О.А.

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


В избранное