при обновлении клиента переименовываю файл и загружаю новый exe, тк постоянно у кого то он запущен. те кто сидят на терминале не могут загрузить новый, ярлык указывает на старый(уже переименованный) файл. как быть и поможет ли "стартер" клиента?
» Вопросы по Delphi (версии 2009, 2010 Weaver, 2011 Fulcrum)
neznayka3
свой стартер, или хотя-бы тупо батник..
свой стартер, или хотя-бы тупо батник..
Народ помогите. Печать на USB принтер (аля Zebra) прямым доступом.
Собственно надо печатать EPL. Загвоздка в том что часть принтеров USB. Для Com/LPT все прозрачно.
Перерыл форум, много советов, часть нерабочих. Печать через Шару не подходит.
Хочется банально имея имя принтера в системе - пустить на него поток с командами.
Собственно надо печатать EPL. Загвоздка в том что часть принтеров USB. Для Com/LPT все прозрачно.
Перерыл форум, много советов, часть нерабочих. Печать через Шару не подходит.
Хочется банально имея имя принтера в системе - пустить на него поток с командами.
tanaseduard
как правило, USB принтера поддерживают эмуляцию СОМ-порта. может там в настройках нужно указать что в этом режиме работать
как правило, USB принтера поддерживают эмуляцию СОМ-порта. может там в настройках нужно указать что в этом режиме работать
ant0ni02004
Спасибо. Уже решил.
Вот решение, вдруг кому пригодится. Печатает команды EPL на принтер в системе по имени, порт не имеет значения.
Код: Procedure PrintCommands(Const APrinterName,ADocName:String;ACommands:TStringList);
Var
Handle:THandle;
N:DWORD;
DocInfo1:TDocInfo1;
I:Integer;
Line:AnsiString;
Begin
If Not OpenPrinter(PChar(APrinterName),Handle,Nil) Then Raise Exception.Create('Printer not Found.');
DocInfo1.pDocName:=PChar(ADocName);
DocInfo1.pOutputFile:=Nil;
DocInfo1.pDataType:='RAW';
StartDocPrinter(Handle,1,@DocInfo1);
For I:=0 To ACommands.Count-1 Do
Begin
Line:=ACommands.Strings[i]+#13+#10;
WritePrinter(Handle,PChar(Line),Length(Line),N);
End;
EndPagePrinter(Handle);
EndDocPrinter(Handle);
ClosePrinter(Handle);
End;
Спасибо. Уже решил.
Вот решение, вдруг кому пригодится. Печатает команды EPL на принтер в системе по имени, порт не имеет значения.
Код: Procedure PrintCommands(Const APrinterName,ADocName:String;ACommands:TStringList);
Var
Handle:THandle;
N:DWORD;
DocInfo1:TDocInfo1;
I:Integer;
Line:AnsiString;
Begin
If Not OpenPrinter(PChar(APrinterName),Handle,Nil) Then Raise Exception.Create('Printer not Found.');
DocInfo1.pDocName:=PChar(ADocName);
DocInfo1.pOutputFile:=Nil;
DocInfo1.pDataType:='RAW';
StartDocPrinter(Handle,1,@DocInfo1);
For I:=0 To ACommands.Count-1 Do
Begin
Line:=ACommands.Strings[i]+#13+#10;
WritePrinter(Handle,PChar(Line),Length(Line),N);
End;
EndPagePrinter(Handle);
EndDocPrinter(Handle);
ClosePrinter(Handle);
End;
Извините за ламерский вопрос - как в с++билдере реализовать такую конду из sql
where param1 in [1,2,6,8]
лень писать 4 условия
where param1 in [1,2,6,8]
лень писать 4 условия
Кто-нибудь знает как снести ненужный сериальный номер из LicenesManager, он стоит выше чем рабочий-зарегистрированный и ХЕ берёт первый по порядку, и конечно кричит что незарегистрирована.
Цитата:
Извините за ламерский вопрос - как в с++билдере реализовать такую конду из sql
where param1 in [1,2,6,8]
лень писать 4 условия
Про билдер не подскажу, но возможно по аналогии с делфи. В делфи есть if x in [1,2,6,8] then как ещё вариант case x of 1,2,6,8 : ... (в билдере аналог switch)
Добавлено:
tanaseduard
Посмотри примеры на основе ezweb.dll, может твой случай. Вообще варианта пока нашел два (в зависимости от принтера): писать в файл и отправлять в порт и использовать эту библиотеку.
часто юзеры цепляют много файлов к формам(могут мелких на 50mb), в итоге при сохранении тормоза. как бы разделить сохранение данных формы и файлов? сейчас они сохраняются в отдельных транзакциях, чтобы не блокировать данные, тк иногда сохранение может идти десятки сек. у кого вайфай никакой.
зы с потоками пока не выходит, получаю AV.
зы с потоками пока не выходит, получаю AV.
neznayka3
Без сорцов вряд ли кто-то поможет
Без сорцов вряд ли кто-то поможет
neznayka3
Для потоков юзай
OmniThreadLibrary
на самом деле придется приучить себя кодить в стиле потокобезопасности в не самой дружелюбной для этого среде.
Для потоков юзай
OmniThreadLibrary
на самом деле придется приучить себя кодить в стиле потокобезопасности в не самой дружелюбной для этого среде.
neznayka3
а будет ли это правильно, сохранять отдельно?
нужно ведь отслеживать, что все файлы сохранились успешно и если вдруг нет(ошибка сети например, или доступа к файлу) - сообщить об этом юзеру чтобы он пересохранил
а будет ли это правильно, сохранять отдельно?
нужно ведь отслеживать, что все файлы сохранились успешно и если вдруг нет(ошибка сети например, или доступа к файлу) - сообщить об этом юзеру чтобы он пересохранил
ant0ni02004
да. разбил на 2 транзакции, чтобы остальные данные не блокировались. сообщение юзер получает при откате. разбираюсь с потоками, чтоб юзеры не доставали после долгого неспешного сохранения файлов)
да. разбил на 2 транзакции, чтобы остальные данные не блокировались. сообщение юзер получает при откате. разбираюсь с потоками, чтоб юзеры не доставали после долгого неспешного сохранения файлов)
neznayka3
покажите юзерам прогресс-бар да и всех делов, или курсором "покрутите"
они ведь достают не потому что медленно, а потому что программа как-бы "зависает"
покажите юзерам прогресс-бар да и всех делов, или курсором "покрутите"
они ведь достают не потому что медленно, а потому что программа как-бы "зависает"
ant0ni02004
проблема не в тех кто сохраняет. другим надо работать с актуальной информацией, которую остальные вносят и файлы их мало интересуют. например: ввели нового таксиста, ему надо отдать заказ, а другие его не видят, потому что кто его забил сидит где то далеко, цепляет сканы в pdf и интернет у него никакой.
проблема не в тех кто сохраняет. другим надо работать с актуальной информацией, которую остальные вносят и файлы их мало интересуют. например: ввели нового таксиста, ему надо отдать заказ, а другие его не видят, потому что кто его забил сидит где то далеко, цепляет сканы в pdf и интернет у него никакой.
neznayka3
Ты учти что из двух разных потоков ты не можешь работать с одной сессией одновременно.
Лучше наверное сделать так:
фиксишь на сервер инфу кроме файлов, комитишь, ид записи передаешь в другой поток, в другом потоке используя ДРУГУЮ сессию (либо сессия создана в самом потоке, либо другой компонент который ты не трогаешь из основного потока, но тут придется следить чтобы не запустить новый поток пока существует первый рабочий) уже фиксишь файлы. Так у тебя главный поток освободится максимально быстро и файлы будут сохраняться в фоне. Так как VCL не потокобезопасен, в рабочих потоках с ним напрямую работать нельзя.
Ты учти что из двух разных потоков ты не можешь работать с одной сессией одновременно.
Лучше наверное сделать так:
фиксишь на сервер инфу кроме файлов, комитишь, ид записи передаешь в другой поток, в другом потоке используя ДРУГУЮ сессию (либо сессия создана в самом потоке, либо другой компонент который ты не трогаешь из основного потока, но тут придется следить чтобы не запустить новый поток пока существует первый рабочий) уже фиксишь файлы. Так у тебя главный поток освободится максимально быстро и файлы будут сохраняться в фоне. Так как VCL не потокобезопасен, в рабочих потоках с ним напрямую работать нельзя.
есть пара мест в программе, где вызываются 3-4 диалоговых форм одна из другой. собираюсь изменить интерфейс, но пока так. проблема в том, что когда много диалоговых форм открыто, при переключении на другие программы, и обратное переключение в программу, z-порядок форм путается. как это исправить?
neznayka3
просто show не showmodal?
Есть например BringToFont, можно пробежаться и выровнять как надо.
просто show не showmodal?
Есть например BringToFont, можно пробежаться и выровнять как надо.
neznayka3
У апликейшена вроде были какие то методы на этот случай.
У апликейшена вроде были какие то методы на этот случай.
neznayka3
а какая версия дельфей у вас?
т.к. в новых версиях это дело с z-order исправлено (начиная с 2010 помоему)
а какая версия дельфей у вас?
т.к. в новых версиях это дело с z-order исправлено (начиная с 2010 помоему)
В hepl dephi xe2 нет описания модуля Winapi.Windows и его компонентов. Кто подскажет почему И как пользоваться
snike555
везде showmodal
ant0ni02004
xe3
например без переключения на другие программы: с гл. формы вызывается форма (заказ) с нее другая (отчет) на которой находится frxPreview. если вызвать frxReport1.Export(frxPDFExport1); то порядок форм становится таким: отчет-гл. форма-заказ-диалог сохранения.
везде showmodal
ant0ni02004
xe3
например без переключения на другие программы: с гл. формы вызывается форма (заказ) с нее другая (отчет) на которой находится frxPreview. если вызвать frxReport1.Export(frxPDFExport1); то порядок форм становится таким: отчет-гл. форма-заказ-диалог сохранения.
vitvitber
Обновление хелпа стоит? А вообще, все что в этом модуле можно увидеть, ищется либо на MSDN, либо в WinSDK, который по умолчанию вместе с хелпом не ставится.
Обновление хелпа стоит? А вообще, все что в этом модуле можно увидеть, ищется либо на MSDN, либо в WinSDK, который по умолчанию вместе с хелпом не ставится.
neznayka3
Цитата:
тут дело скорее в том, что фастрепорт при открытии отчета делает Show вместо ShowModal
frxReport->previewOptions проверьте настройку Modal
по поводу 2х потоков - в конце концов, сделайте обновление 2х-шаговым, т.е. сначала вызывайте SQL с Update самых важных полей (и т.о. остальные подключившиеся их смогут видеть, они ведь через read-commited читают по идее), а затем вызывайте другой SQL с Update всяких блобов для этой же записи. а еще лучше будет блобы эти в отдельную таблицу вывести и связать по ключу.
Цитата:
с нее другая (отчет)
тут дело скорее в том, что фастрепорт при открытии отчета делает Show вместо ShowModal
frxReport->previewOptions проверьте настройку Modal
по поводу 2х потоков - в конце концов, сделайте обновление 2х-шаговым, т.е. сначала вызывайте SQL с Update самых важных полей (и т.о. остальные подключившиеся их смогут видеть, они ведь через read-commited читают по идее), а затем вызывайте другой SQL с Update всяких блобов для этой же записи. а еще лучше будет блобы эти в отдельную таблицу вывести и связать по ключу.
neznayka3
блобы находятся в той же таблице?
то есть количество файлов строго ограничено?
блобы находятся в той же таблице?
то есть количество файлов строго ограничено?
ant0ni02004
frxReport->previewOptions не при чем. у меня своя форма с frxPreview, которая вызывается модально.
snike555
нет.
ограничен только размер файла.
frxReport->previewOptions не при чем. у меня своя форма с frxPreview, которая вызывается модально.
snike555
нет.
ограничен только размер файла.
Доброго всем времени суток!
Никто не сталкивался с проблемой установки XL Report на Delphi XE3. Уж больно много приложений его использует (а их надо переписывать).
Я перекомпилировал все исходники под XE3. Сам компонент устанавливается, появилась панелька XlReport. Но нет самого главного - не вызывает Excel и не создаются дополнительные пункты меню компонента: редактирование шаблона, просмотр...
Спасибо.
Никто не сталкивался с проблемой установки XL Report на Delphi XE3. Уж больно много приложений его использует (а их надо переписывать).
Я перекомпилировал все исходники под XE3. Сам компонент устанавливается, появилась панелька XlReport. Но нет самого главного - не вызывает Excel и не создаются дополнительные пункты меню компонента: редактирование шаблона, просмотр...
Спасибо.
Добрый день. Вопрос может показаться странным, но все же - есть возможность выделить на форме несколько визуальных компонентов и повернуть их все на 180 градусов? Нашел Flip children, но он отражает по вертикали, а нужен именно поворот на 180 или на крайний случай флип по горизонтали.
P.S. Delphi 2009
P.S. Delphi 2009
Подскажите, пожалуйста:
Delphi XE2
Из батника запускается моя программа, которой в качестве параметра передается некий путь, содержащий пробелы и кириллические символы. Если присваиваю paramStr[1] строке string - получаю там зюки и этот путь использовать из программы хотя бы в качестве FileExists нельзя. Как это получить правильно?
Delphi XE2
Из батника запускается моя программа, которой в качестве параметра передается некий путь, содержащий пробелы и кириллические символы. Если присваиваю paramStr[1] строке string - получаю там зюки и этот путь использовать из программы хотя бы в качестве FileExists нельзя. Как это получить правильно?
Доброго времени суток!
Может ли кто-нибудь поделиться инструкцией по переносу XL Report для делфи 2009-2010.
У меня идея фикс: перенести XL Report под Delphi XE3. Может что-нибудь найду полезное.
Может ли кто-нибудь поделиться инструкцией по переносу XL Report для делфи 2009-2010.
У меня идея фикс: перенести XL Report под Delphi XE3. Может что-нибудь найду полезное.
Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
Предыдущая тема: Установка копоненты ZipTV
Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.