- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
procedure TDetailForm.GridPanel1Click(Sender: TObject);
var
i: Integer;
s: String;
begin
//set title and subtitle
if Pos('Item', TControl(Sender).Name) > 0 then begin
if Sender.ClassName = 'TImage' then begin
i := Length(TControl(Sender).Name) - Length('ItemImage') - 1;
s := Copy(TControl(Sender).Name, Length(TControl(Sender).Name) - i, Length(TControl(Sender).Name));
ItemTitle.Caption := TLabel(DetailForm.FindComponent('ItemTitle' + s)).Caption;
ItemSubtitle.Caption := TLabel(DetailForm.FindComponent('ItemSubTitle' + s)).Caption;
end else if Pos('ItemSubTitle', TControl(Sender).Name) > 0 then begin
ItemSubtitle.Caption := TLabel(Sender).Caption;
i := Length(TControl(Sender).Name) - Length('ItemSubTitle') - 1;
s := Copy(TControl(Sender).Name, Length(TControl(Sender).Name) - i, Length(TControl(Sender).Name));
ItemTitle.Caption := TLabel(DetailForm.FindComponent('ItemTitle' + s)).Caption;
end else if Pos('ItemDescription', TControl(Sender).Name) > 0 then begin
i := Length(TControl(Sender).Name) - Length('ItemDescription') - 1;
s := Copy(TControl(Sender).Name, Length(TControl(Sender).Name) - i, Length(TControl(Sender).Name));
ItemTitle.Caption := TLabel(DetailForm.FindComponent('ItemTitle' + s)).Caption;
ItemSubtitle.Caption := TLabel(DetailForm.FindComponent('ItemSubTitle' + s)).Caption;
end else begin
ItemTitle.Caption := TLabel(Sender).Caption;
i := Length(TControl(Sender).Name) - Length('ItemTitle') - 1;
s := Copy(TControl(Sender).Name, Length(TControl(Sender).Name) - i, Length(TControl(Sender).Name));
ItemSubTitle.Caption := TLabel(DetailForm.FindComponent('ItemSubTitle' + s)).Caption;
end;
end;
end;
Код из шаблона New Metropolis UI Application в новом Delphi XE3. Рефлексия так и прет.
scriptin 23.09.2012 12:24 # +4
TarasB 23.09.2012 12:33 # +1
TarasB 23.09.2012 14:06 # +1
даже не зная, что они настолько нахуй не нужны, что во всех потомках Паскаля (я не про Дельфи и ФПЦ, полученные из него долгой "эволюцией") вообще эти begin и end убрали нахуй.
И эти долбоёбы, даже видя три ЖЫРНЫХ ключевых слова подряд, даже испытвая блевотное чувство при виде этого жирного забора, считают, что так писать - правильно и что это Паскаль виноват в том, что эта конструкция херово выглядит.
В этом коде нет этого ёбаного в рот переноса и всё заебись видно.
Для долбоёбов ещё раз - в крестах лучше перенести (и сделать 4 отступа, иначе else, стоящее сразу за фигурной скобкой, просто тупо сольётся со стеной кода), в Дельфи - нахуй не нужно. Мнение тех, кто привык к крестам и у которого глаз больше заточен под фигурные скобки, идёт нахуй, мне оба синтаксиса привычны одинаково и я знаю, о чём говорю.
scriptin 23.09.2012 14:38 # +4
TarasB 23.09.2012 14:56 # +2
3.14159265 02.10.2012 19:19 # 0
И в три - говно лютое. За это не люблю Пасцаль - как ни крути - выглядит как говно.
А теперь посмотрим на бейсиковские ifы
> вообще эти begin и end убрали нахуй.
И правильно сделали. Действительно блевать тянет.
TarasB 03.10.2012 18:43 # −1
Vindicar 23.09.2012 17:38 # −1
где оператор может быть простым, или составным вида
где операторные скобки есть неотъемлемая часть составного оператора.
И да, в Си-подобных языках я пишу так же и по той же причине:
TarasB 23.09.2012 18:08 # +1
LispGovno 23.09.2012 21:22 # +1
Fai 24.09.2012 05:45 # 0
if <condition>
..<operator1>
..<operator2>
else
..<operator3>
..<operator4>
end
намного проще записывается чем
if <condition> {
..<op>
..<op>
} else {
..<op>
..<op>
}
И тут для меня два плюса:
1. Пропадает необходимость в составных операторах.
2. Отсутствует проблема висящего else. [1]
[1] Good Ideas, through the Looking Glass by Niklaus Wirth, Computer, V. 39, No 1, January 2006
guest 02.10.2012 20:07 # −1
anonimb84a2f6fd141 13.07.2013 23:47 # −1
3.14159265 02.10.2012 19:12 # +1
Нет, Вирт.
guest 13.07.2013 22:18 # −6
[COLOR=BLUE]СОСУ ХУИ[/color][COLOR=BLACK]ДАЮ В ЖОПУ[/color][COLOR=GREEN]ДЕЛАЮ МИНЕТЫ[/color][COLOR=RED]
ПИШИТЕ, ЗВОНИТЕ: 79046468333. СТРАНИЦА В ВК: vk.com/id41556[/color]
Stertor 14.07.2013 21:18 # −1
-В шею! Гоните все войска в ше-е-е-е-е-ю!
(Ф. Сологуб, "Мелкий бис").
Fai 23.09.2012 15:06 # −1
igumnovf 21.10.2012 20:00 # −2
bormand 21.10.2012 20:04 # −1
2) Ну типичная лаба выводящая табличку значений непонятной функции, что не так?
PascalGovno 21.10.2012 20:08 # +1
Ваш капитан первого ранга.
bormand 21.10.2012 20:15 # 0
Или комменты через неделю, говнокоды через две?
Stertor 03.07.2013 20:00 # 0
Pos чувствительна к регистру, на этом многие горят. Не лучше ли так:
Pos(ansilowercase('Item'), ansilowercase(TControl(Sender).Name))
Ну или переменные специально выделить, если Вы филантроп. Меня жаба душит(
inkanus-gray 13.07.2013 23:16 # 0
Stertor 14.07.2013 10:26 # 0
В целом - нет.
Плохо тогда, когда автор узнал об этом когда программа уже скомпилирована и распространяется.
inkanus-gray 14.07.2013 13:14 # −1
Обычный поиск чувствителен к регистру везде: он ищет точную копию образца. Как раз наоборот, для нечувствительности к регистру нужно принимать меры.
bormand 14.07.2013 14:02 # 0
Stertor 14.07.2013 16:52 # 0
bormand 14.07.2013 21:05 # 0
Stertor 14.07.2013 21:14 # 0
Stertor 14.07.2013 16:48 # +1
inkanus-gray 14.07.2013 21:27 # −1
Stertor 15.07.2013 20:44 # 0
мягкий и доброжелательный. Правда, иногда упертый.
>>чтобы он от функции, предназначенной для поиска точного совпадения
А что, есть и не для точного поиска?
Иногда бывает так, что точность поиска не столь важна (при парсинге html например), а наоборот, препятствует нормальной работе функции;
немного грустно становится, когда функция различает текст вроде этого:
"some string here", "Some string here".
Можно, в принципе, воспользоваться ansilowercase, но в таком случае мы опять возвращаемся к вопросу:
>>А что, есть и не для точного поиска?
Stertor 15.07.2013 20:47 # 0
В данном случае это более надежное решение, чем если бы без ansilowercase
Stertor 15.07.2013 20:51 # 0
inkanus-gray 15.07.2013 21:29 # 0
Ага, мне не нужно, значит, никому не нужно.
Парсинг html — вообще вещь сложная. Для нечувствительного к регистру поиска придётся указывать кодировку. Да, в отрыве от кодировки нечувствительность к регистру не существует. Ansilowercase — всего лишь частный случай, который может и не работать.
Stertor 15.07.2013 21:36 # 0
но я не говорил, что он не нужен в принципе!!! )
Ansilowercase — всего лишь частный случай, который может и не работать.
А можно поподробнее? Я знаю, что LowerCase работает только с семибитным текстом (так написано в справке) и как альтернатива с более широкими возможностями предлагается ansilowercase. А в чем лажа?
Stertor 15.07.2013 21:40 # 0
В принципе, можно переписать pos под себя и заменить вот эту конструкцию :
if "" = "" then
...
на
if lstrcmpi("","")=0 then
...
будет вызываться не чувствительная к регистру lstrcmp а ее регистронечувствительный аналог
Stertor 15.07.2013 21:46 # 0
>>LowerCase returns a string with the same text as the string passed in S, but with all letters converted to lowercase. The conversion affects only 7-bit ASCII characters between 'A' and 'Z'. To convert 8-bit international characters, use AnsiLowerCase.
inkanus-gray 15.07.2013 22:30 # +1
Даже без учёта кодировок регистронезависимый поиск — слишком сложная вещь, чтобы ассоциировать её с примитивной функцией.
HaskellGovno 16.07.2013 11:31 # 0
superhackkiller1997 16.07.2013 14:07 # 0
durov 14.07.2013 21:37 # −1
anonimb84a2f6fd141 13.07.2013 23:45 # +1
inkanus-gray 13.07.2013 23:46 # +1
Stertor 14.07.2013 16:53 # 0