Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Вопросы по Embarcadero RAD Studio XE5-XE8,10.x(Seattle, Berl

Автор: deks
Дата сообщения: 13.12.2013 15:13
Интересное мнение дельфиста про андроид с дельфи и оксигеном. По практике использования очень напоминает мои собственные впечатления, хотя он наткнулся на неприемлемое качество програмки в хе5, а я спекся после xe2/4.

(марк из RO довольно ухмылялся)

линк: _http://donaldshimoda.blogspot.ru/2013/12/my-first-real-work-android-app-coded-in.html
Автор: delover
Дата сообщения: 13.12.2013 16:57
alsterkh

Цитата:
что-то простое и вот оно прямо тут и используется, то - на здоровье.

Да, согласен. Я думаю Вы заметили что If edFilter.Tag=1 then есть, а edFilter.Tag:=1 видимо было, но отсутствует. То есть программа может вести себя неожиданно, если я начну использовать этот тэг, проверив только присвоения...
Автор: Alexzzy
Дата сообщения: 13.12.2013 18:07
delover

Цитата:
Да, согласен

Вот и надо было писать изначально:
вместо

Цитата:
Я бы за теги просто расстрелливал бы на месте

что то типа

Цитата:
Я бы за "неправильное" оспользование тегов...

Автор: delover
Дата сообщения: 13.12.2013 18:22
Alexzzy

Цитата:
что то типа

Нельзя писать - чтото типа, а то никто не поймёт и не заметит. Я хотел добавить что использование переменных обладает свойством - я убиваю переменную, компилятор заставит меня исправить всё в программе. Со свойством Tag - Вы сами видите - этого не произошло. Года через 3 и для Вас будет любое использование Tag - моветон. Вы чуствуете язык, значит так и будет.
Автор: Alexzzy
Дата сообщения: 13.12.2013 19:33
delover

Цитата:
Нельзя писать - чтото типа, а то никто не поймёт и не заметит.

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

Цитата:
Года через 3 и для Вас будет любое использование Tag - моветон. Вы чуствуете язык, значит так и будет.

Помнится лет так ...цать назад покупал книжечку по Дельфи 1, пойду поищу и почитаю, знаний поднаберусь...
Автор: Tulnov
Дата сообщения: 15.12.2013 14:39
Русификация Delphi XE5 UPD2 версии 19.0.14356.6604 (run-time, .pas-файлы) Пасс - стандартный.
Как устанавливать: содержимое архива распаковать в каталог, прописанный в Library Path, либо в папку с проектом.
Замечания, баги, пожелания - в личку.

з.ы. Сделано на основе Русификации Delphi 2007 (run-time, .pas-файлы) от PoleSoft
Автор: Eternal_Shield
Дата сообщения: 16.12.2013 14:27
Нашёл баг: Не вызывается _Release у анонима после отработки конструктора объекта в секции Initialization.

А-ля:

Код: initialization
TestObject := TTestObject.Create(procedure (B: Boolean)
begin

end);
Автор: Alexzzy
Дата сообщения: 16.12.2013 18:20

Цитата:
З.Ы: И всё-равно я люблю Delphi <3

Помнится, когда несколько лет назад смотрел на чём Total Commander написан, то было как и изначально - D2. Восможно и сейчас там D2, не удивлюсь. Я досих пор предпочитаю D7...
Автор: deks
Дата сообщения: 16.12.2013 20:12
Eternal_Shield


Цитата:
И всё-равно я люблю Delphi


К сожалению, в последнее время Дельфи нас все чаще любит в ответ)) Кстати - Дельфи он или она? Или оно?))

Upd: я еще готов простить такой фокус самим дельфям (простили ж дженерики в 2010!), но когда тебя любит зажигательная обезьяна?! С огоньком, ага, - интенсивно ))))
Автор: MGAlex
Дата сообщения: 16.12.2013 20:26

Цитата:
Восможно и сейчас там D2, не удивлюсь.

Вряд ли, поскольку уже давно есть версия TC x64.
Автор: Eternal_Shield
Дата сообщения: 17.12.2013 07:41
Alexzzy

