Re[10]: Почему Delphi всё еще жив?!
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 19.10.10 20:06
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>Здравствуйте, gandjustas, Вы писали:


G>>>>Отсутствия где? Ты ничего не путаешь? Как раз в .NET можно вообще не париться с подсчетом ссылок в COM, ни в компонентах, ни в клиентах.

S>>> Поверь не путаю. Когда нужно освободить СОМ ресурсы либо вручную релизить объекты Или ждать когда вызовется GC для объектов с финализаторами.
G>>http://msdn.microsoft.com/en-us/library/system.runtime.interopservices.marshal.releasecomobject.aspx
G>>И никаких проблем

I>Т.е. париться все таки надо ?

Нет.

I>Без этого стоит раз вызвать примерно такое Application.Documents.CurrentDocument и прога не закроется когда надо.

Закроется. Хотя может ты что-то другое имеешь ввиду.
Re[30]: Почему Delphi всё еще жив?!
От: CreatorCray  
Дата: 19.10.10 20:09
Оценка: +2 :)
Здравствуйте, Ikemefula, Вы писали:

I>А вот найди как плагин, что бы _на_панели_ фара был запущен тотал. Слабо ?

Можно и задницей свистнуть, но зачем?
Был плагин который на панели FAR просмотр картинок делал.
Так что можно всё.

I>Нахрена именно внутренний редактор ? Если например редактор нужен все время работы, что делать ? Запускать еще инстанцы фаров ?

Там вообще то между окнами (редактор/просмотр/панели) можно переключаться. И соотвественно редакторов и просмотров может быть много.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[12]: Почему Delphi всё еще жив?!
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 19.10.10 20:13
Оценка:
Здравствуйте, Serginio1, Вы писали:

S>Здравствуйте, gandjustas, Вы писали:


G>>Здравствуйте, Serginio1, Вы писали:


S>>>Здравствуйте, gandjustas, Вы писали:


G>>>>Здравствуйте, Serginio1, Вы писали:


S>>> А это разве не проблема? В Delphi ничего ручками релизить ненадо (за исключением неправильно написанных СОМ объектов). А ведь привыкаешь же к хорошему.

G>>Так и в .NET не надо. GC сам все уберет.
G>>Вызывать надо только чтобы освободить объект раньше, чем до него доберется GC.
G>>Такое возникает крайне редко.
S> У кого как.
У всех так, за редким исключением.

S>>> Объект.ПолучитьОбъект().Получить2Объект().Выполнить(); После выполнения данной команды промежуточные объекты удалятся (По месту релиза). А бывают и очнь длинные цепочки.

G>>И что?
S> А то, что накапливаются объекты многие из которых содержат ресурсы, котрые нужно освождать чем раньше тем лучше.
"чем раньше тем лучше" зачастую некорректное утверждение.

S>>>>>Плюс в 2009 и дженерики появились.

G>>>>Все бы хорошо, но в .NET они появились на 4 года раньше. Кроме того до сих пор самая используемая версия делфей — 7
S>>> Но это не значит, что 2009 не существует. Мы же обсуждаем не NET 1.1
G>>На .NET 1.1 уже никто не пишет, а на Delphi 7 — вполне.
S> Это только говорит о его состоятельности. Хотя честно говоря уж долго он не развивался.
Это говорит о несостоятельности новых версий.
Почему при наличии delphi 2005 и выше, до сих пор на семерке сидят?

S>>> Ну и как Тебе с Голым IDispatch работается через рефлексию?

G>>С dynamic — прекрасно.
S> И давно динамики то появились?
Ну в VB они и раньше были, в C# только в 4 версии.
Re[7]: Почему Delphi всё еще жив?!
От: hattab  
Дата: 19.10.10 20:14
Оценка:
Здравствуйте, gandjustas, Вы писали:

g> g>> Щас заплачу... почему в .NET такие проблемы отсуствуют?

g> g>> Там и COM и и передача между модулями нормально работает.
g> g>> Наверное это таки недостаток делфи.

g> H>Когда будешь передавать строку в нативный модуль, ясень пень заплачешь, куда же ты денешься.


