Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Вопросы по Delphi (все версии) - часть 4

Автор: DmitryKz
Дата сообщения: 09.12.2008 13:52
Несколько вопросов:
Подскажите, как определить текущее DPI экрана? Нигде не нашел
Как можно назначить горячие клавиши Home, End, PageUp, PageDown в Delphi 7?
И если в буфере обмена есть текст, как можно в буфере же добавить к нему программно еще текстовую информацию?
Автор: Frodo_Torbins
Дата сообщения: 09.12.2008 16:38
DmitryKz

Цитата:
Подскажите, как определить текущее DPI экрана?
- Screen.PixelsPerInch.
Автор: Yozj
Дата сообщения: 09.12.2008 17:34
DmitryKz

Цитата:
И если в буфере обмена есть текст, как можно в буфере же добавить к нему программно еще текстовую информацию?

Посмотри в сторону TClipboard, а еще проще TMemo к примеру умеет копировать в буфер и вставлять в буфер выделенный текст.
Автор: asdnsd
Дата сообщения: 09.12.2008 20:00
Добрый день всем, разбираясь с FibPlus возникла проблема, вызываю хранимую процедуру с параметрами через TpFIBQuery, которая не должна возвращать ничего, в ней идет просто обновление определенной записи в базе. Через IBExpert хранимка выполняется хорошо. В программе делаю вот так:


Код:
function ...UpdateDriver(fam,nam,otch,tel,kod:string;id:integer):integer;
var
FibQuery: TpFIBQuery;
FBTR: TpFIBTransaction;
begin
if not pFIBDataBase.Connected then
begin
result:=-1;
exit;
end;

FBTR:=TpFIBTransaction.Create(nil);
FBTR.DefaultDatabase:=pFIBDataBase;

pFIBDataBase.DefaultTransaction:=FBTR;
pFIBDataBase.DefaultUpdateTransaction:=FBTR;

FibQuery := TpFIBQuery.Create(nil);
FibQuery.Transaction := FBTR;
FibQuery.Database := pFIBDataBase;

