- 1
- 2
- 3
- 4
- 5
- 6
- 7
Сегодня был приятно удивлен тем, что цикл
for i:=0 to memo1.lines.count -1 do
...
приостанавливает работу, когда идет обращение к мемо (пользователь выделяет текст или печатает в этом мемо) до тех пор, пока идет обращение.
Очевидно, это такая фишка компилятора. Приятно, когда компилятор прикрывает спину.
Stertor 10.08.2013 21:30 # +2
vistefan 11.08.2013 13:52 # −5
guest 13.09.2013 00:01 # −9
[email protected] (Спросить Тараса)
guest 13.09.2013 23:44 # −7
Dummy00001 11.08.2013 03:19 # −5
безобидно выглядещее `memo1.lines.count` скорее всего делает SendMessage() который само собой разумеется подвисает (скорее всего лок) когда WndProc() уже обрабатывает какое-то сообщение.
anonimb84a2f6fd141 11.08.2013 15:37 # −6
Dummy00001 11.08.2013 15:45 # +3
как по мне - да, начинать с консоли имеет смысл.
хотя, зная как поверхностно обучение программированию в некоторых местах идет, консолью новичкам могут желание отобить учить программирование.
anonimb84a2f6fd141 11.08.2013 16:50 # +1
Консоль гораздо унылее, да.
defecate-plusplus 11.08.2013 17:29 # +1
самые интересные программы - вообще без консоли и гуя
Stertor 11.08.2013 18:09 # −3
D
Dummy00001 11.08.2013 18:17 # +5
anawistka 11.08.2013 18:35 # −2
Xom94ok 11.08.2013 18:52 # +3
Xom94ok 12.08.2013 05:15 # −2
bormand 11.08.2013 18:52 # −1
Соль: http://en.wikipedia.org/wiki/Daemon_%28computing%29
P.S. По виндовой терминологии - служба.
Stertor 11.08.2013 19:19 # −2
govnomonad 11.08.2013 18:54 # −3
guest 13.09.2013 00:01 # −8
[email protected] (Спросить Тараса)
guest 13.09.2013 00:01 # −8
[email protected] (Спросить Тараса)
TarasB 09.10.2013 11:40 # 0
anonimb84a2f6fd141 11.08.2013 20:58 # 0
Stertor 11.08.2013 21:22 # −4
anonimb84a2f6fd141 11.08.2013 22:01 # −2
Можно устроить обмен исходниками. Мой на питоне.
Stertor 11.08.2013 22:40 # −3
А не пошел бы ты в жопу?
D
Stertor 11.08.2013 22:44 # −3
var aBot:array[1..10] of TBot;
begin
//создаем и настраиваем экземпляр бота
abot[1].VoteAgainst;
abot[1].KeepCookie;
abot[1].Free;
Класс Бота базируется на IdHTTP. Объект создается автономно.
Куки-менеджер тоже создается автономно , т.е для каждого бота свой.
anonimb84a2f6fd141 11.08.2013 23:09 # −3
Stertor 11.08.2013 23:30 # −2
я сделаю вид, что не читал этого.
anonimb84a2f6fd141 12.08.2013 01:06 # −3
Stertor 12.08.2013 11:35 # −3
И не увидишь.
anonimb84a2f6fd141 11.08.2013 23:08 # −3
Stertor 11.08.2013 23:28 # −2
Вспомни, сколько я за тобой бегал, выпрашивая исходники. А ты мало того, что не поделился, так еще и наебал меня - не написал лс, хотя обещал. С моей стороны отношение будет соответствующим.
anonimb84a2f6fd141 12.08.2013 01:05 # −2
Сейчас речь идет об обмене, ситуация другая. И да, не хочешь - мне похуй.
Stertor 12.08.2013 11:26 # −2
Лс в данном случае - письмо мне на почту.
Исходники не дам: зачем? Чтобы ты впоследствие меня минусовал? Могу помочь с разработкой. Что тебя интересует?
3.14159265 12.08.2013 15:43 # −2
Stertor 12.08.2013 15:48 # −2
anonimb84a2f6fd141 12.08.2013 16:48 # −3
Stertor 12.08.2013 16:23 # −3
Сюда по понятным причинам не могу выложить ссылку, а то мою программу использую против меня.
anonimb84a2f6fd141 12.08.2013 16:49 # −2
bormand 12.08.2013 21:03 # −1
Т.е. ты считаешь, что ты не Неуловимый Джо, и кто-то будет тебя минусовать? :)
Мне вот, к примеру, просто лень регать десяток ботов ради этого бессмысленного минусяторства. А прога... да она пишется отсилы полчаса вместе с отладкой. Просто я не вижу в этом смысла.
Так что аноним прав, если и поюзают для чего-то твою прогу - просто почитать исходниики для интереса.
Stertor 13.08.2013 10:21 # −4
Stertor 13.08.2013 11:13 # −3
http://rghost.ru/48083698
пароль - 1600
А то еще подумаете, что я - гондон. Нет, батеньки мои. Я люблю пофлудить и потроллить, но гондоном я никогда не был.
vistefan 13.08.2013 19:02 # +1
Stertor 13.08.2013 19:52 # −3
guest 13.09.2013 00:01 # −8
[email protected] (Спросить Тараса)
inkanus-gray 12.08.2013 08:45 # +6
1. Приостанавливает работу код TMemo (или что там у нас) из библиотеки VCL. Библиотека не компилятор. Сердце не камень, работа не волк, все лгут.
2. Цикл ни при чём. Я уже писал, что цикл for в потомках Турбо Паскаля отличается от сишного тем, что интервал счётчика вычисляет только один раз.
Stertor 12.08.2013 11:32 # −3
Stertor 12.08.2013 11:36 # −3
Если честно, не понял. Просвети?
inkanus-gray 12.08.2013 12:31 # −2
Значение выражения memo1.lines.count - 1 будет посчитано один раз и сохранено в регистре перед началом цикла.
bormand 12.08.2013 12:47 # −1
P.S. И что-то мне намекает, что тот самый memo1.lines каждый раз вытрясает из мемы текст а затем разбивает его на строки.
inkanus-gray 12.08.2013 14:33 # 0
bormand 12.08.2013 15:02 # −3
inkanus-gray 12.08.2013 15:26 # 0
А мема — внук TCustomEdit'а:
Stertor 12.08.2013 15:52 # −3
http://www.pictureshack.ru/images/89Trololo-tonko.jpg
Stertor 12.08.2013 15:56 # −3
var
P: PChar;
SelStart, Len: Integer;
begin
SelStart := GetSelStart;
Len := GetSelLength;
SetString(Result, PChar(nil), Len);
if Len <> 0 then
begin
P := StrAlloc(GetTextLen + 1);
try
GetTextBuf(P, StrBufSize(P));
Move(P[SelStart], Pointer(Result)^, Len);
finally
StrDispose(P);
end;
end;
end;
Вспомнил, как я извращался с PureBasic, когда еще не знал дельфей.
bormand 12.08.2013 21:16 # +1
Царь прав, к сожалению, насчет неудобства ООП. В ООП'шных прогах легко изучать и перепиливать локальные куски, в пределах одного класса. Зато, когда надо понять причину какого-то мало-мальски сложного поведения, приходится перекапывать горы исходников.
Процедурный код этому рассеиванию логики подвержен в меньшей мере.
anonimb84a2f6fd141 12.08.2013 21:18 # 0
bormand 12.08.2013 21:39 # −1
anonimb84a2f6fd141 12.08.2013 21:54 # −1
А если вообще без наследования - все не хуже и гораздо лучше читается.
bormand 12.08.2013 22:01 # −1
А если без наследования и полиморфизма, то, внезапно осталось то самое си с классами, которое любит упоминать царь ;) Использование классов только ради инкапсуляции.
anonimb84a2f6fd141 13.08.2013 00:34 # −1
>статика
Часто такое встречается? :)
>си с классами, которое любит упоминать царь
Я уж забыл - в каком тоне он это упоминает?
bormand 13.08.2013 06:29 # −1
Да в любом месте, где по-настоящему поюзан полиморфизм :)
> Я уж забыл - в каком тоне он это упоминает?
Насколько я понимаю, что-то среднее между богомерзким с++, который царь не признает за язык, и божественной сишечкой, которую царь любит.
anonimb84a2f6fd141 13.08.2013 17:07 # −1
Ух ты, а примерчик можно, где в статике динамический тип что-то наследует? :)
То есть, царь не признает классы или хотя бы их эмуляцию в си? Я всегда знал, что он поехавший, но сейчас у меня есть доказательства. Хотя, если учесть, что он ни одной программы сложнее обхода массива не написал, действительно - зачем тут классы-то...
roman-kashitsyn 13.08.2013 17:23 # +2
> примерчик можно, где в статике динамический тип что-то наследует?
Поясните мысль. Я подозреваю, что борманд имел в виду что-то вроде
bormand 13.08.2013 18:33 # −1
Да любой парсер, составляющий AST - там тип ноды зависит от прочитанных данных. И не взглянув на входные данные и процесс построения невозможно сказать, на какой именно класс ссылается некая ссылка. Известен только родительский класс/интерфейс, не более того.
> Я подозреваю, что борманд имел в виду что-то вроде
Ага, именно это.
anonimb84a2f6fd141 13.08.2013 18:34 # −2
roman-kashitsyn 13.08.2013 18:43 # −1
разработчикам clang - ежедневно
anonimb84a2f6fd141 13.08.2013 18:44 # −2
roman-kashitsyn 13.08.2013 18:47 # −2
bormand 13.08.2013 18:44 # −1
Приходилось пару раз. Но суть проблемы вы не уловили походу.
Любая задача, юзающая полиморфизм, имеет точно такую же траблу. Разделяются момент создания объекта (фабрика или что-то подобное) и момент его использования. Из-за этого без отладчика/логов порой трудно понять, че там вообще создавалось и вызывалось.
В точке создания совсем непонятно, что будут делать с объектом. В точке вызова совсем непонятно, что же там за объект (т.к. полиморфизм). Вот это я и хотел показать ;)
anonimb84a2f6fd141 13.08.2013 18:48 # −1
Даже если оно добавляет проблем в одном месте, оно убирает их из другого, иначе бы полиморфизмом никто не пользовался.
bormand 13.08.2013 18:54 # −2
Да с этим я и не спорю ;) Любая парадигма это куча компромиссов, дающих где-то удобство, где-то неудобство, а где-то полный фейл.
wvxvw 09.10.2013 12:12 # 0
В этом смысле полиморфные функции более показательны. Например:
Просто люди когда слышат "полиморфизм", почему-то всегда начинают думать о наследовании (хотя это не обязательно, и, вообще возможно, что в вышеприведенном примере полиморфизм не использовался - мы же не знаем, есть ли у разных фигур методы с одним именем, но разной реализацией).
3.14159265 13.08.2013 18:50 # 0
>>>Царь прав, к сожалению, насчет неудобства ООП.
Нашел авторитета для цитирования.
Тарас об этом (oop isnt silver bullet) с самых ранних тредов твердил, когда еще сюда Пушков приходил отстаивать кресты.
bormand 13.08.2013 18:54 # +1
Кресты выпали в осадок?
3.14159265 13.08.2013 18:58 # 0
Их поливают говном практически с самого основания ресурса. Это традиция кстати.
Stertor 13.08.2013 19:53 # −3
bormand 12.08.2013 21:20 # −1
guest 13.08.2013 11:52 # 0
Нет. Lines - объект типа TMemoStrings, его метод получения строки выглядит так:
Stertor 13.08.2013 19:57 # −2
guest 13.09.2013 00:01 # −8
[email protected] (Спросить Тараса)
guest 24.08.2013 00:00 # −2
i: integer;
begin
Screen.Cursor := crHourGlass;
try
for i := 0 to memo1.Lines.Count - 1 do
begin
// Здесь делаем все что нам нужно
Application.ProcessMessages; // это не забываем делать чтоб не тормозило ))
end;
finally
Screen.Cursor := crDefault;
end;
end;
guest 13.09.2013 00:01 # −6
[email protected] (Спросить Тараса)
labutinpa 08.10.2013 18:00 # −1
Stertor 08.10.2013 21:15 # −1
Ка-питан, ты слиш-ком дол-го пла-вал.
С уважением, Ваш Стертор.
Stertor 09.10.2013 10:36 # −1