Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Delphi 2

Модерирует : ShIvADeSt

ShIvADeSt (22-03-2007 02:18): http://forum.ru-board.com/topic.cgi?forum=33&topic=8142  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100

   

ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Продолжение темы http://forum.ru-board.com/topic.cgi?forum=33&topic=3647&start=2020#lt
Внимание, все большие куски кода (более 5 строк) оформляем в тег [more] дабы уменьшить размер поста.

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 01:52 20-04-2006 | Исправлено: ShIvADeSt, 02:02 30-06-2006
Jokerjar



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ShadowMen, для динамического массива используй high
 
 
Добавлено:
Кто-нибудь писал глобальную клавиатурную ловушку (wh_keyboard)? Столкнулся с такой проблемой - в некоторых приложениях (например, Word) при нажатии на одну клавишу (отлавливаю только keydown, keyup отсеиваю) регистрируется несколько сообзщений (обычно - 6). В итоге программа-кеулоггер выдает примерно такое: "ппппппррррррииииииввввввеееееттттт". Кто сталкивался с такой проблемой и как ее решить, отсеять ненужные сообщения (и определить, что они ненужные). Исходник простого кейлоггера на Delphi.

Всего записей: 591 | Зарегистр. 22-03-2006 | Отправлено: 08:59 19-07-2006
RomanTim

Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
ShadowMen
Jokerjar
High наверное тоже можно, но вообще то для динамических массивов и строк существует функция Length(). High возвращает номер последнего элемента, а для динамического массива это число элементов -1

Всего записей: 375 | Зарегистр. 11-09-2003 | Отправлено: 09:17 19-07-2006 | Исправлено: RomanTim, 13:54 19-07-2006
Kaylang



Вредный и упрямый
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрый день!
Кто-нибудь пытался подружить Дельфи с DB2 на AS/400?
 
Соединяюсь по ADO, в момент обращения к таблице получаю ошибку: SQL0254: имя_таблицы тип *FILE не найден.
Ошибку также получаю, когда в ADOTable после выбора файла в поле TableName пытаюсь в свойстве Active установить значение true.

Всего записей: 38546 | Зарегистр. 29-08-2002 | Отправлено: 11:40 19-07-2006 | Исправлено: Kaylang, 11:43 19-07-2006
ShadowMen

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
RomanTim
Кол-во записей можно узнать через Length, а мне нужно узнать сколько массив занимает в памяти.

Всего записей: 263 | Зарегистр. 18-02-2002 | Отправлено: 12:11 19-07-2006
RomanTim

Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
ShadowMen
Умножь количество элементов массива на размер элемента - получишь размер данных

Код:
arr: array of MyDataType;
size := Length(arr) * SizeOf(MyDataType);

Всего записей: 375 | Зарегистр. 11-09-2003 | Отправлено: 13:52 19-07-2006
ShadowMen

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
RomanTim
Спасибо, помогло. Теперь все работает..

Всего записей: 263 | Зарегистр. 18-02-2002 | Отправлено: 14:33 19-07-2006
Jokerjar



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Может все-таки кто-то подскажет, из-за чего в программах из Microsoft Office происходит дублирование клавиш у кейлоггеров, написанных на Delphi? Исходник кейлоггера можете найти выше
 
Добавлено:
С этим вопросом уже сам разобрался.
 
Но теперь появился еще один: как можно отключить стандартный popup у едита (там где копировать, вставить и т.д.)

Всего записей: 591 | Зарегистр. 22-03-2006 | Отправлено: 16:20 20-07-2006
RomanTim

Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Jokerjar

Цитата:
как можно отключить стандартный popup у едита (там где копировать, вставить и т.д.)

Довольно корявенько - возможно есть более симпатичные варианты, но работает: кинь на форму попап-менюшку, назначь ее твоему едиту, а в обработчике события OnPopup поставь Abort

