Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];

Вниз

Изучаем отладчик   Найти похожие ветки 

 
Rouse_ ©   (2012-10-28 14:15) [0]

Пардоньте, ребята спрашивали почему удалил старую ветку об отладчике и не отписался о публикации.
Отвечаю: был в запарке - забыл (устал) слишком много меня ушло на реализацию неправильного кода, на базе которого и писалась статья.
Ч результатом ознакомится можно вот тут: http://alexander-bagel.blogspot.com/2012/10/debugger-1.html.html


 
брат Птибурдукова   (2012-10-28 15:56) [1]

Этот день мы приближали как могли :-)


> 1.html.html
В чужой программе соломинку видим, в своей бревна не замечаем %-)


 
brother ©   (2012-10-28 16:07) [2]

Шикарно! Мнеб такое прочитать в начале изучения!


 
Eraser ©   (2012-10-28 16:33) [3]

кстати, с такими статьями - прямая дорога на хабр. качественный материал там уважают и фидбэк будет хороший.


 
Rouse_ ©   (2012-10-28 16:54) [4]


> > 1.html.html
> В чужой программе соломинку видим, в своей бревна не замечаем
> %-)

Да Дим, я просто не ожидал что блогспот не будет схлопывать расширения при кастомном переименовании страницы и воть такой нюансик вылез :)


> Eraser ©   (28.10.12 16:33) [3]
> кстати, с такими статьями - прямая дорога на хабр. качественный
> материал там уважают и фидбэк будет хороший.

Это не для меня - я не лезу за фидбэками и популярностью, перерос наверное :) Мне важнее давать качественный и полезный материал.


 
DVM ©   (2012-10-28 16:56) [5]


> и фидбэк будет хороший.

первый комментарий там будет "А что разве делфи еще жив?" потом будет небольшой срач, за которым забудут сам материал.


 
DVM ©   (2012-10-28 17:00) [6]


> Rouse_ ©   (28.10.12 16:54) [4]

Материал отличный, продолжай в том же духе. Из недостатков - немного односложный стиль изложения. Но это так придирки.


 
MonoLife ©   (2012-10-28 17:02) [7]

В закладках! Респект и уважуха по полной!


 
Rouse_ ©   (2012-10-28 17:15) [8]


> Из недостатков - немного односложный стиль изложения.

Ну тут как..
Четыре человека вычитывало включая меня, мыж программерыы а не литераторы :)


 
картман ©   (2012-10-28 17:55) [9]

пп. 1.1.

изначальное значение переменной "А" было не верным.
неверным

способов его вызова, он так же вызывается двойным кликом
также

Для изменения обычной переменной он несколько не удобен, и вот почему.
неудобен


 
Rouse_ ©   (2012-10-28 18:20) [10]


> картман ©   (28.10.12 17:55) [9]

похоже надо исправлялку очепяток добавить как на яндексе :)


 
AV ©   (2012-10-28 18:24) [11]

Параметры «Stack Frames» и «Pentiom-safe FDIV»


 
Германн ©   (2012-10-28 18:31) [12]


> Rouse_ ©   (28.10.12 18:20) [10]
>
>
> > картман ©   (28.10.12 17:55) [9]
>
> похоже надо исправлялку очепяток добавить как на яндексе
>

Не поможет. Такие ошибки никакая исправлялка не найдет
(((


 
Rouse_ ©   (2012-10-28 18:35) [13]


> Не поможет.

Текст можно читать по разному, кто-то найдет в нем опечатки, а кто-то знания :)


 
картман ©   (2012-10-28 18:37) [14]

в статье все  "так же" пишутся слитно

А если вы включите (например) параметр «Extended syntax», то данный код у вас вообще не соберется, пожаловавшись на необъявленную переменную Result.

выключите?


 
Sha ©   (2012-10-28 18:37) [15]

> Rouse_

Просто здорово.


 
картман ©   (2012-10-28 18:40) [16]


> кто-то найдет в нем опечатки

вот чтобы находили только знания, опечатки нада убрать


 
Rouse_ ©   (2012-10-28 18:40) [17]


> выключите?

угу


> Sha ©   (28.10.12 18:37) [15]

Спасибо Саш :)


 
Inovet ©   (2012-10-28 19:03) [18]

> [10] Rouse_ ©   (28.10.12 18:20)
> похоже надо исправлялку очепяток добавить как на яндексе :)

Эт да. Я вот тоже хотел ещё раз потом пройтись по тексту, поскольку на первом проходе уже не видишь многого, особенно под конец - надо свежим взглядом смотреть Но ты уже выкладывать собирался на следующий день. Там ещё много чего надо подправить по мелочи.

А статья - гуд!


 
AV ©   (2012-10-28 19:17) [19]


> кто-то найдет в нем опечатки, а кто-то знания

