Текущий архив: 2003.07.21;
Скачать: CL | DM;
Вниз
---|Ветка была без названия|--- Найти похожие ветки
← →
Юрий Зотов © (2003-03-13 18:39) [40]Почему пропадают? Вот, спасибо Malder"у:
http://www.baseprogram.narod.ru
И потом, я надеюсь, что главный архив остается все же в головах. А там ничего не пропадает.
← →
Anatoly Podgoretsky © (2003-03-13 18:45) [41]Satirus (13.03.03 18:28)
Смысл моей реплики касался (c) и Юрий сразу понял о последствиях данного шага. Другое дело если бы кто то другой сделал, разместил в Интернете, тогда последствия падали бы на него.
А книга конечно ценная, даже не понятно почему не переиздают, наверно автор против.
← →
Satirus (2003-03-13 18:50) [42]2Anatoly Podgoretsky © (13.03.03 18:45)
>даже не понятно почему не переиздают, наверно автор против.
когда на раскладке спросил, сказали, что есть уже новая версия, которая написана почти также как и у Конопки, но автор другой. И даже попытались мне её всучить. Но хотелось бы всё таки ознакомиться с оригиналом, чтобы созреть для покупки...
← →
vuk © (2003-03-13 18:50) [43]to Anatoly Podgoretsky:
>А книга конечно ценная
У нее, вроде как, вторая редакция была на английском языке, под более свежую на тот момент версию Delphi. Но у нас книга не переиздавалась.
← →
Anatoly Podgoretsky © (2003-03-13 18:56) [44]Satirus (13.03.03 18:50)
Насчет другого автора ничего сказать не могу, а оригинал считается классикой.
← →
vuk © (2003-03-13 19:05) [45]В подтверждение слов про второе издание:
http://www.raize.com/DevTools/DCDC/Default.htm
← →
MBo © (2003-03-13 22:04) [46]Тираж у Конопки всего 2000.
Вторая английская редакция была по Дельфи 3, т.е. в районе 97 года. Есть еще (только на английском) книга Дэнни Торпа (тоже 96-97 года). С тех пор никто ничего не писал, на конференциях Борланд это постоянно обсуждают.
← →
vuk © (2003-03-13 22:09) [47]to MBo:
>Тираж у Конопки всего 2000.
Странно, что при этом в Москве она продавалась много где. Я, помнится, свой экземпляр аж на радиорынке покупал. :o)
← →
Mihey (2003-03-13 23:06) [48]Ну вот, хвала демонам.
← →
Malder © (2003-03-14 19:14) [49]Если уж пошел такой флуд:
MBo, что означает "С тех пор никто ничего не писал, на конференциях Борланд это постоянно обсуждают." ? Чтр больше не пишутся книги по Дельфе ? Ну я не согласен категорически. Самый яркий пример, наверное, Тэйксер и Пачеко
← →
vuk © (2003-03-14 19:38) [50]>Чтр больше не пишутся книги по Дельфе ?
Книг по разработке компонентов нет нифига. Это немного другого уровня и назначения литература.
← →
Victor aka Slider (2003-03-17 20:51) [51]Я не так давно присоединился к обучению, но уже вроде как все изучил. Правда есть один вопрос с первого этапа:
Контрольный вопрос на эту тему - разложить параметр LParam сообщения WM_KEYDOWN на отдельные составляющие:
type
TKeyState = (ksPressed, ksReleased);
var
RepeatCount: word;
ScanCode: byte;
ExtendedKey: boolean;
PreviousKeyState: TKeyState;
объясните пожалуйста что здесь нужно сделать?
P.S.Когда будет выложен следующий этап?
← →
Юрий Зотов © (2003-03-17 22:28) [52]> что здесь нужно сделать
Посмотреть в справке API описание сообщения WM_KEYDOWN, и, считая LParam заданным, проинициализировать в соответствии с ним переменные RepeatCount, ScanCode, ExtendedKey и PreviousKeyState.
> Когда будет выложен следующий этап?
Планирую сделать в выходные. Надеюсь, ничто не помешает.
← →
Malder © (2003-03-17 23:53) [53]А говорил я Юрию, что данное задание для новичков окажется немного сложным.
Давайте попытаюсь объяснить.
Victor aka Slider, тебе сказали, что нужно разложить wm_keydown.
Отлично, лезем в справку. Файл win32sdk.hlp, если не знаешь (справка по WinApi). Ищешь wm_keydown. Это сообщение windows, от префикса wm - windows message. А точнее wm_keydown - сообщение windows о нажатии кнопки на клавиатуре. Смотрим на описание:
WM_KEYDOWN
nVirtKey = (int) wParam; // virtual-key code
lKeyData = lParam;
У этого сообщения два параметра. nVirtKey и lKeyData.
Они представлены в стандартном для сообщений windows виде: как wParam и как lParam. Каждое - это 32-ух битные целое, причем первый параметр нам рекомендуют расматривать как integer (потому что это число).
То есть, считай, что каждое сообщение windows может нести с собой всего 64 бита дополнительной информации. Некоторые биты могут быть зарезирвированы и не использоваться. wParam и lParam есть в каждом сообщении.
Итак, тебя попросили разбить lParam, то есть, в данном случает, параметр lKeyData. Это не число, не буква. Это набор битов, а как их расматривать нам пишут далее.
Читая по тексту, видим описание lKeyData:
lKeyData
Value of lParam. Specifies the repeat count, scan code, extended-key flag, context code, previous key-state flag, and transition-state flag, as shown in the following table:
Value Description
0-15 Specifies the repeat count. The value is the number of times the keystroke is repeated as a result of the user holding down the key.
16-23 Specifies the scan code. The value depends on the original equipment manufacturer (OEM).
24 Specifies whether the key is an extended key, such as the right-hand ALT and CTRL keys that appear on an enhanced 101- or 102-key keyboard. The value is 1 if it is an extended key; otherwise, it is 0.
25-28 Reserved; do not use.
29 Specifies the context code. The value is always 0 for a WM_KEYDOWN message.
30 Specifies the previous key state. The value is 1 if the key is down before the message is sent, or it is 0 if the key is up.
31 Specifies the transition state. The value is always 0 for a WM_KEYDOWN message.
Все по битам, начиная с нулевого.
При минимальном знании английского понимаем, что разбито на 7 групп битов. Причем, используются первые три групы битов, а также шестая. Остальное или не используется или должно быть равно нулю.
Итак, попытаемся осознать. Каждое сообщения windows имеет два параметра wParam и lParam. Для сообщения wm_keydown второй параметр разделен еще на 7 параметров из которых несут информацию только четыре.
Юрий зотов предложил как раз заполнить четыре переменных:
RepeatCount: word;
ScanCode: byte;
ExtendedKey: boolean;
PreviousKeyState: TKeyState
И пояснил, что TKeyState имеет два состояния: ksPressed или ksReleased.
Ну а далее дело техники. Сравниваем описание lKeyData и эти четыре переменных.
Думаю, далее понятно.
P.S. to Юрий Зотов, если вы считаете, что я не так что-то говорю и что подсказывать не надо - вы скажите. Я не буду. Просто мне кажется задание сложноватое
← →
Malder © (2003-03-18 00:07) [54]Дополнительная информация, если все же непонятно:
Иногда эти два параметра wParam и lParam раскладываются на четыре параметра, то есть два 32-ух битных целых раскладываются на четыре 16-ти битных.
Например, можно посмотреть на сообщение WM_MOUSEWHEEL - первые два параметра - это wParam, который разложен на две части.
Третий и четвертый параметр - это соответственно lParam, который тоже разложен на две части.
Чтобы разложить 32-ух битное на два 16-ти битных используется: функция hiword - возвращает первые 16 бит 32-ух битного целого.
function HiWord(L: DWORD): Word;
begin
Result := L shr 16;
end;
Передается 32-ух битное целое (DWORD):
Например, 100100110101001100101010011001101101
С помошью логического сдвига вправо на 16 бит получается:
00000000000000001001001101010011
Result у нас 16 битное целое, из-за приведения типов получается: 1001001101010011
Вот мы и получили первые 16 бит (WORD)
Другие 16 бит получаются с помощью LoWord. Просто приведение типов, так как LoWord=Word
Собственно говоря, HiWord и LoWord стандарт для разбиения 32-ух бит на два по 16. А Юрий вас просит сделать немного сложнее. Написать функции своего разбиения 32-ух бит на 16,8,1,1 бит (пропуская некоторые).
Вы можете написать что-то типа функций по аналогии с HiWord. Например:
function lKeyDataToScanCode(L: DWORD): byte;
begin
...
end;
и т.д.
← →
Victor aka Slider (2003-03-18 00:39) [55]to Malder: спасибо за такой подробный ответ, теперь все ясно.
будем ждать продолжения...
← →
Victor aka Slider (2003-03-18 00:58) [56]UP.
все ясно относительно того, что требуется сделать и как этого достичь с точки зрения задания первого этапа, но неясно как это сделать в дельфи. Я не работал никогда с WinApi и хотелось бы узнать куда wm_keydown нужно поместить в программе чтобы дальше уже его раскладывать?
← →
Юрий Зотов © (2003-03-18 08:45) [57]> Malder & всем мастерам & не только им.
ТАКИЕ подсказки только приветствуются. И даже ОЧЕНЬ желательны. Как раз то, что нужно - написано четко, ясно, простым и понятным для неискушенных языком. И в то же время не содержат прямого решения задачи. Рассматриваю такие сообщения, как помощь. Спасибо.
Единственное пожелание - на данном этапе не нужно было бы использовать HiWord, LoWord и т.п. Мы изучали биты и побитовые операции, поэтому человек должен научиться делать раскладку "ручками", с помощью элементарных OR, XOR, AND, NOT, SHR и SHL, а не с помощью готовых встроенных функций. Главное ведь не в том чтобы просто сделать что-то, а в том, чтобы ПОНЯТЬ, как это делается - а встроенные функции "прячут" внутреннюю кухню.
> данное задание для новичков окажется немного сложным.
И очень хорошо. Раскрою небольшую хитрость - я постоянно пытаюсь заставить обучаемого думать самостоятельно и как бы немного "вперед". То есть - задача не содержит ничего такого, что он еще не ЗНАЕТ, но содержит то, что он еще не УМЕЕТ. Идеальный вариант - человек сам додумывается до решения, прыгает по комнате с воплем "Вау!!! Я сделал ЭТО!!!" - и он уже НИКОГДА не забудет, как работать с битами. Менее идеальный вариант - он делает это после одной или нескольких подсказок. Тоже хорошо.
> Victor aka Slider (18.03.03 00:58)
> неясно как это сделать в дельфи.
Вот так, как рассказал Malder и как рассматривалось на первом этапе - с помощью побитовых операций. Смысл этого задания в том, чтобы научиться выделять отдельные биты или комбинации бит из заданного набора, представленного в виде целого числа.
> хотелось бы узнать куда wm_keydown нужно поместить в программе
> чтобы дальше уже его раскладывать?
Никуда не надо помещать. Это задание выполняется на бумаге, а не на компьютере. Просто считайте, что у Вас есть переменная с именем LParam, которая уже содержит какое-то целое число (откуда оно взялось - неважно, оно есть - и все). Надо проанализировать это число и по результатам анализа правильно заполнить 4 другие переменные.
← →
Malder © (2003-03-19 21:49) [58]Юрий Зотов, да за что спасибо то. Вам спасибо за нелегкий труд
← →
Top Gun (2003-03-29 21:23) [59]Юрий Зотов ! Как там с продолжением ?
← →
Top Gun (2003-04-03 20:04) [60]все таки хотелось бы узнать
← →
Top Gun (2003-04-07 19:29) [61]ау
← →
lipskiy © (2003-04-07 22:31) [62]Послушай, Малдер, если уж содрал мой дизайн, так хоть содрал бы полностью. Дать тебе все необходимое?
Кстати, если кто готов дооформить последние этапы и оформлять их дальше в стиле http://delphi.adlen.ru/ - милости прошу, все выложу (у самого, сорри, времени нет).
← →
DeMoN-777 © (2003-04-08 01:44) [63]Постоянно слежу за развитием веток и заметил что очень многие из начинающих пропали. Согласен, непростые задания. Но без труда... Юрий огромное Вам спасибо за терпение! Обещать не буду, но если время хоть немного будет постораюсь сделать отдельный сайт с возможностью интерактива.
← →
al_ © (2003-04-08 16:20) [64]Удалено модератором
← →
al_ © (2003-04-08 16:21) [65]Удалено модератором
← →
Pat © (2003-04-08 23:37) [66]Все-таки этот этап был немного проще, чем остальные...думаю, все уже ждут продолжения.
← →
Malder © (2003-04-09 19:50) [67]lipskiy, слушай, чего ты обижаешься? Мне ведь за это денег не платят, я просто для людей сделал. А что я по твоему не так содрал ?
>Дать тебе все необходимое?
Что дать ? Код HTML и так видно :)
← →
al_ © (2003-04-11 13:05) [68]Посмотрите, я вот так решил 3-е задание:
Тип: АХ + В = 0
например берем уравнение 2x + 6 = 0;
00. 6
01. /-/
02. B^
03. 2
04. Проверка на 0
05. Переход на 03 если условие выполнилось (т.е. 0)
06. делим
07. С/П
08. БП {безусловный переход}
09. к 00
Не пинайте ногами если чего, и еще вопрос, как организовать ввод с переменных А и В в ручном режиме? А то в этой программе я их прошил, а хотелось бы чтобы я мог вручную вводить.
Может организовать ввод в регистры, а потом делать ссылки на них?
← →
Pat © (2003-04-11 22:28) [69]>как организовать ввод с переменных А и В в ручном режиме
Останавливай выполнение программы С/П, вводи число и продолжай.
Посмотри, как это в примерах сделано
← →
lipskiy © (2003-04-17 00:11) [70]
> Malder © (09.04.03 19:50)
Да не обижаюсь я. Стили ты не подключил, и фон. Некрасиво. Вот и все.
Кстати, я то перестал поддерживать свою страницу по одной простой прчине - как я ни ждал хотя бы одного ответа от Юрия по поводу чего и как лучше организовать, так и не дождался. Он меня еще в начале отругал за назойливость, так я больше и не пристаю.
А вообще жаль, что все это все равно пропадет со временем, один туда скопировал, другой сюда...
Это все нужно на ЭТОМ сайте выложить, на самом деле.
← →
Anatoly Podgoretsky © (2003-04-18 11:13) [71]lipskiy © (17.04.03 00:11)
Да обижаешься и по делу, надо было спрашивать разрешение и ты точно его дал и полность все необходимое.
← →
malkolinge © (2003-04-18 12:36) [72]Итак первое !
Я фанат МК-61 про него не только газеты писало, но книги :) У меня даже джома он до сих пор сохранился а еще на нем играть можно
2. Сатир 1 Рей Конопка есть на петровке причем его очень много и стоит 3 доллара (Киев) для справки Фаронов стоит около 10 :))))))
3. Кроме этого Рея Конопку в Киеве можно купить
http://shop.bambook.com/ Правда там он будет стоит баксов 20.ъ
← →
DeMoN-777 © (2003-04-18 15:16) [73]>malkolinge © (18.04.03 12:36)
Если что из инфы по МК-61 сохранилось кинь плиз на е-майл, на досуге прочитаю.
← →
Malder © (2003-04-19 03:19) [74]Anatoly Podgoretsky, lipskiy, вы только скажите - сайт будет закрыт
← →
Anatoly Podgoretsky © (2003-04-19 09:48) [75]Malder © (19.04.03 03:19)
Да нет это просто напоиминание, что так не надо делать, могут быть обиды и не этично. Никогда не вредно спросить разрешения у автора, если на сайте не указыны явно правила распространения, очень редки случаии отказаЮ просто иногда надо дважды просить.
← →
lipskiy © (2003-04-19 12:53) [76]
> Malder © (19.04.03 03:19)
Делай наздоровье, я не против, я просто хотел, чтоб было красиво.
Хотя спросить заранее было бы действительно этичнее.
← →
blackman © (2003-04-19 16:33) [77]>Фаронов стоит около 10 :))))))
Он ничего не должен стоить. Читать просто вредно.
← →
Top Gun (2003-04-19 17:29) [78]А вот Юрий Зотов говорил, что Фаронов ему нравится.
P.S. Развожу флейм только чтобы ветка не умерла
← →
blackman © (2003-04-19 17:56) [79]Поддержу падающих!
Лично Фаронов или книга ?
← →
sancho © (2003-04-19 18:00) [80]Фаронов... мне нравиться как он пишет: коротко и ясно.
Страницы: 1 2 3 4 вся ветка
Текущий архив: 2003.07.21;
Скачать: CL | DM;
Память: 0.65 MB
Время: 0.015 c