Всего записей: 375 | Зарегистр. 11-09-2003 | Отправлено: 22:18 20-07-2006
Jokerjar



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
RomanTim, спасибо. Решил почти как ты подсказал:

Код:
var
PsevdoPopup: TPopupMenu;
.....................................
PsevdoPopup := TPopupMenu.Create(nil);
Edit1.PopupMenu := PsevdoPopup;

 
Не могу разобраться с одной вещью: у меня программа со значком в трее. При клике на нем, главное окно активируется. Но если во время клика у формы открыто модальное окно, то все-равно активируется главное окно, которое перекрывает модальное.
Никакие контролы на главном окне на клики не реагируют. Помогите сделать так, чтобы:
а) Перед активацией главного окна программа проверяла, открыто ли у нее какое-то модальное окно
б) Если открыто, то активировала не главное, а модальное окно

Всего записей: 591 | Зарегистр. 22-03-2006 | Отправлено: 06:45 21-07-2006
Dennica



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
В D2006 у меня слетел весь хэлп. Открываеш его а там в Contents просто пустота. Блин, незнаю как его чинить, в хэлпах всегда у меня был пробел =\ Переустановка bds repair не помогла. Если кто-нибудь знает что нужно подкрутить подскажите.
p.s. Я так думаю слетел он из-за установки vs2005, а может и нет =\.

Всего записей: 235 | Зарегистр. 19-12-2005 | Отправлено: 07:18 21-07-2006
ArtemiyUO

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Поищи на форумах эта тема часто поднимается.
Тут глянь
http://sql.ru/forum/actualthread.aspx?tid=256918
Так же гуглом, на сайте борланда вроде есть рецепт.

Всего записей: 539 | Зарегистр. 12-12-2005 | Отправлено: 15:00 21-07-2006
xitsmex



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуй, ALL!
 