Знания обновлены :)
Надо будет сохранить, мне с группами понравился приём, время может сэкономить. (если вспомнишь про него :))

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


 
Rouse_ ©   (2012-10-28 20:57) [20]


> поскольку на первом проходе уже не видишь многого, особенно
> под конец

Да с очепятками то фиг с ними, потом поправлю, главное что в изложении ошибок нет :) Жаль конечно, что конец немного скомкал, но это восьмая переписка материала, уже упарился выправлять, так что и так пойдет :)


 
Inovet ©   (2012-10-28 21:39) [21]

> [20] Rouse_ ©   (28.10.12 20:57)
> Да с очепятками то фиг с ними, потом поправлю, главное что в изложении ошибок нет

Вот если присутсвующие найдут в тексте места, где остались несогласованные части, недосказанность, неоднозначность, искажающие смысл - будет ценно.


 
Rouse_ ©   (2012-10-28 21:45) [22]


> Inovet ©   (28.10.12 21:39) [21]

Согласен.


 
AV ©   (2012-10-28 22:05) [23]

По-смыслу, технически, по всему, - отличная статья.

ну, я, например, просто боюсь что то править больше одной буквы :)
а так, например, где читаю сейчас, писано
"Неприятность заключается в том, "
Сам так писать стал бы, если платили, как в газете, за объем
"Неприятность в том" - вполне достаточно, она(неприятность) не совершала проступков и "заключать" ее, вроде как, не за что :)
это так, лирика.

Читая технические статьи обращаешь внимание на смысл, про остальное просто забываешь.
А тут (технически) - отличная статья, как говорил уже.
Имхо, ничего не надо, все согласуется/однозначно/досказано.


 
AV ©   (2012-10-28 22:21) [24]

т.е. если с этой т.з. интересует, могу "повычитывать" :)

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


 
Rouse_ ©   (2012-10-28 22:58) [25]


> AV ©   (28.10.12 22:21) [24]

— Легкоступов,… ты знаешь, какая у тебя фамилия? Легкоступов, то есть, лёгкий, можно сказать, воздушный… Ты чё написал?! Тельняшка через букву «и», шинель через букву «е», ботинки вообще!.. Ты чего, Легкоступов?! Ты слушай меня, Легкоступов. В русском языке есть слова, их там много. Когда их составляешь вместе, получается предложение, где есть сказуемое, подлежащее и прочая светотень. И всё это – великий русский язык, Легкоступов. Ты меня понял?!
— Так точно, товарищ командир!
— Так вот, у нас великий русский язык! В нём переставь местоимение, сказуемое и подлежащее, и появится интонация!: «Наша Маша горько плачет. », или «Плачет наша Маша горько». Ты понимаешь?!, это ж поэзия!, это ж былины, мамкина норка!!.. А есть вообще предложения в одно слово: «Моросит», «Вечереет», «Смеркается»… Ты чувствуешь?
— Так точно, товарищ командир!
— Ни хрена ты не чувствуешь! Когда я читаю, что ты написал, я чешусь в самых нескромных местах! Тут же член можно сломать, пока до конца абзаца доберёшься! Кто тебя учил?
— В школе.
— Покажи мне, и я разорву его, как тузик грелку.
— Я же говорю – в школе.
— А я что, за границей, что ли учился, Легкоступов?!
— Если б мне в школе так!.. доходчиво!.. Я б…
— Вольно…


 
Германн ©   (2012-10-29 02:07) [26]


> AV ©   (28.10.12 22:21) [24]
>
> т.е. если с этой т.з. интересует, могу "повычитывать" :)
>
> Неприятность заключается в том, что получить данное значение
> достаточно сложно по причине того, что при каждом запуске
> приложения адрес, по которому расположена переменная, будет
> каждый раз разный.
> vs
> Неприятность в том, что получить данное значение сложно,
>
> потому что при каждом запуске приложения адрес в памяти,
>  по которому размещается локальная переменная, будет разным.
>

Это уже перебор!


 
Германн ©   (2012-10-29 02:28) [27]


> картман ©   (28.10.12 17:55) [9]

2 Rouse
Попробую создать некие мнемонические правила для подобных ошибок.


> изначальное значение переменной "А" было не верным

Использование отдельно отрицания "не" и определения "верный" подразумевает, что далее последует else. Если else не нужен, то отрицание и определение сливаются в одно слово "неверный".


> способов его вызова, он так же вызывается двойным кликом

Раздельное написание "так же" подразумевает, что (в данном контексте) оба способа вызываются "двойным кликом. Слитное написание "также"  подразумевает, что есть и другой способ вызова.


 
Германн ©   (2012-10-29 02:34) [28]

По сути первой трети пока нечего сказать, кроме слов одобрения.
Пожалуй соглашусь с В.Леоновым, что это первая хорошая статья после долгого молчания.


 
AV ©   (2012-10-29 08:44) [29]