g> В .NET этого недостатка нету.


Ага-ага Покажи код работающий с WinAPI на примере функции GetWindowsDirectory. Потом я покажу на Delphi и ты расскажешь мне о его недостатках
avalon 1.0rc3 rev 363, zlib 1.2.3
Re[13]: Почему Delphi всё еще жив?!
От: hattab  
Дата: 19.10.10 20:19
Оценка:
Здравствуйте, gandjustas, Вы писали:

g> Это говорит о несостоятельности новых версий.

g> Почему при наличии delphi 2005 и выше, до сих пор на семерке сидят?

Если людям нафиг не уперлись ни генерики, ни юникод, ни многие другие плюшки нафиг им куда-то мигрировать? Лично для меня, все что младше 2006 уже умерло
avalon 1.0rc3 rev 363, zlib 1.2.3
Re[8]: Почему Delphi всё еще жив?!
От: Ночной Смотрящий Россия  
Дата: 19.10.10 20:20
Оценка:
Здравствуйте, hattab, Вы писали:

H>Ага-ага Покажи код работающий с WinAPI на примере функции GetWindowsDirectory.


[DllImport("kernel32.dll", SetLastError=true, CharSet=CharSet.Auto)]
static extern uint GetWindowsDirectory(StringBuilder lpBuffer, uint uSize);

А в чем подвох?
Re[14]: Почему Delphi всё еще жив?!
От: Ночной Смотрящий Россия  
Дата: 19.10.10 20:21
Оценка:
Здравствуйте, hattab, Вы писали:

H>Если людям нафиг не уперлись ни генерики, ни юникод


То этим людям пора отправляться на пенсию, а не плодить говнокод.
Re[31]: Почему Delphi всё еще жив?!
От: hattab  
Дата: 19.10.10 20:24
Оценка:
Здравствуйте, CreatorCray, Вы писали:

CC> I>А вот найди как плагин, что бы _на_панели_ фара был запущен тотал. Слабо ?


CC> Можно и задницей свистнуть, но зачем?

CC> Был плагин который на панели FAR просмотр картинок делал.

Угу-угу. Я пользуюсь, ибо очень пользительно и в архивах картинки видеть и по темп.панели оным просматривать

А еще, конечно, NamedFolders, уже поминавшиеся тут, рулят
avalon 1.0rc3 rev 363, zlib 1.2.3
Re[9]: Почему Delphi всё еще жив?!
От: hattab  
Дата: 19.10.10 20:27
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС> H>Ага-ага Покажи код работающий с WinAPI на примере функции GetWindowsDirectory.


НС>
НС> [DllImport("kernel32.dll", SetLastError=true, CharSet=CharSet.Auto)]
НС> static extern uint GetWindowsDirectory(StringBuilder lpBuffer, uint uSize);
НС>

НС> А в чем подвох?

Использование, а не декларация. Подвох в том, что ганджустас говорит о каком-то, видимо только ему одному известном, недостатке при работе со строками в Delphi, в то время, как в .NET дела с этим обстоят не лучше, в смысле в Delphi все делается ровно также, только с меньшими затратами.
avalon 1.0rc3 rev 363, zlib 1.2.3
Re[15]: Почему Delphi всё еще жив?!
От: hattab  
Дата: 19.10.10 20:29
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС> H>Если людям нафиг не уперлись ни генерики, ни юникод


НС> То этим людям пора отправляться на пенсию, а не плодить говнокод.


Это не ответ. Кроме того, ничего военного в дженериках нет, а с юникодом можно преспокойно работать и на семерке
avalon 1.0rc3 rev 363, zlib 1.2.3
Re[14]: Почему Delphi всё еще жив?!
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 19.10.10 20:35
Оценка:
Здравствуйте, hattab, Вы писали:

H>Здравствуйте, gandjustas, Вы писали:


g>> Это говорит о несостоятельности новых версий.

g>> Почему при наличии delphi 2005 и выше, до сих пор на семерке сидят?