Имеется следующая проблема: кладем на форму Edit, задаем FONT -> CHARSET -> GREEK_CHARSET. Теперь мы не можем ввести ничего кроме как на греческом чарсете, нажимание клавиатуры в русской раскладке так же вводит греческие буквы, согласен, мы же не в UNICODE, именно это поведение мне и нужно. Теперь кладем на форум милый компонент XPManifest, заменив тем самым библиотеку работы с компонентам и обнаруживаем, что текст можно вводить в Edit на РАЗНЫХ языках и в РАЗНЫХ чарсетах, но вот при преобразовании его в Tedit.text, имеющий тип string из типа WideString внутри windows используется кодовая страница языка, выбранного в региональных настройках как язык для non-unicode программ, соответственно, вместо греческого получаем ??. (Например, присваивая label1.caption := Edit1.text.) Ситуация усложняется тем, что это не обычный Edit, а cxInnerTextEdit от DevExpress, находящийся внутри cxTextEdit и VeticalGrid. Данную проблему (с вводом греческого языка, да, кстати, проблема состоит в том, чтобы ракзрешить пользователю набирать только на одном языке, а потом получить этот текст не ввиде вопросов, можно в ввиде UNICODE) я решил, унаследовав cxInnerTextEdit от TnTCustomEdit (TnTWare Delphi UNICODE Controls), а точнее - от его производного класса, который теперь служит преобразователем задание текста в ANSI -> конвертация в UNICODE -> ввод текста в UNICODE -> конвертация в ANSI. Но обнаружилось, что так же надо сделать и для Memo с его TMemoString и для некоторых других компонентов. Хотелось бы узнать вот что:
1. Можно ли вытащить UNICODE текст из этого нового Edit? SendMessageW не помогает, длину Result ставит нормальную, а пишет туда бред. Windows, несмотря на явную UNICOD`ность окна, на IsWindowUnicode возвращает false. А то решение с преобразованием вовсе не эстетично.
2. Может, кто-то прикручивал к DevExpress хоть немножео UNICODE?

Всего записей: 58 | Зарегистр. 31-08-2005 | Отправлено: 10:43 22-07-2006
subway1985

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Тут вопрос возник ситуация вообщем такая есть ListBox  
к примеру там есть числа 1,2,3,4,5,1,6,2,7,8,1 и есть обычная кнопка  
как сделать следующее нажав на кнопку убрать повторяющиеся числа  
и получилось бы следующее 1,2,3,4,5,6,7,8.

Всего записей: 6 | Зарегистр. 14-07-2006 | Отправлено: 14:01 22-07-2006
Vetal303



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
subway1985

Код:
var  i,j:Integer;
begin
    for j := 0 to  ComboBox1.Items.Count-1  do
    for  i:= j+1 to ComboBox1.Items.Count-1 do
    if ComboBox1.Items[j]=ComboBox1.Items[i] then ComboBox1.Items.Delete(i);
end;

 
 
Добавлено:
для ListBox идея та же

Всего записей: 498 | Зарегистр. 05-07-2004 | Отправлено: 16:22 22-07-2006
RomanTim

Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
subway1985
Vetal303
С таким алгоритмом будет "List index out of bounds" - граница для for вычисляется только при входе в цикл, и после хотя бы одного Delete ты выйдешь за границы списка.
Лучше делать через while (вместо lst подставишь ListBox.Items): Подробнее...

Всего записей: 375 | Зарегистр. 11-09-2003 | Отправлено: 18:59 22-07-2006
JoniK

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Люди помогите.
1.  
Мне необходимо задать выполнение команды (допустим набраной в поле Edit1) аналогично команде "выполнить" (в менюхе "Пуск")
 
 
БРРРР надеюсь понятно объяснил
 
 
 
2. как назначить горячие клавиши на поля "Edit"

Всего записей: 208 | Зарегистр. 08-01-2004 | Отправлено: 23:54 22-07-2006
RomanTim

Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
JoniK
1. Смотри в сторону ShellExecute
2. Что значит назначить горячие клавиши - чтобы при нажатии фокус уходил на соответствующий едит? Например через OnKeyDown у формы и EditX.SetFocus

Всего записей: 375 | Зарегистр. 11-09-2003 | Отправлено: 11:48 23-07-2006
visp

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
а проше используй модуль
\Program Files\Borland\Delphi7\Demos\Doc\Filmanex\FmxUtils.pas
 
 
там есть ф-ция
function ExecuteFile(FileName, Params, DefaultDir: string;  ShowCmd: Integer)
 
всё просто например
 
ExecuteFile('cmd.exe', '/k dir c:\', '';  1)
 
 
Для горячих клавиш хорошо использовать ActionEditor

Всего записей: 12 | Зарегистр. 23-06-2006 | Отправлено: 13:20 23-07-2006 | Исправлено: visp, 13:22 23-07-2006
Notebook1000

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Хочу написать программу, при открытии которой будет загружать окно с активацией данного софта. Как сделать следующее : если введенный  активационный код верный, то это окно больше появляться не будет
Заранее спасибо

Всего записей: 9 | Зарегистр. 08-12-2005 | Отправлено: 21:18 23-07-2006
Vetal303



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Notebook1000
Можно так: после того как ключ(правильный) был введен, создайте ключ в реестре значение которого будет сгенерено(лучше всего придумайте свой алгоритм но можно и использовать стандартные криптование, что то типа MD5, RC4, RC6 и тому подобные) из активиационного ключа. При запуске программы читайте значеие этого ключа и обрабатывайте его, а по результатам проверки выполняйте нужные действия.  
Вместо реестра можно это писать в файл.  
 
а если устпновить JEDI-VCL то там, вроди, есть компоненты, которые, могли б Вам помочь.

Всего записей: 498 | Зарегистр. 05-07-2004 | Отправлено: 02:14 24-07-2006 | Исправлено: Vetal303, 03:32 24-07-2006
   

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Delphi 2
ShIvADeSt (22-03-2007 02:18): http://forum.ru-board.com/topic.cgi?forum=33&topic=8142


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru