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

» Вопросы по Delphi (версии 2009, 2010 Weaver, 2011 Fulcrum)

Автор: Ludens
Дата сообщения: 09.03.2011 16:53
marser
спасибо, разобрался.
Еще через Windows.pas оказалось возможно:

Код: SystemParametersInfo(SPI_GETKEYBOARDDELAY, 0, @KeyboardDelay, 0);
SystemParametersInfo(SPI_GETKEYBOARDSPEED, 0, @KeyboardSpeed, 0);
Автор: Ludens
Дата сообщения: 09.03.2011 20:39
Сам себе отвечу.
Значения в миллисекундах можно получить так:

Код: InitialDelay := 250 * (KeyboardDelay + 1);
RepeatDelay := Round(1000 / (2.5 + KeyboardSpeed * (30 - 2.5) / 31));
Автор: Thritt
Дата сообщения: 09.03.2011 21:30
Добрый вечер! возникла странная проблема:

На форме DbGrid, Query, Datasource и button
В таблице три поля: Num, name, value, я хочу при нажатии на кнопку пересчитать первое поле, чтобы числа были по порядку


Код: procedure TForm1.Button1Click(Sender: TObject);
var
k: integer;
begin
query1.First;
for k:=1 to query1.RecordCount do
begin
Query1.SQL.Clear;
Query1.SQL.Add('UPDATE table.db SET num = '+inttostr(k));
Query1.ExecSQL;
query1.Next;
end;

Query1.SQL.Clear;
Query1.SQL.Add('SELECT * FROM table.db');
Query1.open;
end;
Автор: JAPWork
Дата сообщения: 09.03.2011 22:28
Thritt
Так писать нельзя. Вы один Query1 пытаетесь использовать одновременно для двух разных вещей. А именно - двигаетесь по выборке и апдейтите каждую запись.
Кроме того, даже если Вы опишете еще один Query (например - Query2) и обеспечите его правильную привязку к базе данных, то все равно ваш "update" будет апдейтить все записи в таблице "к" раз и закончит присвоением всем записям в таблице значения поля Num равным количеству записей в таблице. Отсутствует уникальный ключ для каждой записи, который должен был бы использоваться в секции WHERE вашего Update.
Да и последовательность открытия запроса по выборке у Вас нарушена. То есть - вначале нужно открыть запрос, а потом делать First.
Автор: Thritt
Дата сообщения: 09.03.2011 22:36
JAPWork
А как бы мне реализовать такую таблицу?

