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

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

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

ShIvADeSt (28-06-2009 02:10): Продолжение в http://forum.ru-board.com/topic.cgi?forum=33&topic=10477  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 101

   

Frodo_Torbins

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

Цитата:
А в консольных приложениях?
...
Вышел из положения другим способом: встроил таймер в модуль.

Ну и как, работает? Просто в обычных консольных приложениях нету петли сообщений, поэтому стандартный таймер работать не должен.

Всего записей: 2318 | Зарегистр. 24-05-2007 | Отправлено: 11:12 26-04-2009 | Исправлено: Frodo_Torbins, 11:15 26-04-2009
ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Frodo_Torbins
Судя по всему он путает {APPTYPE CONSOLE} и обычное безоконное приложение. У чисто консольного нет таймера, а у безоконного - можно сделать while GetMessage и в принципе таймер будет работать (у меня работало ).

----------
И создал Бог женщину... Существо получилось злобное, но забавное...

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 14:45 26-04-2009
Frodo_Torbins

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ShIvADeSt
По моему в консольном тоже можно сделать петлю. По крайней мере я видел несколько прог, которые имели консоль, но при этом показывали окошки, когда надо. Вот если под дос приложение, то там понятное дело без окон надо обходится.

Всего записей: 2318 | Зарегистр. 24-05-2007 | Отправлено: 14:48 26-04-2009 | Исправлено: Frodo_Torbins, 14:54 26-04-2009
Aleksandr_N

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Frodo_Torbins
Вообще-то да. Я имел в виду не чистое консольное приложение. А таймер я встроил в модуль, который имеет Control. А уж модуль использовался в DPR файле. Мне просто нужен был принцип.

Всего записей: 1665 | Зарегистр. 25-02-2008 | Отправлено: 15:16 26-04-2009
Kursist



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Aleksandr_N
Заранее извиняюсь за возможную рекламу (Если кто ее таковой сочтет).
Есть книга "Дельфи Советы программистов" 2004 год. Санкт-Петербург. Там на странице 864 есть пример, правда ооочень большой листинг (на 5 страницах). Называется - Индикатор хода выполнения в консольном приложении. Как раз это и есть таймер в консольном приложении. В uses только SysUtils,Windows.  
В кратце там используются команды работы со временем Now, EncodeTime, FormatDateTime...

Всего записей: 137 | Зарегистр. 12-07-2004 | Отправлено: 00:09 28-04-2009 | Исправлено: Kursist, 01:50 28-04-2009
delover

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Извините, я призадумался.

Код:
 
procedure Sleep(milliseconds: Extended);
begin
  SysUtils.Sleep(Round(milliseconds));
end;
 


Всего записей: 1395 | Зарегистр. 25-06-2007 | Отправлено: 10:42 28-04-2009
Aleksandr_N

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
И ещё небольшой вопрос
Как после открытия проводника выделить нужный мне файл?

Всего записей: 1665 | Зарегистр. 25-02-2008 | Отправлено: 12:11 28-04-2009
anfilat

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Aleksandr_N
ShellExecute(hWnd, '', 'explorer', '/select,"' + fn + '"', '', SW_SHOWNORMAL);
fn - полное имя файла

Всего записей: 845 | Зарегистр. 12-08-2005 | Отправлено: 12:59 28-04-2009
Aleksandr_N

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

Цитата:
/select

я совсем забыл.

Всего записей: 1665 | Зарегистр. 25-02-2008 | Отправлено: 13:16 28-04-2009
tatuich



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите решить проблему с Delphi 2009. В ней почему-то отвалился Tab. Перестал работать в SynEdit. Также пробовал в стандартном Memo - тоже не катит. В Delphi 2007 все работало.
 
Сам ловил Tab вручную, но в KeyDown он не ловится, а ловится только в KeyUp. Это не то, что я хотел. При зажатой клавише табуляция не повторяется, а происходит только при отпускании клавиши. Это не совсем то, потому что во первых визуально это выглядит как затормаживание программы, а во вторых хотелось бы так как это было раньше.

Всего записей: 319 | Зарегистр. 20-11-2007 | Отправлено: 17:45 28-04-2009
delover

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Aleksandr_N
В Фаре
F2    Проводник   explorer /e, "!\"\, /select, "!.!"
Это для Висты, в XP помоему без косой.