H>Если людям нафиг не уперлись ни генерики, ни юникод, ни многие другие плюшки нафиг им куда-то мигрировать? Лично для меня, все что младше 2006 уже умерло


Да твое личное мнение как всегда мало кого интересует. Большинство разработчиков в моем городе, которые до сих пор пишут на delphi, используют delphi 7.
В других городах по слухам картина такая же.
Re[15]: Почему Delphi всё еще жив?!
От: hattab  
Дата: 19.10.10 20:37
Оценка:
Здравствуйте, gandjustas, Вы писали:

g> g>> Это говорит о несостоятельности новых версий.

g> g>> Почему при наличии delphi 2005 и выше, до сих пор на семерке сидят?

g> H>Если людям нафиг не уперлись ни генерики, ни юникод, ни многие другие плюшки нафиг им куда-то мигрировать? Лично для меня, все что младше 2006 уже умерло


g> Да твое личное мнение как всегда мало кого интересует. Большинство разработчиков в моем городе, которые до сих пор пишут на delphi, используют delphi 7.

g> В других городах по слухам картина такая же.

Тебя послушать, так у тебя бюро статистики карманное Впрочем, на вопрос у тебя ответа нет Я ни чуть не сомневался.
avalon 1.0rc3 rev 363, zlib 1.2.3
Re[10]: Почему Delphi всё еще жив?!
От: Ночной Смотрящий Россия  
Дата: 19.10.10 20:39
Оценка:
Здравствуйте, hattab, Вы писали:

H>Использование, а не декларация.


Используется как обычно:
var buffer = new StringBuilder(MAX_PATH);
if (GetWindowsDirectory(buffer, MAX_PATH) == 0)
  throw new Win32Exception();


H>в смысле в Delphi все делается ровно также, только с меньшими затратами.


Приводи пример, посмотрим.
Re[11]: Почему Delphi всё еще жив?!
От: hattab  
Дата: 19.10.10 20:41
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС> H>Использование, а не декларация.


НС> Используется как обычно:

НС>
НС> var buffer = new StringBuilder(MAX_PATH);
НС> if (GetWindowsDirectory(buffer, MAX_PATH) == 0)
НС>   throw new Win32Exception();
НС>


НС> H>в смысле в Delphi все делается ровно также, только с меньшими затратами.


НС> Приводи пример, посмотрим.


 var s : string;

 SetLength(s, MAX_PATH);
 SetLength(s, GetWindowsDirectory(PChar(s), Length(s)));
avalon 1.0rc3 rev 363, zlib 1.2.3
Re[12]: Почему Delphi всё еще жив?!
От: Ночной Смотрящий Россия  
Дата: 19.10.10 20:44
Оценка:
Здравствуйте, hattab, Вы писали:

НС>> Приводи пример, посмотрим.


H>
H> var s : string;

H> SetLength(s, MAX_PATH);
H> SetLength(s, GetWindowsDirectory(PChar(s), Length(s)));
H>


1) Где описание функции?
2) Где обработка ошибок?
3) Даже в таком виде дельфовый вариант все же посложнее выглядит.
Re[8]: Почему Delphi всё еще жив?!
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 19.10.10 20:51
Оценка:
Здравствуйте, hattab, Вы писали:

H>Здравствуйте, gandjustas, Вы писали:


g>> g>> Щас заплачу... почему в .NET такие проблемы отсуствуют?

g>> g>> Там и COM и и передача между модулями нормально работает.
g>> g>> Наверное это таки недостаток делфи.

g>> H>Когда будешь передавать строку в нативный модуль, ясень пень заплачешь, куда же ты денешься.


g>> В .NET этого недостатка нету.


H>Ага-ага Покажи код работающий с WinAPI на примере функции GetWindowsDirectory. Потом я покажу на Delphi и ты расскажешь мне о его недостатках


Примерно так:
[DllImport("Kernel32.dll")]
private static extern int GetWindowsDirectory(StringBuilder buffer, int cbSize);