Добавлено:
Может быть вообще есть какое-то другое решение? я создаю таблицу paradox 7. мне просто надо чтобы в поле num были числа по порядку. Если поставить тип этого поля как autoincrement то при удалении какой нибудь записи из середины - пересчета номеров не происходит (((
Автор: JAPWork
Дата сообщения: 10.03.2011 06:30
Thritt
Первое, что приходит в голову - это вообще отказаться от Query. Просто открыть таблицу в режиме Edit, затем последовательно читать ее и обновлять поле Num.
Автор: Ludens
Дата сообщения: 14.03.2011 19:31
Подскажите, пожалуйста, есть ли возможность программно включить/выключить лампочку NumLock, не меняя режим клавиатуры. Ну, в смысле, чтоб лампочка была независима от режима клавиатуры.
Автор: ashqelon
Дата сообщения: 14.03.2011 19:48
Подскажите плс!!!
Странная ситуация, в некоторых проектах Embarcadero RAD Studio XE при компиляции создается папка \Debug\Win32 и Unit1.dcu и там же .exe
если удалить, после компиляции появляется опять.
Где это настраивается?

Автор: Ludens
Дата сообщения: 14.03.2011 19:52
ashqelon
Project/Options/Delphi Compiler,
параметры Output Directory и Unit Output Directory
Автор: ashqelon
Дата сообщения: 14.03.2011 20:06
Ludens
стояло .\$(Config)\$(Platform)
что должно быть?
Почему-то только с некоторыми проектами такая беда, а строчку .\$(Config)\$(Platform) я не менял после установки
Автор: Ludens
Дата сообщения: 14.03.2011 20:19
ashqelon

Цитата:
что должно быть?

просто сделай там пусто. Только сделай это в конфигурации Base, а то оно будет появляться опять.
Автор: ashqelon
Дата сообщения: 14.03.2011 20:23
Ludens все получилось!! сенкс!!
Автор: Frodo_Torbins
Дата сообщения: 14.03.2011 20:44
Ludens
Цитата:
Подскажите, пожалуйста, есть ли возможность программно включить/выключить лампочку NumLock, не меняя режим клавиатуры. Ну, в смысле, чтоб лампочка была независима от режима клавиатуры.

Скорее всего нельзя.

add: V1s1ter
В отдельных случаях может и можно, но я сильно сомневаюсь, что это применимо к современным радио-клавам.
Автор: V1s1ter
Дата сообщения: 14.03.2011 21:37
Frodo_Torbins
Скорее всего можно.

Ludens

Цитата:
Подскажите, пожалуйста, есть ли возможность программно включить/выключить лампочку NumLock, не меняя режим клавиатуры. Ну, в смысле, чтоб лампочка была независима от режима клавиатуры.

Для некоторых клавиатур это стандартная функция тиа сбережения заряда батарей - бред но где-то видел. Горение или не горение индикатора определяется значением в порте (номер не помню), так же если не ошибаюсь тот же порт отвечает за Caps и ScrolLock. Но могу ошибатся давно пользовал в далеком 1991. В http://www.whitetown.com/ru/misc/ng/techhelp/ есть Tech Help 6.0 - это справожник по программированию железа, запускать из под MS DOS. Если ошибся извини, как писал давно дело было.
Автор: Ludens
Дата сообщения: 14.03.2011 21:57
V1s1ter
Вот и мне кажется, что как-то можно. По крайней мере, с лампочкой CapsLock можно точно. Например, программа Puto Switcher при некоторых настройках делает это самопроизвольно: лампочка не горит, а клавиатура печатает капслоком и наоборот.
Но разбираться в портах как-то не хочется, а хочется на халяву найти пару строчек готового решения.

Добавлено:
Вот еще одно подтверждение нашел. Симпатичная программулька HddLed Indicator умеет управлять свечением лампочки ScrollLock, не переключая режима клавиатуры:
14.03.png
Автор: mcka
Дата сообщения: 15.03.2011 12:07
Всем привет.
Может кто знает когда планируется новые updates для XE?
Автор: snike555
Дата сообщения: 15.03.2011 14:53
1) Как программно узнать версию установленного клиента OpenVPN? или выдать что клиент не установлен.
2) Можно ли программно узнать подключен ли OpenVPN клиент к серверу?
Автор: vez
Дата сообщения: 15.03.2011 15:39
Было сообщение об апдейте 2 для хелпа, но я его там не нашёл.
http://blogs.embarcadero.com/deeelling/2011/03/09/38325
Автор: mcka
Дата сообщения: 15.03.2011 16:46
vez, спасибо, но для меня хелп менее всего волнует.
Автор: Ludens
Дата сообщения: 15.03.2011 20:21
Можно ли сделать так, чтобы заголовок окна неактивной формы выглядел бы точно так же (по цвету и стилю), как и заголовок активной формы?
Я понимаю, что можно вообще убрать у формы Title Bar и сделать графическую имитацию активного заголовка. Но вот чтоб без этого, чтоб обойтись только штатными средствами Windows?
Форма при этом должна быть обычная, НЕ дочерняя MDI.
Цель - сделать "плавающую" панель инструментов, которая может находиться в любом месте экрана (не только в клиентской области основного окна), постоянно выглядит как активное окно, но никогда не отбирает фокус у главного окна программы. Ну, типа как панели инструментов в Фотошопе. Или как вынутые из основного окна панельки в Toolbar2000, только без докинга.
Автор: V1s1ter
Дата сообщения: 15.03.2011 21:28
Ludens
"Мюсье знает толк в извращениях!"
Я тоже когдато в ... делал подобную фигню, но аппетит пришол в время еды и бросил я это и перешел на DevExpress. Посмотри их Toolbar, Menu, Docking Library
Вопервых экономишь время, во вторых получишь простор для наращивания функций.
Прости, что не ответит непосредственно на вопрос, просто если я правильно понял то что хочешь сделать - трата времени и сил.
Автор: spasius
Дата сообщения: 15.03.2011 21:37
Ludens
Делал подобную "фишку" и даже находится в эксплуатации. Ушло больше времени чем ожидалось. Не советую. Проще взять предложенные V1s1ter компоненты.
Автор: Ludens
Дата сообщения: 15.03.2011 22:50
V1s1ter,
spasius,
понял вас. Действительно, задача оказалась не совсем тривиальной. А я-то, наивный, надеялся, что достаточно будет отыскать один заветный WS_XXX...
В принципе, с точки зрения функционала (но не визуала) я описанную задачу полностью решил при помощи камлания с OnDeactivate, OnClick, OnMouseDown и OnMouseUp. Однако, как махровый перфекционист, не могу смириться с тем, что заголовок окна у активной формы выглядит как неактивный и, вдобавок, немного фликерит при некоторых действиях.
Поэтому и обращаюсь к вам, уважаемые пассажиры.
К сожалению, DevExpress - слишком тяжелый для меня инструмент. Я предпочитаю Raize Components и не хочу их смешивать с Девами ради этой одной, хотя и достойной задачи. Наверное, придется пойти путем Спасиуса, которого покорнейше прошу порыться в его старых исходниках.
Автор: Frodo_Torbins
Дата сообщения: 16.03.2011 00:03
snike555
1) Можно искать в реестре путь к его папке, а потом запускать с ключом "--version".
2) С состоянием уже сложнее. В принципе OpenVPN должен вести лог, который можно анализировать.
А можно пойти более сложным путем - перебирать сетевые адаптеры, смотреть их тип и состояние.
Автор: V1s1ter
Дата сообщения: 16.03.2011 02:27
Ludens

