Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Операционные системы > Софт
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.12.2014, 12:33   #171
vladrvv
Пользователь
 
Регистрация: 07.11.2009
Сообщений: 59
По умолчанию

Отправил
2014-12-23
vladrvv вне форума Ответить с цитированием
Старый 23.12.2014, 12:56   #172
vladrvv
Пользователь
 
Регистрация: 07.11.2009
Сообщений: 59
По умолчанию

И еще
Почему не срабатывает такое присвоение
DM.xDbfDogADD['NAME'] = DM.xDbfYslyg['NAME'];
вместо длинного
DM.xDbfDogADD.FieldByName('NAME').A sString= DM.xDbfYslyg.FieldByName('NAME').As String;
vladrvv вне форума Ответить с цитированием
Старый 23.12.2014, 19:58   #173
Rik
Форумчанин
 
Аватар для Rik
 
Регистрация: 28.07.2007
Сообщений: 361
По умолчанию

Цитата:
Сообщение от vladrvv Посмотреть сообщение
Отправил
2014-12-23
Отправил ответ в лс
Цитата:
Сообщение от vladrvv
И еще
Почему не срабатывает такое присвоение
DM.xDbfDogADD['NAME'] = DM.xDbfYslyg['NAME'];
вместо длинного
DM.xDbfDogADD.FieldByName('NAME').A sString= DM.xDbfYslyg.FieldByName('NAME').As String;
Такой функционал на данный момент прикрутить не получится. Можно использовать вместо FieldByName('asdfa') короткое FN('asdf')...
Rik вне форума Ответить с цитированием
Старый 24.12.2014, 18:14   #174
vladrvv
Пользователь
 
Регистрация: 07.11.2009
Сообщений: 59
По умолчанию

Вызов проседур печати.

В Делфи я делал так:

Цитата:
....
public
{ Public declarations }
end;
const mMon: array [1..12] of string
=('Января ','Февраля','Марта ','Апреля ','Мая','Июня ','Июля ','Августа ','Сентября','Октября ','Ноября ','Декабря');

var
FormDog: TFormDog;
procedure PrintPFR;
procedure PrintFNS;

implementation
....

procedure TFormDog.btnPrinTClick(Sender: TObject);
var
nVid:Integer;
begin
nVid:= DM.tblDog.FieldByName('vid').AsInte ger;
if nVid = 1 then
PrintPFR // 'Договор ПФР'
else if nVid = 2 then
PrintFNS // 'Договор ФНС'
else
ShowMessage('Договор Не определен!');

end;


procedure PrintPFR;
var
sSum,sNameFile,sS:String;
nSum :Double;
List1:TstringList;
y,m,d:Word;
begin
...
В Дизеле где и как объявлять , вызывать
vladrvv вне форума Ответить с цитированием
Старый 26.12.2014, 08:44   #175
vladrvv
Пользователь
 
Регистрация: 07.11.2009
Сообщений: 59
По умолчанию

Разобрался
vladrvv вне форума Ответить с цитированием
Старый 26.12.2014, 14:20   #176
vladrvv
Пользователь
 
Регистрация: 07.11.2009
Сообщений: 59
По умолчанию

1) Массивы
Объявление и инициализация не проходят
Цитата:
const m1: array [1..9] of string
=('один ','два ','три ','четыре ','пять ','шесть ','семь ','восемь ','девять ');
Объявление в виде переменной и потом присвоение - так все нормально.
2) Сумма прописью . Можете что - нибудь порекомендовать.
Есть подходящая функция?

3) ShellExecute
Можете привести пример запуска:
- любой программы ;
- программы по умолчанию
vladrvv вне форума Ответить с цитированием
Старый 27.12.2014, 18:21   #177
Rik
Форумчанин
 
Аватар для Rik
 
Регистрация: 28.07.2007
Сообщений: 361
По умолчанию

Цитата:
Сообщение от vladrvv Посмотреть сообщение
1) Массивы
Объявление и инициализация не проходят