Вот это и есть - авторский текст.
Если
"по причине того, что" легкодоступнее :) "потому что"
и
что при каждом запуске приложения
      ... каждый раз разный.
тавтология, по мнению автора, уместна тут и, одновременно, таковой не является
- то ради бога :)


 
Шмульке   (2012-10-29 09:35) [30]


> Вот если присутсвующие найдут в тексте места, где остались
> несогласованные части, недосказанность, неоднозначность,
>  искажающие смысл - будет ценно.


А давайте уж сразу "Илиаду" Гомера рецензировать начнем!

Статья больше претендует на учебник по древнегреческому.
Семерка была выпущена 10 (десять!) лет назад.

Если кто за 10 лет не осилил дебагер сам - то ему, конечно, будет интересно, но... тут уже сами коментарии "мастеров" вызывают сомнения относительно их... кхе... "мастерства".

Ценно будет тогда, когда статья будет написана для новых версий Delphi, с учетом настроек отладки и компиляции, особенностей их отладки, интеграции отладчика в IDE и прочего.


 
AV ©   (2012-10-29 09:57) [31]


> Шмульке   (29.10.12 09:35) [30]

не поверишь, я по delphi 5 двухтомник Ксавье и Пачеко юзаю до сих пор :)
Если кто овладеет этим знанием на 100%% - уже нормальный мастер имхо

Кстати, Вы, случайно, не толстый и зеленый? :)


 
DVM ©   (2012-10-29 10:32) [32]


> Шмульке   (29.10.12 09:35) [30]


> Ценно будет тогда, когда статья будет написана для новых
> версий Delphi

Тебе скриншоты что ли поменять в статье на сделанные в XE3 ?


 
брат Птибурдукова   (2012-10-29 11:12) [33]


> DVM ©   (29.10.12 10:32) [32]
И непrеменно в Windows8!


 
turbouser ©   (2012-10-29 11:42) [34]

«Complete boolen eval»


 
Rouse_ ©   (2012-10-29 12:55) [35]


> Семерка была выпущена 10 (десять!) лет назад.

Ты действительно думаешь что что-то поменялось со времен семерки? :))))


 
Юрий Зотов ©   (2012-10-29 13:50) [36]

> Шмульке   (29.10.12 09:35) [30]
> Семерка была выпущена 10 (десять!) лет назад.

Многие книжки по Delphi написаны по ее старым версиям, но актуальности не потеряли до сих пор. Конечно, Вы их читали - значит, должны быть готовы ответить на любой рассмотренный в них вопрос.

Если да, то скажите - почему событие OnCreate есть не у всех компонентов?

А если нет, то вот Ваши же собственные слова: "Если кто за 10 лет не осилил"...


 
заводчанин   (2012-10-29 13:51) [37]

Удалено модератором


 
Пит   (2012-10-29 14:19) [38]


> почему событие OnCreate есть не у всех компонентов?

потому что не все компоненты по смыслу могут содержать на себе другие компоненты?

Но вообще вопрос странный на мой взгляд... Любой компонент можно переписать так, что он будет содержать событие OnCreate )))


 
Ega23 ©   (2012-10-29 14:30) [39]


> > почему событие OnCreate есть не у всех компонентов?


У всех есть AfterConstruction


 
AV ©   (2012-10-29 14:48) [40]

Удалено модератором


 
Юрий Зотов ©   (2012-10-29 14:51) [41]

> Пит   (29.10.12 14:19) [38]
> Любой компонент можно переписать так, что он будет содержать
> событие OnCreate


Попробуй. Возьми на свой выбор: TEdit, TButton, TLabel, TЧтоУгодно и перепиши так, чтобы у твоего компонента появилось работающее событие OnCreate.

> Ega23 ©   (29.10.12 14:30) [39]
> У всех есть AfterConstruction


Вот именно. Метод - но не событие. И на это есть причина.


 
DVM ©   (2012-10-29 14:54) [42]

Вот тут Jeff Overcash (TeamB) отвечал про OnCreate, но правда на примере фреймов:

http://codenewsfast.com/isapi/isapi.dll/article?id=7AA5D5C3&article=3353772


 
Rouse_ ©   (2012-10-29 14:54) [43]


> Возьми на свой выбор: TEdit, TButton, TLabel

Дык этож не контейнеры...


 
АВ комп переставляет   (2012-10-29 15:44) [44]

Удалено модератором


 
Пит   (2012-10-29 16:24) [45]


> Попробуй. Возьми на свой выбор: TEdit, TButton, TLabel,
> TЧтоУгодно и перепиши так, чтобы у твоего компонента появилось
> работающее событие OnCreate.