Цитата:
надеялся, что достаточно будет отыскать один заветный WS_XXX...

C тебя бутылка (виртуальная) вот типа получилось:

Код:
procedure TForm11.FormActivate(Sender: TObject);
var
fl: FLASHWINFO;
begin
fl.cbSize:= SizeOf(fl);
fl.hwnd:= Handle;
fl.dwTimeout:= MAXDWORD;
fl.dwFlags:= FLASHW_STOP;
fl.uCount:= 1;
FlashWindowEx(fl);
end;

procedure TForm11.FormDeactivate(Sender: TObject);
var
fl: FLASHWINFO;
begin
fl.cbSize:= SizeOf(fl);
fl.hwnd:= Handle;
fl.dwTimeout:= MAXDWORD;
fl.dwFlags:= FLASHW_CAPTION or FLASHW_TIMER;
fl.uCount:= 2;
FlashWindowEx(fl);
end;
Автор: Ludens
Дата сообщения: 16.03.2011 03:43
V1s1ter
ты че сделал-то? (с)
ХЗ как, но это работает! Смутно подозреваю, что сильно через ж., но ведь работает, сцуко! Типа, заголовок неактивного окноа так часто мигает, что окно выглядит активным? :)
Снимаю шляпу. Честно говоря, сам никогда бы до такого не додумался. Я склонялся к тому, что единственное решение тут - взять в родители неоконный контрол (TGraphicControl вместо TWinControl). Но ты здорово расширил границы моего восприятия!
Теперь даже не знаю, что делать. Неужели можно включить подобный код в реальную программу?
Автор: regkz
Дата сообщения: 16.03.2011 06:33
V1s1ter

Цитата:
вот типа получилось:

а вот на 7 что-то как-то не очень работает
Автор: Ludens
Дата сообщения: 16.03.2011 13:33
regkz

Цитата:
а вот на 7 что-то как-то не очень работает

Может быть, дело не в 7, а в том, что у тебя в системе вообще отключено «мигание окна для привлечения внимания к приложению».
Автор: regkz
Дата сообщения: 16.03.2011 14:17

Цитата:
Может быть, дело не в 7, а в том, что у тебя в системе вообще отключено «мигание окна для привлечения внимания к приложению».

да нет, всё мигает, а вот окно активное и неактивное выглядят как обычно, но мне, в принципе, это не нужно, просто пощупать хотел что это такое
Автор: snike555
Дата сообщения: 16.03.2011 15:42
Frodo_Torbins

Цитата:
1) Можно искать в реестре путь к его папке, а потом запускать с ключом "--version".
2) С состоянием уже сложнее. В принципе OpenVPN должен вести лог, который можно анализировать.
А можно пойти более сложным путем - перебирать сетевые адаптеры, смотреть их тип и состояние.


Действительно вроде интересные идеи. А как с хотя бы набросками реализации?

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172

Предыдущая тема: Установка копоненты ZipTV


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