Страница 1 из 5
Помогите справиться с задачей
Добавлено: 15.02.2011 20:12:51
dangreen
Задача следующая:
Нужно в смоей программе использовать другую
либо запускать другую и скрывать ее окно (как это сделать, а точнее скрывать окно)
либо как вставить в проект лазаруса код на си (в лазаре есть только сипп)
помогите пожалусто

Re: Помогите справиться с задачей
Добавлено: 15.02.2011 21:43:07
daesher
Запускать и скрывать окно - зависит от ОС. Например, в Windows в функции WinExec (пусть она и устарела) есть параметр показа окна. Можно (и нужно) попробовать через кросс-платформенный TProcess.
Re: Помогите справиться с задачей
Добавлено: 15.02.2011 21:51:18
Odyssey
dangreen писал(а):Нужно в смоей программе использовать другую
либо запускать другую и скрывать ее окно (как это сделать, а точнее скрывать окно)
TProcess
http://wiki.lazarus.freepascal.org/Exec ... rograms/ruплюс property ShowWindow: TShowWindowOptions;
http://lazarus-ccr.sourceforge.net/docs ... ocess.htmlhttp://lazarus-ccr.sourceforge.net/docs ... tions.htmldangreen писал(а):либо как вставить в проект лазаруса код на си (в лазаре есть только сипп)
Как обычно, Правка - Вставить. На подсветку синтаксиса не обращайте внимания, от C++ вполне подойдёт. Другое дело, что работать этот код всё равно не будет. Чтобы код на C работал, его нужно пропустить через компилятор C, а Lazarus таковым не является.
Чтобы использовать код на C в программе на Pascal, можно:
1. скомпилировать этот код в отдельную программу и запускать через TProcess, либо
2. скомпилировать его в динамическую библиотеку (dll/so), написать обёртку к ней на Pascal, и использовать библиотеку через обёртку в своей программе.
Re: Помогите справиться с задачей
Добавлено: 16.02.2011 03:49:24
dangreen
Спасибо! щяс все читать буду

Re: Помогите справиться с задачей
Добавлено: 22.02.2011 16:42:09
dangreen
терь задача такая, по нажатию правой кнопки мыши и некоторых условиях симулировать нажатие левой кнопки
как симулировать нажатие левой кнопки?
Re: Помогите справиться с задачей
Добавлено: 22.02.2011 19:30:20
Maxizar
Простое решение: это вызвать метод
Click там где это нужно(при нажатии правой кнопки мыши) и у того кого нужно, скажем у кнопки.
Пример:Форма + кнопка, при нажатии выход из проги. Так же есть событие перехвата нажатия кнопки мыши(правой) при ее нажатии вызываем Метод кнопки
Click (эмулируем нажатие по ней) Хотя нажали правую и на форме:
Код: Выделить всё
procedure TForm1.Button1Click(Sender: TObject);
begin
Close;
end;
procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
If Button=mbRight then
Button1.Click;
end;
Сложный метод: Читаем и разбираемся с системой сообщений (TMessage), там могут быть подводные камни касающиеся кросплатформенности...
Удачи.
Re: Помогите справиться с задачей
Добавлено: 22.02.2011 20:03:48
dangreen
мне не на кнопку нада, а на элементы тривью
чтоб по нажатию правой кнопки и элемент выделялся и попап появлялся
Добавлено спустя 19 минут 31 секунду:
наткнулся на вики на
PostMessage(FTree.Handle,WM_LBUTTONUP, MK_LBUTTON, 0);
и юзесы к нему (наверное) messages, windows, StdCtrls;
в лазаре нет windows и StdCtrls
Re: Помогите справиться с задачей
Добавлено: 22.02.2011 20:11:50
hinst
если вам надо заменять щелчки не только в своей программе, но во всей системе, то это средства операционной системы надо использовать, кроссплатформенного решения не предполагается
в лазаре нет windows и StdCtrls с чего вы взяли?
Re: Помогите справиться с задачей
Добавлено: 22.02.2011 20:29:03
dangreen
нужно чтоб работало только в моей программе
сори StdCtrls есть в лазаре
а windows
http://puu.sh/11z1
Re: Помогите справиться с задачей
Добавлено: 22.02.2011 20:32:30
hinst
модуль Windows есть в лазарусе для Windows

Re: Помогите справиться с задачей
Добавлено: 22.02.2011 20:53:44
dangreen
пофиг
как мне справиться с поставленной задачей? не отходите от темы
Добавлено спустя 1 минуту 13 секунд:на PostMessage(FTree.Handle,WM_LBUTTONUP, MK_LBUTTON, 0); ругается
Re: Помогите справиться с задачей
Добавлено: 22.02.2011 22:27:24
Maxizar
dangreen писал(а):мне не на кнопку нада, а на элементы тривью
чтоб по нажатию правой кнопки и элемент выделялся и попап появлялся
А можно без тривью и попап... (Я хоть Вас и понял), но отпало желание отвечать...
Есть общепринятые сокращения типа IMHO (можно писать ИМХО) Постскриптум
PS, не очень приятно когда пишут ЗЫ. Bug – Жук (жучек) БАГ = Ошибка. И.т.п. А вот
попап не знаю…
Так что привидите код, напишите по русски что нужно. Почему нет Windows - значит либо криво встал Lazarus либо ОС не Windows. Поэтому поставте вопрос правильно, подробно, с кодом, с описанием задачи, ОС, и т.п.
Иначе мой ответ RTFM.Это ведь нужно Вам, мы лишь пытаемся помочь, если есть желание, но когда вопрос ставят в такой манере, отвечать не хочется. Я просто не телепат и ТВ программы аля битва экстрасенцев меня реально …. извините там мат.
Re: Помогите справиться с задачей
Добавлено: 23.02.2011 04:17:49
dangreen
ути какие капризульки нашлись
нафиг от таких помощь не нужна
Re: Помогите справиться с задачей
Добавлено: 23.02.2011 04:24:16
Иван Шихалев
На личности не переходим, да?
Re: Помогите справиться с задачей
Добавлено: 23.02.2011 04:35:40
dangreen
я по-китайски поисал чтобы он просил меня написать вопрос заново?
пишу для особенных(никаких личностей)
при нажатии на элемент TreeView правой кнопкой,нужно чтобы и элемент выделялся и PopUp появлялся
Почему нет Windows
потому что Mac
подробно, с кодом
Код: Выделить всё
procedure TForm1.TreeView1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if Button = mbRight then
begin
????????????????????????????
end;
end;