FibQuery.SQL.Text:='EXECUTE PROCEDURE UPDATEDRIVER('''+Fam+''','''+Nam+''','''+
Otch+''','''+Tel+''','''+Kod+''','+IntToStr(id)+');';

FBTR.Active:=true;
FibQuery.ExecQuery;

FBTR.Commit;
FibQuery.Free;
FBTR.Free;
end;
Автор: Maks150988
Дата сообщения: 09.12.2008 21:59
delover
Хм, я вроде выложил в архиве dcu файлы специально для такого случая. Сам "редактор" Delphi7 подхватывает их, правда я компилировал через консольный компилятор у Delphi эти файлы.
Автор: delover
Дата сообщения: 10.12.2008 06:24
Maks150988
Версия Turbo Delphi 2006 поставляется без файлов типа dcc32.exe.
Автор: Maks150988
Дата сообщения: 10.12.2008 12:33
delover
http://webdrive.avtograd.ru/Download/Explorer/sources/Project1.zip
Поправил архив.
Автор: Artem59
Дата сообщения: 10.12.2008 13:07
Вопрос такого порядка. Есть программа по работе с таблицами Access черед ADO. Сложно ли доработать ее до сетевой версии?
Автор: ShIvADeSt
Дата сообщения: 10.12.2008 13:38
Artem59

Цитата:
Вопрос такого порядка. Есть программа по работе с таблицами Access черед ADO. Сложно ли доработать ее до сетевой версии?

В принципе нет, если работать например с MS SQL на АДО. Надо смотреть какой синтаксис запрос используется, если не сильно загружено, то немного напильником пройтись и все.
Автор: Artem59
Дата сообщения: 10.12.2008 14:08
А если не заморачиваться с SQL-сервером? Т.е. что бы программа лежала в расшаренной папке. Все могли запускать. Что придется дорабатывать? Пара-тройка таблиц в БД.
Автор: RSoFT1978
Дата сообщения: 10.12.2008 15:38
Artem59
Как уже было сказано выше
Цитата:
немного напильником пройтись и все.

Конкретнее - блокировки таблиц в ситуации, когда несколько пользователей одновременно добавляют, изменяют или удаляют данные
Автор: GrHnd
Дата сообщения: 11.12.2008 13:11
Artem59

Цитата:
Программа должна формировать очень сложные выходные формы

Я бы посоветовал FastReport, правда он не бесплатен, но найти можно.
Автор: asdnsd
Дата сообщения: 11.12.2008 13:45
Привет всем, возникла проблема при использовании VirtualDrawTree. Заполняю дерево определенными данными, потом отчищаю дерево, заполняю снова. При выходе из программы вылетает AV в ntdll.dll. Из-за чего это может быть?

Заполнение так:


Код:
for i := 0 to DiscountsArray.Count - 1 do
begin
NewNode := VTDiscounts.AddChild(VTDiscounts.RootNode); // nil
DiscountNode := VTDiscounts.GetNodeData(NewNode);

with DiscountNode^ do
begin
ID := PDiscountNode(DiscountsArray.Items[i])^.id;
num := PDiscountNode(DiscountsArray.Items[i])^.num;
discount := PDiscountNode(DiscountsArray.Items[i])^.discount;
end;
end;
Автор: delover
Дата сообщения: 12.12.2008 08:09
Maks150988
Всё равно Turbo Delphi 2006 не компилит, говорит

Код: [no][Pascal Fatal Error][/no] Project1.dpr(1): F2063 Could not compile used unit 'System.pas'
Автор: salexn1
Дата сообщения: 12.12.2008 10:44
>DmitryKz
>Как можно назначить горячие клавиши Home, End, PageUp, PageDown в Delphi 7?

Непонятно кому назначить и где? Если Action то все тривиально, там выпадающий список есть... Нужны подробности
Автор: AndreyAgrh
Дата сообщения: 12.12.2008 10:57
Привет, подскажите, пожалуйста, компонент (ы) через который можно работать со сканером штрихкодов, подключенный к USB порту.
Автор: f3ka
Дата сообщения: 12.12.2008 11:10
salexn1 сказано же что в Delphi 7... наверно чтоб можно было быстро юзать какие то команды...
Автор: DmitryKz
Дата сообщения: 12.12.2008 12:30
salexn1
Ну да, комонентам можно назначить множество горячих клавиш, но не такие как Home, End, PageUp, PageDown, Ctrl+PageUp, Ctrl+PageDown и т. п.
Автор: Mandor Sawall
Дата сообщения: 12.12.2008 13:56
DmitryKz
Можно сделать через TForm.OnKeyDown, но ето слышком опасно - изменяется поведение стандартных компонент.
Автор: delover
Дата сообщения: 12.12.2008 13:56
DmitryKz
Эти комбинации клавищ считаются диалоговыми, по этой причине они отсутствуют в списке инспектора объектов, но никто же Вам не запрещает присваивать коды шорткатов в программе ручками? При этом акции юзаются тем же способом.
Автор: diodio
Дата сообщения: 12.12.2008 15:26
Пожалуйста, подскажите где почитать и/или поделитесь сырцом динамического создания компонент во время выполнения программы.
Что-то туплю в том, что число компонент в момент компиляции проги не определено (берутся, например, из .ini), а все исходники, найденные мной предполагают уже объявленные имена создоваемых компонент.
Заранее спасибо.
Автор: shulum
Дата сообщения: 12.12.2008 17:14
diodio
хттп://www.delphikingdom.com/
Автор: Coltrain
Дата сообщения: 12.12.2008 17:23
AndreyAgrh

Цитата:
подскажите, пожалуйста, компонент (ы) через который можно работать со сканером штрихкодов, подключенный к USB порту


Посмотри в сторону nrCommLib http://deepsoftware.ru/nrcomm/


Цитата:
Serial port (RS232) and barcode scan features
Direct access to serial port and I/O operations
Ready solution for Barcode scanner device
Find all available serial ports in the system (native and virtual IrDA, USB, bluetooth COM ports)
RS485 mode

Автор: diodio
Дата сообщения: 12.12.2008 18:00
2 shulum

Угу, хоть спасиб, именно там и нашел.

2 all
Доп. вопрос если можно.


Код: procedure TForm4.JvBitBtn1Click(Sender: TObject);
var
fts:array of TTabSheet;
i:integer;
begin
SetLength(fts,6);
// for i:=1 to 6 do
// begin
i:=1;
fts[i]:=TTabSheet.create(self);
fts[i].Parent := JvPageControl1;
fts[i].Caption:='Закаладка'+IntToStr(i);
fts[i].PageControl := JvPageControl1;
// end;
end;
Автор: akaGM
Дата сообщения: 12.12.2008 18:07
diodio

Код: fts:array of TTabSheet;
...
SetLength(fts,6);
for i:=1 to 6 do
Автор: diodio
Дата сообщения: 12.12.2008 18:11
2 akaGM

Спасибо огромное!
P.S. Затупил я стрррашно, конечно, мозг просто уже не варит. ) Пора домой...
Автор: Yozj
Дата сообщения: 12.12.2008 19:01
diodio
я бы порекомендовал тебе еще и Name динамически проставлять, чтобы потом можно было отличить компоненты друг от друга:

Цитата:

fts[i]:=TTabSheet.create(self);
fts[i].Parent := JvPageControl1;
fts[i].Name := 'TabSheet_'+IntToStr(i);

Автор: akaGM
Дата сообщения: 12.12.2008 19:47
diodio, Yozj
лучше теги...
Автор: AlexIntegral
Дата сообщения: 13.12.2008 11:15
Добрый день. Кто-нибудь, прошу, помогите мне разобраться с массивами. Дана вот такая задача: "Дан двумерный массив чисел. Составить программу подсчета количества нулей в четных строках и количества единиц в нечетных; найти наибольший и наименьший элементы и поменять их местами; найти наибольший и наименьший элементы и поменять местами строки, содержащие их. Размерность массива задается с клавиатуры. Значения элементов генерируются случайно."

Я написал код генерации массива с выводом готовой матрицы на экран (консольное приложение):


Код: program ProjectMatrix;

{$APPTYPE CONSOLE}

uses
SysUtils,
Math,
Windows;

var
m,n: integer;
i,j: word;
r: array[1..200,1..200] of integer;

begin
readln(m,n);
Randomize;
for i:=1 to m do
for j:=1 to n do
r[i,j]:=Random(10);
for i:=1 to m do
begin
for j:=1 to n do write(r[i,j]:2);
writeln;
end;

readln;
end.
Автор: AndreyAgrh
Дата сообщения: 13.12.2008 12:33
Coltrain
да я уже смотрел и даже ставил nrCommLib себе. Там возможно только перечисление существующих usb устройств, но обмен данными с ними не возможен.

Может быть у кого-нить есть примеры того как работать с usb сканером? или какие-нибудь статьи по теме?

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: Глобальные переменные в разных формах с++ builder 'a.


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.