TMyEdit = class(TCustomEdit)
 private
   FOnCreate: TNotifyEvent;
 protected
   procedure DoCreate; virtual;
 public
   constructor Create(AOwner: TComponent); override;
 published
   property OnCreate: TNotifyEvent read FOnCreate write FOnCreate;
 end;

...

{ TMyEdit }

constructor TMyEdit.Create(AOwner: TComponent);
begin
 inherited;
 DoCreate;
end;

procedure TMyEdit.DoCreate;
begin
 if Assigned(FOnCreate) then
   FOnCreate(Self);
end;


что не так? )


 
Юрий Зотов ©   (2012-10-29 16:44) [46]

> Пит   (29.10.12 16:24) [45]
> что не так?


Событие OnCreate не произойдет.


 
vuk ©   (2012-10-29 17:33) [47]

to Юрий Зотов ©   (29.10.12 16:44) [46]:
Юр, не подсказывай. :)))


 
Пит   (2012-10-29 18:01) [48]

Почему не произойдет? Разъясните, пожалуйста...
Правда, рабочую дельфю сча корячить не хочу, а дома дельфя не стоит (

Если я динамически создам свой новый контрол и на форму положу - сработает всё, я уверен.

Если я сделаю свой контрол и зарегистрирую - тоже должно всё сработать... почему нет?
разъясните...


 
Пит   (2012-10-29 18:03) [49]

вы же не хотите сказать, что я не смогу сделать контрол, куда я получу управление в конструктор? Ну а коли я получу управление в конструктор - то из конструктора я смогу что хочешь вызвать: хоть метод MySuperMethod, хоть Abort, хоть FOnCreate


 
vuk ©   (2012-10-29 18:14) [50]

to Пит   (29.10.12 18:01) [48]:

> Если я сделаю свой контрол и зарегистрирую - тоже должно
> всё сработать... почему нет?разъясните...

Воспользуйтесь отладчиком. :)


 
Юрий Зотов ©   (2012-10-29 18:23) [51]

> vuk ©   (29.10.12 17:33) [47]

Да чего уж там...
:o)

> Пит   (29.10.12 18:01) [48]
> Почему не произойдет? Разъясните, пожалуйста...


Формально, код безупречен (за исключением небольшой поправки - методы диспетчеризации событий перекрываютс в потомках нечасто и поэтому их обычно делают динамическими, а не виртуальными).

Но этот безупречный, вроде бы, код не имеет никакого смысла, потому что в момент вызова DoCreate из конструктора поле FOnCreate всегда будет nil (его очистит InitInstance) и поэтому юзерский обработчик события OnCreate вызван не будет (Assigned вернет False) - то есть, событие не произойдет.

Чтобы юзерский обработчик был вызван, поле FOnCreate нужно как-то проинициализировать. В компонентах TForm и TDataModule это делается так: сначала заливается DFM (при этом полям событий назначаются их обработчики), а уж потом генерится событие OnCreate. У других же компонентов VCL никаких DFM нет и проинициализировать поле FOnCreate неоткуда. Именно по этой причине событие OnCreate у них отсутствует, как не имеющее смысла. Вместо него используются методы AfterConstruction и Loaded.


 
vuk ©   (2012-10-29 18:40) [52]

to Юрий Зотов ©   (29.10.12 18:23) [51]:

> Да чего уж там...:o)

Я вообще надеялся, что если оно кому интересно, люди сами попытаются докопацца до истины. Ведь там чего сложного-то? Сделал компонент, зарегистрировал, отладчик в зубы - и вперёд.


 
Пит   (2012-10-29 19:06) [53]

А-а, вот вы про что...

Ну да, согласен... Форма присвоит обработчик моему компоненту уже после выполнения всего кода Create.

Кстати, помню давным давно дядя Юра задавал в качестве теста серию вопросов. На самый сложный вопрос (вроде бы про фреймы) ответил только vuk. Не про это вопрос то был? ))


 
Владислав ©   (2012-10-30 23:45) [54]


> Шмульке   (29.10.12 09:35) [30]


Не тупите. Следуя Вашим же сравнениям "Илиаду" Гомера нужно переписать, используя нанотехнологии.

Автору: статья отличная. Спасибо. (Даже я понял :о) )



Страницы: 1 2 вся ветка

Форум: "Прочее";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.6 MB
Время: 0.071 c
15-1352383958
Artem
2012-11-08 18:12
2013.03.22
XP на VirtualBox e запускается со второго раза


15-1351205756
0x44696D61
2012-10-26 02:55
2013.03.22
поле ввода логина


15-1350906196
Лида
2012-10-22 15:43
2013.03.22
Обработка различных событий в Delphi


15-1336238668
TStas
2012-05-05 21:24
2013.03.22
Нестандартное свойство компонента


15-1329929995
Artem
2012-02-22 20:59
2013.03.22
Почему Com-порт может сбоить?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский