» Вопросы по Delphi (версии 2009, 2010 Weaver, 2011 Fulcrum)
Ludens
Зачем мусорник создавать? Таких фундаментальных вопросов много может насобираться.
А вот тут запросто можно указанное сделать.
Зачем мусорник создавать? Таких фундаментальных вопросов много может насобираться.
А вот тут запросто можно указанное сделать.
Такой вопрос;
Я создаю форму таким образом:
Код:
var pWnd : HWND;
pWnd := CreateWindowEx(WS_EX_APPWINDOW, 'MUT', pChar(Caption),
WS_OVERLAPPED or WS_POPUP, 0,0, Width, Height, 0, 0,Hinstance, nil);
Я создаю форму таким образом:
Код:
var pWnd : HWND;
pWnd := CreateWindowEx(WS_EX_APPWINDOW, 'MUT', pChar(Caption),
WS_OVERLAPPED or WS_POPUP, 0,0, Width, Height, 0, 0,Hinstance, nil);
ZBEP
Какта так:
Код: var
OnMouseMove: procedure(const Window: HWND;
const WParam: WPARAM; LParam: LPARAM) of object = nil;
function WindowProc(Window: HWND; Msg: UINT;
WParam: WPARAM; LParam: LPARAM): LRESULT; stdcall;
begin
case Msg of
WM_MOUSEMOVE:
if Assigned(OnMouseMove) then
OnMouseMove(Window, WParam, LParam);
end;
Result := DefWindowProc(Window, Msg, WParam, LParam);
end;
type
TMouseMonitor = class
private
procedure MouseMove(const Window: HWND;
const WParam: WPARAM; LParam: LPARAM);
public
constructor Create;
end;
constructor TMouseMonitor.Create;
begin
OnMouseMove := MouseMove;
end;
procedure TMouseMonitor.MouseMove(const Window: HWND;
const WParam: WPARAM; LParam: LPARAM);
begin
MessageBeep(0);
end;
Какта так:
Код: var
OnMouseMove: procedure(const Window: HWND;
const WParam: WPARAM; LParam: LPARAM) of object = nil;
function WindowProc(Window: HWND; Msg: UINT;
WParam: WPARAM; LParam: LPARAM): LRESULT; stdcall;
begin
case Msg of
WM_MOUSEMOVE:
if Assigned(OnMouseMove) then
OnMouseMove(Window, WParam, LParam);
end;
Result := DefWindowProc(Window, Msg, WParam, LParam);
end;
type
TMouseMonitor = class
private
procedure MouseMove(const Window: HWND;
const WParam: WPARAM; LParam: LPARAM);
public
constructor Create;
end;
constructor TMouseMonitor.Create;
begin
OnMouseMove := MouseMove;
end;
procedure TMouseMonitor.MouseMove(const Window: HWND;
const WParam: WPARAM; LParam: LPARAM);
begin
MessageBeep(0);
end;
0D0A, спс, не знал этого
подскажите как реализовать поиск в lookupcombox-e по нескольким полям. хочу ввод адреса как в ДубльГис.
neznayka3
Я бы в обработчике OnKeyPress производил поиск и выводил подходящие в выпадающем списке.
Я бы в обработчике OnKeyPress производил поиск и выводил подходящие в выпадающем списке.
neznayka3
Цитата:
подробнее пожалуйста. не ясно что хотите.
Цитата:
подскажите как реализовать поиск в lookupcombox-e по нескольким полям. хочу ввод адреса как в ДубльГис.
подробнее пожалуйста. не ясно что хотите.
YuriyRR
neznayka3
Примерно так:
procedure TfrmNewFund.edCompanyKeyPress(Sender: TObject; var Key: Char);
var
i: Integer;
begin
//заполняем выпадающий список (из базы загружаем только записи,
//начинающиеся с первой введённой буквы)
if (edCompany.Text = '') and (ord(Key) > 32) then
begin
Screen.Cursor := crHourGlass;
edCompany.Items.Clear;
with dsCompanys do
begin
if Active then
Close;
SelectSQL.Clear;
SelectSQL.Add('select company_name from companys where UPPER(company_name) ' +
'LIKE UPPER(''' + Key + '%'') ORDER by company_name');
Open;
FetchAll;
edCompany.Items.BeginUpdate;
for i := 1 to RecordCount do
begin
edCompany.Items.Add(VarToStr(dsCompanys['COMPANY_NAME']));
Next;
end;
edCompany.Items.EndUpdate;
Close;
edCompany.DroppedDown := True;
Screen.Cursor := crDefault;
end;
end;
end;
Если нужно, чтобы список ещё и автоматически открывался, как на скриншоте, то добавить ещё:
procedure TfrmNewFund.edCompanyChange(Sender: TObject);
begin
if edCompany.Text = '' then
begin
edCompany.DroppedDown := False;
edCompany.Clear;
end;
end;
Примерно так:
procedure TfrmNewFund.edCompanyKeyPress(Sender: TObject; var Key: Char);
var
i: Integer;
begin
//заполняем выпадающий список (из базы загружаем только записи,
//начинающиеся с первой введённой буквы)
if (edCompany.Text = '') and (ord(Key) > 32) then
begin
Screen.Cursor := crHourGlass;
edCompany.Items.Clear;
with dsCompanys do
begin
if Active then
Close;
SelectSQL.Clear;
SelectSQL.Add('select company_name from companys where UPPER(company_name) ' +
'LIKE UPPER(''' + Key + '%'') ORDER by company_name');
Open;
FetchAll;
edCompany.Items.BeginUpdate;
for i := 1 to RecordCount do
begin
edCompany.Items.Add(VarToStr(dsCompanys['COMPANY_NAME']));
Next;
end;
edCompany.Items.EndUpdate;
Close;
edCompany.DroppedDown := True;
Screen.Cursor := crDefault;
end;
end;
end;
Если нужно, чтобы список ещё и автоматически открывался, как на скриншоте, то добавить ещё:
procedure TfrmNewFund.edCompanyChange(Sender: TObject);
begin
if edCompany.Text = '' then
begin
edCompany.DroppedDown := False;
edCompany.Clear;
end;
end;
Как запустить приложение из Delphi под другим пользователем в AD. Соответственно указав имя и пароль нужного пользователя.
zeugene
не то. по 1 полю у меня сейчас примерно так и работает, только с cxLookupComboBox. фишка у дубльгис в том что поиск идет по нескольким полям, и их порядок значения не имеют. можно начать набирать сначала номер дома, потом улицу и тд.
например в таблице поля "ФИО", "ИНН", "что то еще". надо, чтобы пользователь мог начать поиск с любого из перечисленных полей.
не то. по 1 полю у меня сейчас примерно так и работает, только с cxLookupComboBox. фишка у дубльгис в том что поиск идет по нескольким полям, и их порядок значения не имеют. можно начать набирать сначала номер дома, потом улицу и тд.
например в таблице поля "ФИО", "ИНН", "что то еще". надо, чтобы пользователь мог начать поиск с любого из перечисленных полей.
neznayka3
А если сделать представление (VIEW), с полем, куда будет входить содержимое всех нужных полей и искать уже по нему?
Добавлено:
tanaseduard
RUNAS
Можно набрать в консоли Windows RUNAS /? чтобы узнать дополнительные параметры.
А если сделать представление (VIEW), с полем, куда будет входить содержимое всех нужных полей и искать уже по нему?
Добавлено:
tanaseduard
RUNAS
Можно набрать в консоли Windows RUNAS /? чтобы узнать дополнительные параметры.
zeugene
Почти то что надо, но нельзя вводить пароль.
А хотелось бы автоматом.
Почти то что надо, но нельзя вводить пароль.
А хотелось бы автоматом.
Цитата:
Как запустить приложение из Delphi под другим пользователем в AD. Соответственно указав имя и пароль нужного пользователя.
tanaseduard
в общих чертах нужно сделать следующее:
1. получить Token пользователя с помощью LogonUser
2. передать полученный Token в функцию CreateProcessAsUser
tanaseduard
Решение здесь: http://forum.codenet.ru/showthread.php?t=20138
Решение здесь: http://forum.codenet.ru/showthread.php?t=20138
Ktf
zeugene
Спасибо. Вроде оно.
Добавлено:
Как из DataSet'а получить рисунок по его коду, который в Blob храниться, и загрузить его в Image?
Храниться в формате BMP.
zeugene
Спасибо. Вроде оно.
Добавлено:
Как из DataSet'а получить рисунок по его коду, который в Blob храниться, и загрузить его в Image?
Храниться в формате BMP.
tanaseduard
Цитата:
В omnithreadlibrary в файле DSiWin32.pas есть функция
function DSiExecuteAsUser(const commandLine, username, password: string;
const domain: string = '.'; visibility: integer = SW_SHOWDEFAULT;
workDir: string = ''; wait: boolean = false): cardinal;
Добавлено:
tanaseduard
Цитата:
1.В датасете делаешь Lookup по полю кода рисунка
2.Сохраняешь его в memorystream
3.Загружаешь из этого потока в Image
Цитата:
Как запустить приложение из Delphi под другим пользователем
В omnithreadlibrary в файле DSiWin32.pas есть функция
function DSiExecuteAsUser(const commandLine, username, password: string;
const domain: string = '.'; visibility: integer = SW_SHOWDEFAULT;
workDir: string = ''; wait: boolean = false): cardinal;
Добавлено:
tanaseduard
Цитата:
Как из DataSet'а получить рисунок по его коду, который в Blob храниться, и загрузить его в Image?
1.В датасете делаешь Lookup по полю кода рисунка
2.Сохраняешь его в memorystream
3.Загружаешь из этого потока в Image
YuriyRR
Спасибо попробую оба варианта.
Спасибо попробую оба варианта.
Как можно удалить созданый мной(не нужный) рабочий стол в делфи , на панельки "Desktop" или View"/"Desktops"/
KSJJFS
Удалить соответствующий dst-файл в User\AppData\Embarcadero\BDS\8.0
Удалить соответствующий dst-файл в User\AppData\Embarcadero\BDS\8.0
Кто-нибудбь может разъяснить, как в XE с помощью INDY 10, используя idIRCserver создать IRC сервер, к которому можно было бы приконнектится не по локалке, а через интернет.
Знаю, как сделать локальный чат с помощью IdIRCServer и IdIRC, знаю как реализовать связь через инет с чужим IRC сервером с помощью IdIRC, но не знаю, что надо сделать с IdIRCServer, что бы к нему можно было подключаться через инет.
В демках инди все либо для локали, либо не для IRC.
Пытался и через TCP все реализовать, но тоже не получилось реализовать подключение к внешнему IP, к локальному все без проблем.
Знаю, как сделать локальный чат с помощью IdIRCServer и IdIRC, знаю как реализовать связь через инет с чужим IRC сервером с помощью IdIRC, но не знаю, что надо сделать с IdIRCServer, что бы к нему можно было подключаться через инет.
В демках инди все либо для локали, либо не для IRC.
Пытался и через TCP все реализовать, но тоже не получилось реализовать подключение к внешнему IP, к локальному все без проблем.
ZBEP
Я бы в первую очередь в сторону настроек брандмауэра смотрел, и способа подключения к инету.
Я бы в первую очередь в сторону настроек брандмауэра смотрел, и способа подключения к инету.
Frodo_Torbins, брандмауэр отключал и на всяк случай разрешал, ноль реакции, по сети норм все, по инету никак.
Инет через ADSL, скорее всего в этом и косяк, но как то же и с ADSL реализовать все это можно.
В сети 8 человек, модем раздает каждому внутренний ип, вписывая его, локальные сообщения удачно передаются/принимаются.
Модему выдаётся внешний ип провайдером, приконнектиться к нему не получается
Инет через ADSL, скорее всего в этом и косяк, но как то же и с ADSL реализовать все это можно.
В сети 8 человек, модем раздает каждому внутренний ип, вписывая его, локальные сообщения удачно передаются/принимаются.
Модему выдаётся внешний ип провайдером, приконнектиться к нему не получается
ZBEP
Вот-вот провайдер мог вас подключить через прокси или еще как, а вы теперь мучаетесь.
Вот-вот провайдер мог вас подключить через прокси или еще как, а вы теперь мучаетесь.
Frodo_Torbins, вот я и мучаюсь
Есть идеи как решить эту проблему?
Гуугл мучаю мучаю, но все не то..
Есть идеи как решить эту проблему?
Гуугл мучаю мучаю, но все не то..
ZBEP
Если это нужно только для экспериментов, то можно все делать и в локальной сети. Если вы хотите запустить сервер на постоянной основе, то нужно договариваться с провайдером, или вообще его сменить.
Если это нужно только для экспериментов, то можно все делать и в локальной сети. Если вы хотите запустить сервер на постоянной основе, то нужно договариваться с провайдером, или вообще его сменить.
Frodo_Torbins, ну я опять загорелся игрушку сделать, она будет частично работать через инет, думал сделать все через IRC, т.к. имел дело уже с клиентской частью, сейчас больше склоняюсь к TCP, но ни то ни то не выходит.
Ниже исходники простейшего Клиента и Сервера отдельно.
В клиенте так же есть серверная часть но я ее отключил, пока не разберусь с подключением через инет.
http://zalil.ru/30074680
П.с.
Инет: ADSL (Провайдер ЮТК).
Delphi: XE
ОС: Winwows 7 x64
Ниже исходники простейшего Клиента и Сервера отдельно.
В клиенте так же есть серверная часть но я ее отключил, пока не разберусь с подключением через инет.
http://zalil.ru/30074680
П.с.
Инет: ADSL (Провайдер ЮТК).
Delphi: XE
ОС: Winwows 7 x64
ZBEP
провайдер может предоставить статический IP? если да, то можно организовать сервер самому.
провайдер может предоставить статический IP? если да, то можно организовать сервер самому.
spasius, неа, мой провайдер может предоставить только высокий пинг, низкую скорость с периодическими попаданиями интернета за высокую цену.
П.с.
IP меняется после перезагрузки модема.
П.с.
IP меняется после перезагрузки модема.
Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
Предыдущая тема: Установка копоненты ZipTV
Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.