public static string GetWindowsDirectory()
{
    var sb = new StringBuilder();
    var size = GetWindowsDirectory(sb, sb.Capacity);
    if (size > sb.Capacity)
    {
        sb.Capacity = size;
        GetWindowsDirectory(sb, size);
    }
    return sb.ToString();
}
Re[13]: Почему Delphi всё еще жив?!
От: hattab  
Дата: 19.10.10 20:54
Оценка: -1
Здравствуйте, Ночной Смотрящий, Вы писали:

НС> НС>> Приводи пример, посмотрим.


НС> H>
НС> H> var s : string;

НС> H> SetLength(s, MAX_PATH);
НС> H> SetLength(s, GetWindowsDirectory(PChar(s), Length(s)));
НС> H>


НС> 1) Где описание функции?


В модуле Windows Хочешь посмотреть, на смотри:
function GetWindowsDirectory(lpBuffer: PWideChar; uSize: UINT): UINT; stdcall;


НС> 2) Где обработка ошибок?


Что там сложного If GetWindowDirectory(...) = 0 Then RaiseLastOSError;

НС> 3) Даже в таком виде дельфовый вариант все же посложнее выглядит.


Не смеши мои тапки. Либо в Delphi — только строка и все, либо в шарпе всякие стринг-билдеры. Да потом еще и в строку переводить.
avalon 1.0rc3 rev 363, zlib 1.2.3
Re[16]: Почему Delphi всё еще жив?!
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 19.10.10 20:56
Оценка:
Здравствуйте, hattab, Вы писали:

H>Здравствуйте, gandjustas, Вы писали:


g>> g>> Это говорит о несостоятельности новых версий.

g>> g>> Почему при наличии delphi 2005 и выше, до сих пор на семерке сидят?

g>> H>Если людям нафиг не уперлись ни генерики, ни юникод, ни многие другие плюшки нафиг им куда-то мигрировать? Лично для меня, все что младше 2006 уже умерло


g>> Да твое личное мнение как всегда мало кого интересует. Большинство разработчиков в моем городе, которые до сих пор пишут на delphi, используют delphi 7.

g>> В других городах по слухам картина такая же.

H>Тебя послушать, так у тебя бюро статистики карманное Впрочем, на вопрос у тебя ответа нет Я ни чуть не сомневался.


Вопрос твой крайне глуп по своей постановке. Большинство программистов пишущих на этом самом делфи 7 не знают что такое генерики и с трудом понимают что такое юникод.
Я думаю если им объяснить про генерики, то многие очень захотят их использовать, но вот в vcl их применить негде.
Re[9]: Почему Delphi всё еще жив?!
От: hattab  
Дата: 19.10.10 20:57
Оценка:
Здравствуйте, gandjustas, Вы писали:

g> Примерно так:

g>
g> [DllImport("Kernel32.dll")]
g> private static extern int GetWindowsDirectory(StringBuilder buffer, int cbSize);

g> public static string GetWindowsDirectory()
g> {
g>     var sb = new StringBuilder();
g>     var size = GetWindowsDirectory(sb, sb.Capacity);
g>     if (size > sb.Capacity)
g>     {
g>         sb.Capacity = size;
g>         GetWindowsDirectory(sb, size);
g>     }
g>     return sb.ToString();
g> }
g>


Сравни
Автор: hattab
Дата: 20.10.10
avalon 1.0rc3 rev 363, zlib 1.2.3
Re[14]: Почему Delphi всё еще жив?!
От: Ночной Смотрящий Россия  
Дата: 19.10.10 21:01
Оценка:
Здравствуйте, hattab, Вы писали:

НС>> 2) Где обработка ошибок?


H>Что там сложного If GetWindowDirectory(...) = 0 Then RaiseLastOSError;


Ишь какой хитрый. Ты полностью пример приводи.

НС>> 3) Даже в таком виде дельфовый вариант все же посложнее выглядит.


H>Не смеши мои тапки. Либо в Delphi — только строка и все, либо в шарпе всякие стринг-билдеры.


В шарпе StringBuilder это точно так же просто mutable строка.

H> Да потом еще и в строку переводить.


Смотря что ты потом с результатом делать будешь.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.