Цитата:
Помнится, когда несколько лет назад смотрел на чём Total Commander написан, то было как и изначально - D2. Восможно и сейчас там D2, не удивлюсь. Я досих пор предпочитаю D7...

Delphi 7 как Ferrari 308GTS. Для своего времени он был превосходен и шикарен, а сейчас он только для ценителей классики

Кстати, Космические рейнджеры написаны на Delphi. Я горд!

deks

Цитата:
К сожалению, в последнее время Дельфи нас все чаще любит в ответ))

Да уж ....


Цитата:
Кстати - Дельфи он или она? Или оно?))

В контексте Русского языка Delphi - это он, ибо язык. У нас любой язык мужского рода. Будь мы французами, то Delphi была бы женского рода, т.к. у них язык женского рода ... тогда бы могли не стесняться своей любви к Delphi и петь дифирамбы в открытую =D
Автор: Arioch1
Дата сообщения: 17.12.2013 09:17
Я слышал, что он был переписан на Лазаре. Впрочем, можно сравнить когда вышла XE2 и TCx64

Добавлено:

Цитата:
Кстати - Дельфи он или она? Или оно?


Это - "они". Город такой, там много человеков живёт.
Автор: X11
Дата сообщения: 17.12.2013 09:18

Цитата:
Кстати - Дельфи он или она? Или оно?))


Смотря что подразумевается. Если язык, то он, а если среда разработки, то, соответственно она
Автор: delover
Дата сообщения: 17.12.2013 16:10
Alexzzy

Цитата:
Помнится лет так ...цать назад покупал книжечку по Дельфи 1

Я, правда не покупал, я украл из книжного магазина секреты Delphi 2. Но давайте не меряться пиписьками. Я имел ввиду иностранный язык - английский. Не знаю везде ли это, но Tag - распространённая детская дразнилка - утиные лапки. Так мне объяснил зарубежный собеседник. Что-то типа "если гирл обсуждают прокладки, то вумен избегают обсуждать это". Я так понял Tag - это и есть прокладка и не выставляю свой ПМС на показ. В общем стиль - это Ваше дело, сейчас чаще программируют китайцы - они Вас не осудят.
Автор: Alexzzy
Дата сообщения: 17.12.2013 16:49
delover
Я уже давно ничем не меряюсь. Теперь, то что имели ввиду - понял. Я Tag использовал, наверное, 1-2 раза, давно, локально и очень прозрачно.
А воровать не хорошо!
Автор: delover
Дата сообщения: 17.12.2013 17:42
Alexzzy
Пристыдили А знаете как я тогда переживал? Однако книгу переводили хлопцы киивляне с помощью программы и больше половины текста было на машинно переведённом коде не имеющем человеческого смысла. Но автор Рей Лишнер - того стоил. Вот теперь думаю Вы понимаете почему в свойстве Tag у меня нет потребности.

Добавлено:
пс Это первая и единственная сворованная в магазине книга
Автор: Alexzzy
Дата сообщения: 17.12.2013 21:16

Цитата:
пс Это первая и единственная сворованная в магазине книга

Что ещё воровали? Шутка.
Лишнера не читал. Любимая - двухтомник "D5 - Пачеко, Тейксейра". До сих пор рекомендую, благо в придачу к "бумаге" шёл pdf-вариант и проблем с этим изданием не было и нет...
Автор: Lena44
Дата сообщения: 17.12.2013 23:45
Для сишников:
C++ Builder подтягивается, пока + iOS:
_http://www.embarcadero.com/ru/products/cbuilder/ios-code-samples-xe5?cid=701G0000000WLhl
Андроид этой зимой.
Автор: Alexzzy
Дата сообщения: 18.12.2013 00:28
delover
Кстати, поискал Лишнера в электронном виде и не нашёл (искал правда не долго). А было бы интересно посмотреть. Люблю интересные книжечки.
Автор: MGAlex
Дата сообщения: 18.12.2013 18:08

Цитата:
Любимая - двухтомник "D5 - Пачеко, Тейксейра"

