Вопрос № 23061: Здравствуйте, уважаемые эксперты!
У меня вопрос по QuickReport. Проблема следующая: у меня отчет должен сформировать 4 страницы не по всей БД, а по какой-то одной записи (т.е. допустим карточку клиента на 4 страницы), я первую страницу заполнил, ...Вопрос № 23073: Здравствуйте!
Вот, возник следующий вопрос. Заранее извиняюсь, если уже не в первый раз. Требуется написать программу-резидент (без формы), которая отлавливала бы нажатие клавиши, например, F8 и запускала определенное приложение.
Заранее спас...Вопрос № 23088: Доброе время суток, многоуважаемые эксперты!
Помогите моему горю, уж очень нужны компоненты FastReport к D7 и желательно с crack-ом. Может кому-нить попадались или есть у кого. А то Qreport порядком надоел. Заранее спасибо....Вопрос № 23089: Люди !!! Подскажите, плиз, есть ли аналог процедуры RegisterServiceProcess из 'kernel32.dll' под NT ??? Если есть - расскажите пожалуйста. Жду с нетерпением....Вопрос № 23105: Здраствуйте, у меня такой вопрос как зделать чтобы
положение мышки(x,y) записовалось бы в поля edit1 и edit2 .Заранее спасибо. ...Вопрос № 23107: Добрый день.
Подскажите, пожалуйста, как в ячейке TStringGrid (или заголовке TListView) расположить надпись вертикально, т.е. повернутой на 90 градусов.
Спасибо....
Вопрос № 23.061
Здравствуйте, уважаемые эксперты!
У меня вопрос по QuickReport. Проблема следующая: у меня отчет должен сформировать 4 страницы не по всей БД, а по какой-то одной записи (т.е. допустим карточку клиента на 4 страницы), я первую страницу заполнил, а теперь вопрос: как перейти на 2 страницу для ее заполнения. Спасибо за уделенное время.
Отправлен: 05.07.2005, 07:21
Вопрос задал: xXx (статус: 2-ой класс)
Всего ответов отправлено: 2
Отвечает: sir henry
Здравствуйте, Юмин Дмитрий Вениаминович!
Вопрос непонятен.
Если у Вас данных для вывода на 4 страницы, то никаких специальных мер принимать не надо, страницы данными заполняются автоматически.
Условно говоря, если у Вас на одной странице вмещается 60 строк, а данных надо вывести на 240 строк, то именно 4 страницы и будет.
Или же Вы просто хотите оставшееся место (еще 3 страницы) заполнить какой-нибудь лабудой?
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 05.07.2005, 08:13
Отвечает: Jadd
Здравствуйте, Юмин Дмитрий Вениаминович!
Я не понял, ты что "руками" все заполняешь? А компоненты типа ChildBand, DetailBand, GroupBand наконец для чего существуют? У TQuickReport есть экзамплы как правильно строить отчеты, посмотри их.
--------- Если в сердце дверь закрыта, нужно в печень постучаться
Ответ отправил: Jadd (статус: Студент)
Отправлен: 05.07.2005, 09:55
Вопрос № 23.073
Здравствуйте!
Вот, возник следующий вопрос. Заранее извиняюсь, если уже не в первый раз. Требуется написать программу-резидент (без формы), которая отлавливала бы нажатие клавиши, например, F8 и запускала определенное приложение.
Заранее спасибо.
Отправлен: 05.07.2005, 12:41
Вопрос задал: Yarick (статус: Посетитель)
Всего ответов отправлено: 4
Отвечает: streetcat
Здравствуйте, Yarick!
Пользуйся функцией GetAsyncKeyState.
В приложении работающий пример такой программы.
В место строки
ShowMessage('F8 has been pressed!');
можете вставить
WinExec('ваша_программа.exe', SW_SHOW);
winexec а не например, ShellExecute затем, чтобы не тащить с собой лишний модуль ShellApi и для простоты. Хотя, если тебе не важны пара-тройка дополнительных килограмм в весе твоего exe-резидента ;) юзай ShellExecute.
Приложение:
--------- WinERROR: Keyboard not detected. Press Enter to continue
Ответ отправил: streetcat (статус: 7-ой класс)
Отправлен: 05.07.2005, 15:00
Отвечает: Delphin
Здравствуйте, Yarick!
Что тебе мешает это сделать?
Создай программу и удали форму. дальше ставь глобальный хук и отлавливай нажатия F8. А запустить поможет ShellExecute();
--------- Обращаться в ICQ: 77778851 или E-Mail: delphinster@gmail.com
Ответ отправил: Delphin (статус: 7-ой класс)
Отправлен: 05.07.2005, 17:12
Отвечает: Ерёмин Андрей
Здравствуйте, Yarick!
Вы можете воспользоваться функциями RegisterHotKey и UnregisterHotKey. По этой теме в комплекте Delphi есть документация:
Пуск - Программы - Borland Delphi - Help - MS SDK Help Files - Win32s Programmer's Reference.
Раздел "Microsoft Win32 Programmer's Reference" - "Keyboard Input" - "Hot-Key Support".
Вам будет необходимо зарегистрировать в системе горячую клавишу (или комбинацию клавиш), после чего программа будет получать сообщение WM_HOTKEY, когда эта клавиша будет нажиматься. Нужно создать обработчик этого сообщения и запускать нужный файл через WinExec или ShellExecute. Удачи!
--------- Если б не было бы глюка, жизнь была б такая скyка...
Ответ отправил: Ерёмин Андрей (статус: Студент)
Отправлен: 05.07.2005, 17:31
Отвечает: And1
Здравствуйте, Yarick!
А в чём собственно проблема?? Удали форму в менеджере проекта, отлавливай нажатие клавиш и ShellExecute запускай программу, вот и всё!!!
Если будт затруднения с чем-то конкретным - пиши, здесь не контора "замутите-ка мне на халяву программку".
Удачи!
Ответ отправил: And1 (статус: 3-ий класс)
Отправлен: 06.07.2005, 10:11
Вопрос № 23.088
Доброе время суток, многоуважаемые эксперты!
Помогите моему горю, уж очень нужны компоненты FastReport к D7 и желательно с crack-ом. Может кому-нить попадались или есть у кого. А то Qreport порядком надоел. Заранее спасибо.
Отправлен: 05.07.2005, 17:16
Вопрос задал: xXx (статус: 2-ой класс)
Всего ответов отправлено: 1
Отвечает: Jadd
Здравствуйте, Юмин Дмитрий Вениаминович!
дык поищи в eDonkey сети. Я там много нужных компонент нарыл.
--------- Если в сердце дверь закрыта, нужно в печень постучаться
Ответ отправил: Jadd (статус: Студент)
Отправлен: 05.07.2005, 17:38
Вопрос № 23.089
Люди !!! Подскажите, плиз, есть ли аналог процедуры RegisterServiceProcess из 'kernel32.dll' под NT ??? Если есть - расскажите пожалуйста. Жду с нетерпением.
Отправлен: 05.07.2005, 17:35
Вопрос задал: Skynet79 (статус: Посетитель)
Всего ответов отправлено: 2
Отвечает: John Freeman
Здравствуйте, Skynet79!
Нету, но сделать так можно - читай про хуки на wasm.ru
--------- You're trying to take me They trying to make me This is the only Gives me the only thing Tired of lying, I'm tired of lying The only thing I inderstand is what I feel...
Ответ отправил: John Freeman (статус: Профессор)
Отправлен: 05.07.2005, 17:47
Отвечает: Delphin
Здравствуйте, Skynet79!
Нет и не будет. Теперь тебе надо регестрировать себя как сервис. Можеш попробовать для своего вируса инжектировать код в другой процесс. Это в интеренете не раз писали. И еще для написания вирусов используй VC++ или BC++ а не Delphi.
Если нужен код установки себя как сервиса то пиши в мыло.
--------- Обращаться в ICQ: 77778851 или E-Mail: delphinster@gmail.com
Ответ отправил: Delphin (статус: 7-ой класс)
Отправлен: 06.07.2005, 00:13
Вопрос № 23.105
Здраствуйте, у меня такой вопрос как зделать чтобы положение мышки(x,y) записовалось бы в поля edit1 и edit2 .Заранее спасибо.
Отправлен: 05.07.2005, 23:02
Вопрос задал: Staskin (статус: Посетитель)
Всего ответов отправлено: 7
Отвечает: Bochvarov NikB
Здравствуйте, Staskin!
Edit1.Text := SysUtils.IntToStr(x);
А если спрашиваеш как найти положение мьиши - перепиши OnMouseMove.
А если спрашиваеш как найти глобальное положение мьиши на desktop - надо читать и писать hook (смотри TWindowHook)
А если хочеш что-то другое - надо точнее спрашивать :)
Ответ отправил: Bochvarov NikB (статус: 4-ый класс)
Отправлен: 05.07.2005, 23:15
Отвечает: xXx
Здравствуйте, Staskin!
Попробуй так:
procedure Form1.Button1Click(Sender: TObject);
var
foo: TPoint;
begin
GetCursorPos(foo);
Edit1.text := IntToStr(foo.X);
Edit2.text := IntToStr(foo.Y);
end;
Эту процедуру можно закинуть в Таймер, тогда ты можешь реально видеть позицию перемещения мыши. Удачи.
Ответ отправил: xXx (статус: 2-ой класс)
Отправлен: 06.07.2005, 06:58
Отвечает: Ерёмин Андрей
Здравствуйте, Staskin!
Для этого можно воспользоваться глобальным объектом Mouse и его свойством CursorPos. Например, можно поместить данный код в таймер. Удачи!
Приложение:
--------- Если б не было бы глюка, жизнь была б такая скyка...
Ответ отправил: Ерёмин Андрей (статус: Студент)
Отправлен: 06.07.2005, 07:49 Оценка за ответ: 4
Ответ отправил: Gin (статус: Студент)
Отправлен: 06.07.2005, 09:38
Отвечает: streetcat
Здравствуйте, Staskin!
сделай таймер с интервалом 10;
в обработчике таймера OnTimer поставь:
{================================}
procedure TForm1.Timer1Timer(Sender: TObject);
var
pt: TPoint;
begin
GetCursorPos(pt);
edit1.Text := inttostr(pt.X);
edit2.Text := inttostr(pt.Y);
end;
{================================}
это самый наверное универсальный и простой способ.
Однако уточни вопрос: нужно получить положение мыши в координатах формы (т.е. относительно левого верхнего угла формы) или в координатах экрана (т.е. относительно левого верхнего угла экрана)? Приведенный выше способ соответствует второму случаю.
--------- WinERROR: Keyboard not detected. Press Enter to continue
Ответ отправил: streetcat (статус: 7-ой класс)
Отправлен: 06.07.2005, 13:03 Оценка за ответ: 5
Ответ отправил: Ballon (статус: 3-ий класс)
Отправлен: 06.07.2005, 13:32
Отвечает: Malish
Здравствуйте, Staskin!
Object Inspector ----- Form1--------- Events ----- OnMouseMove (2 click). А в поле редактора в открывшейся процедере:
Ответ отправил: Malish (статус: Студент)
Отправлен: 06.07.2005, 19:00
Вопрос № 23.107
Добрый день.
Подскажите, пожалуйста, как в ячейке TStringGrid (или заголовке TListView) расположить надпись вертикально, т.е. повернутой на 90 градусов.
Спасибо.
Отправлен: 05.07.2005, 23:20
Вопрос задал: Хасанов Ренат (статус: 1-ый класс)
Всего ответов отправлено: 4
Ответ отправил: Werewolf (статус: 1-ый класс)
Отправлен: 05.07.2005, 23:39
Отвечает: Ерёмин Андрей
Здравствуйте, Хасанов Ренат!
В стандартном TStringGrid - никак. Если только перерисовывать ячейки самостоятельно через OwnerDraw. Можно воспользоваться библиотекой AdvGrids, компонентом AdvStringGrid (http://www.tmssoftware.com).
--------- Если б не было бы глюка, жизнь была б такая скyка...
Ответ отправил: Ерёмин Андрей (статус: Студент)
Отправлен: 06.07.2005, 07:49
var
I: Integer;
NewColumn: TListColumn;
ListItem: TListItem;
ListView: TListView;
begin
ListView := TListView.Create(Self);
with ListView do
begin
Parent := Self;
Align := alClient;
ViewStyle := vsReport;
NewColumn := Columns.Add;
NewColumn.Caption := 'Начало';
NewColumn := Columns.Add;
NewColumn.Caption := 'Продолжение';
NewColumn := Columns.Add;
NewColumn.Caption := 'Продолжение 2';
for I := Low(Names) to High(Names) do
begin
ListItem := Items.Add;
ListItem.Caption := Names[I][0];
ListItem.SubItems.Add(Names[I][1]);
ListItem.SubItems.Add(Names[I][2]);
end;
end;
end;
end.
С Уважением, Gin.
Ответ отправил: Gin (статус: Студент)
Отправлен: 06.07.2005, 10:55
Отвечает: Полищук Владислав Игоревич
Здравствуйте, Хасанов Ренат!
Используйте событие Grid'a OnDrawCell,
и выводите текст в графическом режиме, другой возможности, увы, нет.
С уважением, Владислав
--------- Чтобы вчера не случилось, радуйся новому дню