Объявление в виде переменной и потом присвоение - так все нормально.
2) Сумма прописью . Можете что - нибудь порекомендовать.
Есть подходящая функция?

3) ShellExecute
Можете привести пример запуска:
- любой программы ;
- программы по умолчанию
1) Инициализация массивов при объявлении не поддерживается. Массивы не могут быть членами класса, объявляйте их как локальные переменные.

2) В движок интегрирована функция GetSumProp(Value: Variant; SmallFormat: Boolean): string; Возвращает сумму указанную в Value прописью. SmallFormat - задает писать руб. коп. полностью или сокращать. Эта-же функция интегрирована в LazReoprt в виде SUMPROP, только там есть ещё один параметр, задающий делать ли первую букву заглавной.

3) Вместо ShellExecute нужно использовать компоненту TProcess.
Код:
 Process1.Parameters.Clear;
 Process1.CurrentDirectory := UTF8ToSys(AppDir);
 Process1.Executable := 'CrossMachine';
 Process1.Parameters.Add('Param1');
 Process1.Execute;
Options у TProcess задает разные параметры, обратите внимание на poWaitOnExit - ждать или нет завершения процесса.
На неделе дополнительно добавлю TProcessUTF8, что-то я его упустил, на сколько я понимаю, пути и названия программ в нем задаются без UTF8Tosys

По поводу предыдущих постов...
Инструкция if может принимать вид, как это принято в Oberon:
Код:
if Condition then
elseif Condition then
elseif Condition then
else
end;
похоже на case, но в редакторе подсветка работает максимум для 3х веток..

Последний раз редактировалось Rik; 27.12.2014 в 18:47.
Rik вне форума Ответить с цитированием
Старый 27.12.2014, 19:44   #178
vladrvv
Пользователь
 
Регистрация: 07.11.2009
Сообщений: 59
По умолчанию

Цитата:
ShellExecute(Application.Handle, PChar('open'),PChar(Name_fail), nil,nil, 0);
Так в Делфи выглядит запуск программы по умолчанию. В функцию я передаю имя файла, который хочу открыть.Если это txt, то запускается текстовый редактор и открывает файл, если это xls - то excel или OpenOf и т.д. Т.е. запускается программа настроенная в системе на расширение файла.

Как это будет выглядеть в Дизеле ?
vladrvv вне форума Ответить с цитированием
Старый 29.12.2014, 12:18   #179
Rik
Форумчанин
 
Аватар для Rik
 
Регистрация: 28.07.2007
Сообщений: 361
По умолчанию

Цитата:
Сообщение от vladrvv Посмотреть сообщение
Так в Делфи выглядит запуск программы по умолчанию. В функцию я передаю имя файла, который хочу открыть.Если это txt, то запускается текстовый редактор и открывает файл, если это xls - то excel или OpenOf и т.д. Т.е. запускается программа настроенная в системе на расширение файла.

Как это будет выглядеть в Дизеле ?
ShellExecute является функцией Windows api и она не кроссплатформенна, поэтому универсального механизма нет, только выкручиваться через TProcess, он работает везде. Я могу добавить ShellExecute, но работать она будет только в Windows, в unix будет выдавать функция не поддерживается...
Rik вне форума Ответить с цитированием
Старый 29.12.2014, 14:21   #180
vladrvv
Пользователь
 
Регистрация: 07.11.2009
Сообщений: 59
По умолчанию

Прелесть этой конструкции в том , что не надо париться - какой редактор стоит в системе. Какой стоит , тот и запустит выбранный файл.
А в unix - нет программ по умолчанию ?
vladrvv вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Что же я написал? Sibedir Свободное общение 26 04.10.2010 05:01
Я написал текстовую игру... saggy Софт 11 05.06.2010 22:32
Написал редактор карт sasha1993 Gamedev - cоздание игр: Unity, OpenGL, DirectX 8 18.07.2009 21:31
Написал прогу в паскале... deu4er Помощь студентам 2 19.11.2008 20:08
Написал бэкдор, оцените KORN Софт 7 18.11.2007 08:55