Согласен, книги шикарнейшие. Тоже в свое время покупал, денег не пожалел и счастлив.

Еще неплохая книга: Том Сван "Библия разработчика" Delphi 4. Мне досталась без диска с примерами, к сожалению, но и без него можно обойтись.

Автор: delover
Дата сообщения: 20.12.2013 16:26
Alexzzy

Цитата:
delover Кстати, поискал Лишнера в электронном виде

У меня остались только примеры для книг D2 D3 D4. Дело в том что лучше книги о разработке своих компонентов своих дизайнеров и недокументированных свойствах Delphi я не видел. Это именно Секреты Delphi. Сейчас серьёзно поменялось RTTI (~ с d2010) и многое неактуально. Он пишет свои менеджеры памяти и серьёзно для своего времени использует WinAPI.

Про Tag разговор начинался с того что была тема о том, что "if Boolean=True then" это якобы плохой стиль программирования. Моя же мысль о том, что "if КонкретныйКомпонент.Tag = 1 then" более плохой стиль программирования. Дело в том что True переводится с дельфи скорее как правда, а не истина. Меня радует что пишут "Равно Правда". Это для меня типа смайлика, ну не отменять же смайлы по причине того что они вроде не нужны.

Добавлено:
Да пример разницы в RTTI.
[more]
Код: [no]{$IFDEF SUPPORTS_GENERICS}

procedure TTestCheckComponent.DoListProc(const AClassName: string;
Proc: TTestListProc);
var
Context: TRttiContext;
t: TRttiType;
Inst: TRttiInstanceType;
meth: TRttiMethod;
test: TTestProc;
begin
for t in Context.GetTypes do
if t.TypeKind = tkClass
then begin
Inst := t.AsInstance;
if Inst.Name = AClassName then
for meth in Inst.GetMethods do
if meth.Visibility = mvPublished
then
begin
FName := meth.Name;
if Pos(sTestProc, FName) <> 1 then
raise ETestWarning.CreateFmt('Error declaration: %s.%s',
[sTestCheck, FName]);
TMethod(test).Code := meth.CodeAddress;
TMethod(test).Data := Self;
test(True);
Proc(FName, FCaption, TMethod(test).Code, FState);
end;
end;
end;

{$ELSE}

procedure TTestCheckComponent.DoListProc(Proc: TTestListProc);
var
P: Pointer;
Count: Word;
I: Integer;
test: TTestProc;
begin
P := PPointer(Self)^;
Inc(PByte(P), vmtMethodTable);
P := PPointer(P)^;
Count := PWord(P)^;
Inc(PByte(P), 8);
for I := 0 to Count - 1 do
begin
FName := PShortString(P)^;
Inc(PByte(P), Length(FName)+7);
if Pos(sTestProc, FName) <> 1 then
raise ETestWarning.CreateFmt('Error declaration: %s.%s',
[sTestCheck, FName]);
TMethod(test).Code := Self.MethodAddress(FName);
TMethod(test).Data := Self;
test(True);
Proc(FName, FCaption, TMethod(test).Code, FState);
end;
end;

{$ENDIF}[/no]
Автор: Alexzzy
Дата сообщения: 20.12.2013 21:52
delover
Примеры не интересно. В примерах копаться без описания желания нетути... Насчет дизайнеров и недокументированных возможностях - да, не встречал ничего интересного. Насчет RTTI - я в курсе, это не проблема - использовал и буду использовать без книжек и обращу внимание на предоставленное... WinAPI - не проблема.
Про "if Boolean=True then" - с первого взгляда не врубился, не следил...

Добавлено:
MGAlex
Автор: delover
Дата сообщения: 23.12.2013 18:47
Alexzzy
Да, совершенно верно. С Вашим опытом в нашей глубинке, Вы мало найдёте в "секретах...". Лучше потратьте время на новые книги о Дельфи - думаю их мало читают достойные критики.
Автор: Alexzzy
Дата сообщения: 23.12.2013 20:48
delover
Опять подкалываете? Я прислушиваюсь к мнениям, и посмотреть на "серкерты" есть желание, как я и написал. А то, что я написал о том, что для меня не вызывает прблем, лишь говорит о том, что без некоторых секретов из этой книги я возможно на данный момент и обойдусь. И всё это в контексте того, что НЕТУ этой книги.
Автор: A_V
Дата сообщения: 23.12.2013 21:53
delover

Цитата:
Перечисляю паблишед методы. Обратите внимание, что до генериков я использовал
Inc(PByte(P), 8);

8 = Сount + Len + CodeAddress? так бы и написали..
да интересно, причем тут генерики? они появились с D2009, а дело вообще-то в enhanced rtti, что появилось с 2010-х.
ну и в данном коде, рассчитаном на то что паблишед метод всего один в классе, разницы нет, новый rtti или старый, с новым так-же будет работать..
ну и перечисление всех типов и сравнение с AClassName в 'генерик' коде тоже за гранью добра и зла =)
вообщем это не пример разницы в rtti, а того что в 2010-х появилась объектная обертка, криво тут использованная..
и выглядит это, как полная галиматья, если честно =)
Автор: delover
Дата сообщения: 24.12.2013 13:39
A_V

Цитата:
Сount + Len + CodeAddress

Count да, CodeAddress нет, Len нет. Len это непонятные байты которые даже не помогают вычислить разницу между адресом Count и "CodeAddress" (проверено в CPU). Кстати "CodeAddress" это похоже адрес следующей пачки паблишед или ещё чего.


Цитата:
и в данном коде, рассчитаном на то что паблишед метод всего один в классе, разницы нет, новый rtti или старый

Нет. В данном коде расчитано что будет

Код: TTestCheck = class(TTestCheckComponent)
published
procedure TestProc1(IsList: Boolean);
procedure TestProc2(IsList: Boolean);
procedure TestProc3(IsList: Boolean);
procedure TestProc4(IsList: Boolean);
procedure TestProc5(IsList: Boolean);
procedure TestProc6(IsList: Boolean);
...
procedure TestProcN(IsList: Boolean);
end;
Автор: delover
Дата сообщения: 24.12.2013 16:04
A_V
А, понял. TestProcX=9 + 1 ноль = 10. Но только Вы поспешили, там 10 - это шестнадцатиричная система.
Автор: A_V
Дата сообщения: 24.12.2013 17:32
delover
да, верно отработает на нес-ких методах, не заметил +7.
Len - это длина данных блока, там корректные данные (по крайней мере с D7+), CodeAddress - это собсно адрес метода.
не нужно никаких магических числел, 7, 8.. достаточно описать структуру
{$IFNDEF D2010UP}
TMethodInfoHeader = packed record
Len: Word;
Addr: Pointer;
Name: ShortString;
end;
{$ENDIF}
что-бы ничего в x64 не рухнуло..
посмотри, как это сделано по-человечески - в ObjAuto.pas, там эта структура тоже есть, если делать на D7 и выше - стоит брать оттуда
просто забавно видеть подобный код от чела, который при случае готов умерщвлять кодеров

Цитата:
кувалдой, лопатой, ружьём, чем угодно

Автор: delover
Дата сообщения: 24.12.2013 18:26
A_V

Цитата:
просто забавно видеть подобный код от чела, который при случае готов умерщвлять кодеров

Я люблю кодеров, особенно тех которые во всех скриптах оставляют пароль от секретной базы шефа (только я ничего не говорил). Просто я не люблю шибко умных кодеров, которые в одно окно налепят 100 галочек, потом бедная бабка 60 лет целый час гадает, то ли она нажала. Я такая же бабка, только в пас филе. Мне слово Tag непонятно, с единичками ноликами разберусь.

Спасибо за ObjAuto, в моей библии всегда есть место вписать что-то новое.
Автор: egerLESHIK
Дата сообщения: 25.12.2013 15:20
Здравствуйте. Хочу спросить после апдейтов Delphi XE5 у кого-нибудь шустрее стал работать? Компиляция приложения под виртуальное мобильное устройство тааааак долго выполняется...

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129

Предыдущая тема: Отмена встречи в Outlook из Excel VBA


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.