Всего записей: 1395 | Зарегистр. 25-06-2007 | Отправлено: 21:11 28-04-2009
delover

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
tatuich
А как ты на другие контролы переходишь? У меня уже больше пяти лет Ctrl+Tab для едита, ну и понятно, что это не диалоговая комбинация... А KeyDown самому не трудно ловить. Да и всё же в исходниках...

Всего записей: 1395 | Зарегистр. 25-06-2007 | Отправлено: 23:05 30-04-2009
delover

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
MAD коллекшен попал в трояны, чё-то не так

Всего записей: 1395 | Зарегистр. 25-06-2007 | Отправлено: 14:48 01-05-2009
tatuich



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

Цитата:
tatuich
А как ты на другие контролы переходишь? У меня уже больше пяти лет Ctrl+Tab для едита, ну и понятно, что это не диалоговая комбинация... А KeyDown самому не трудно ловить. Да и всё же в исходниках...

Ну в Delphi 2007 в SynEdit ловилась Tab\Shift+Tab и работала. А в Delphi 2009 почему-то уже нет.
 

Цитата:
А KeyDown самому не трудно ловить.

В KeyUp ставлю код:

Код:
if Key = VK_TAB
    then Showmessage('up');

В KeyDown:

Код:
if Key = VK_TAB
    then Showmessage('down');

Сообщение появляется только в KeyUp. Естественно и другой код помещенный туда не работает.

Всего записей: 319 | Зарегистр. 20-11-2007 | Отправлено: 16:44 01-05-2009
delover

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
tatuich
Забей на систему. Нынче, нужно обеспечить, чтобы юзер контрол добрался до контрол. Есть такая система - MDI. Тут ничего уже не поделать. Нажатия клавишь транслируются в системные команды. Но... Тебе мой снифер дать? Можно хоть пороли скачивать. А как систему призвать к ответу - я не знаю.
 
Добавлено:
tatuich
У меня нет лицензионного 2009 извини...

Всего записей: 1395 | Зарегистр. 25-06-2007 | Отправлено: 09:06 03-05-2009
Maks150988



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Товарищи, такое дело. Имеем шестнадцатеричное значение, ну например $0D. Как его отобразить как строку? Глаза разбегаются от обилия функций, всякие HexTo*, BinTo, а все не то. Я запутался. Какую можете посоветовать или может надо "напильником подработать" стандартную?

Всего записей: 836 | Зарегистр. 23-12-2006 | Отправлено: 21:11 03-05-2009
Frodo_Torbins

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Maks150988
А в каком оно формате? Если integer, то так:

Код:
Memo1.Lines.Add('$'+IntToHex(int, 2));

Всего записей: 2318 | Зарегистр. 24-05-2007 | Отправлено: 21:33 03-05-2009
Maks150988



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

Всего записей: 836 | Зарегистр. 23-12-2006 | Отправлено: 22:33 03-05-2009
boruss

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Привет всем. Такой вопрос. Нужен dblookupcombobox у которого при наведении на любой пункт списка будет высвечиваться многострочная подсказка для сокращения длины объекта.

Всего записей: 100 | Зарегистр. 19-03-2009 | Отправлено: 02:36 04-05-2009
AndreyAgrh



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
with ProductsGridView1.DataController do
 begin
// Добавляю новую запись.
   RecordCount := RecordCount + 1;
   SetValue(RecordCount-1,1,Bcode);
   SetValue(RecordCount-1,2,Desc);
   SetValue(RecordCount-1,3,GridPosition);
   SetValue(RecordCount-1,4,Id);
// Хочу позиционироваться на ней
  FocusedRecordIndex := RecordCount - 1; //  Исходя из девовского хелпа, это должно работать!!!
  //ProductsGridView1.ViewData.Records[RecordCount - 1].Selected := True;
 end;
 
В рез-те кода выделенной становиться не добавленная запись, а предыдущая. На закоментированной строке просто вываливается ошибка (Project Project1.exe raised exception class EListError with message 'List index out of bounds (0)'.).
Подскажите, где я что делаю не так?

Всего записей: 204 | Зарегистр. 30-06-2007 | Отправлено: 08:29 04-05-2009
   

Страницы: 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 101

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Delphi (все версии) - часть 4
ShIvADeSt (28-06-2009 02:10): Продолжение в http://forum.ru-board.com/topic.cgi?forum=33&topic=10477


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru