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

» Вопросы по Delphi (версии 2009, 2010 Weaver, 2011 Fulcrum)

Автор: Frodo_Torbins
Дата сообщения: 16.03.2011 17:55
snike555
Скачайте себе DRKB. Там найдете статьи "Как вывести результат работы консоли в Memo?" и "Имена сетевого адаптера, системное имя устройства и описание". Я надеюсь работать с файлами вы умеете, хотя это там тоже есть.
Автор: KSJJFS
Дата сообщения: 16.03.2011 18:25
В чём различие файлов brc32.exe и brcc32.exe ?
Автор: V1s1ter
Дата сообщения: 16.03.2011 18:52
regkz

Цитата:
а вот на 7 что-то как-то не очень работает

У меня как раз Windows7x32 и Windows7x64, обе аэро. А под Windows7x64 еще виртуал XP и все чики-чики.

Ludens

Цитата:
Типа, заголовок неактивного окноа так часто мигает, что окно выглядит активным?

Как раз наоборот мигает один раз на сотни часов.


Цитата:
Я склонялся к тому, что единственное решение тут - взять в родители неоконный контрол (TGraphicControl вместо TWinControl).

Есть функция WinAPI DrawCaption (по моему так), рисует заголовок окна. Но не понимает тем и т.п. Я бы убрал заголовок окна вообще и нарисовал бы свой фирменный (все на стандартной форме, как у тебя) за который тягал бы пользователь. И появились бы у тебя TooWindow все одинаковые, всегда активные, всегда ...
НО если учесть
Цитата:
DevExpress - слишком тяжелый для меня инструмент. Я предпочитаю Raize Components и не хочу их смешивать с Девами ради этой одной, хотя и достойной задачи.

то НАСТОЯТЕЛЬНО рекомендую Automated Docking Library, только докинг, но какой!!!


Добавлено:
regkz
Я писал, что код еще из ТОЙ серии... но всеже может перепутал содержимое Актив и Инактив событий?
Автор: Ludens
Дата сообщения: 16.03.2011 21:55
V1s1ter

Цитата:
Как раз наоборот мигает один раз на сотни часов.

Ну да, именно так. Удостовериться бы только в универсальности этого решения - для тем, висты, 7 и т. п.

Цитата:
Я бы убрал заголовок окна вообще и нарисовал бы свой фирменный

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

Цитата:
НАСТОЯТЕЛЬНО рекомендую Automated Docking Library, только докинг, но какой!!!

О, вот это шикарная идея! Действительно, должны же существовать легкие библиотеки, заточенные под одну только задачу правильного докинга. Вот только рекомендованная тобой Automated Docking Library, насколько я угуглил, больше не поддерживается производителем. В частности, версии под XE нет и не будет.
Может, существует еще какой-нибудь хороший и при этом «живой» аналог? В любом случае, огромное спасибо тебе за идеи и рекомендации.

Добавлено:
Вот, кстати, попалось одно интересное решение:
http://www.delphipages.com/comp/floatingwindow-4977.html
В нем реализована достаточно правильная плавающая панель, но вот только почему-то ее невозможно перетащить за пределы клиентской области главного окна. Я, по причине плохого знания API, не смог разобраться: это имманентная фича или ее можно убрать?
V1s1ter, ты не мог бы взглянуть и ответить на этот вопрос?


Добавлено:
А, не, вроде сам разобрался. Ответ: нельзя.
Автор: V1s1ter
Дата сообщения: 17.03.2011 01:55
Ludens
Моя Твоя непонимать....
Пишешь

Цитата:
Не нравятся мне никакие модификации стандартного интерфейса,

И тут же

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

Дык это и есть собстенное рисование... - то что тебе не нравится...
И еще

Цитата:
вроде сам разобрался. Ответ: нельзя.

Плохо разобрался - можно, причем несколькими способами. Например расширение зоны обрезания (ExcludeClipRect(DC, ...) или задание свойств окна, ведь TFloatingWindow наследник от TCustomPanel-TCustomControl-TWinControl, а обычная форма TForm наследник от TCustomForm-TScrollingWinControl-TWinControl. Тоесть все наследуются от TWinControl, так почему нельзя заставить TFloatingWindow рисоватся где попало если Tform можно?
В общем сравнивай эти две ветки и набирайся знаний, а если не хочешь, то бери нормальный компонент QA (работает он под XE) и ..., а если не хочешь то бери обычный Tform скрывай его родной зоголовок и рисуй "правильный" как в TFloatingWindow, а если не хочешь то бери "мою типа мигалку". Ая закругляюсь с этой темой, спасибо за внимание.

Автор: spasius
Дата сообщения: 17.03.2011 05:06
упомянутый
Цитата:
Automated Docking Library
почти 1 в 1 выплывает в LMD DockPack. В последней версии он точно есть.
Автор: Ludens
Дата сообщения: 17.03.2011 15:02
V1s1ter

Цитата:
Дык это и есть собстенное рисование... - то что тебе не нравится...

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

Цитата:
можно, причем несколькими способами

Это я тоже уже понял.

Цитата:
бери нормальный компонент QA

Не смог его найти нигде. Зато проникся к ToolBar2000. Он оказался прекрасен. Все проблемы решены, спасибо.
Автор: Ruslang
Дата сообщения: 17.03.2011 15:08
Перехожу с 2006 на 2010.
Если в 2006 нажать Ctrl+F, то выдается окно поиска, где есть вкладка Искать по всех файлах. А если нажать Ctrl+F в 2010, то появляется внизу возможность указать искомую фразу, но нет возможности искать по всем файлам проекта. Подскажите, может где дополнительные настройки есть для этого?
Автор: psa1974
Дата сообщения: 17.03.2011 16:58
Ruslang

Цитата:
А если нажать Ctrl+F в 2010, то появляется внизу возможность указать искомую фразу, но нет возможности искать по всем файлам проекта.

Вызов диалога поиска в файлах в Дельфи в 2010:
Ctrl+Shift+F или меню "Serch" -> "Find in Files"...
Автор: Ruslang
Дата сообщения: 18.03.2011 09:45
psa1974 понял, спасибо.
Еще с такой проблемой столкнулся - открываю свой проект, запускаю его, а основное окно студии становится одним сплошным серым полотном. Приходится сворачивать окно студии и разворачивать, тогда все восстанавливается. Как с этим бороться?
Автор: ppkp
Дата сообщения: 18.03.2011 14:38
Ruslang
Tools->Options->Check 'Minimize on run' box
Автор: data man
Дата сообщения: 20.03.2011 01:19
Ludens

Цитата:
Зато проникся к ToolBar2000. Он оказался прекрасен.

О, не то слово ! А с SpTBXLib он становится почти совершенством.
Релиз версии 2.4.5, правда, был больше года назад, но в SVN файлы новее, рекомендую. (svn.exe co svn://www.soft-gems.net/mustangpeak/SpTBXLib)
Автор: Ludens
Дата сообщения: 20.03.2011 01:48
data man

Цитата:
А с SpTBXLib он становится почти совершенством.

Да! Да!! Да!!! Абсолютно.
Я уже третий день вообще не понимаю, как я жил все эти годы без Toolbar2000 + SpTBXLib. И почему никто не надоумил, не подсказал? Почему до сих пор нет сайта фанатов этой гениальной разработки? Почему на руборде даже нет отдельной темы? Мне кажется, что те, кто, вроде меня, волей случая оказался посвящен в существование Toolbar2000 & SpTBXLib, просто скрывают это сокровенное знание от коллег, чтоб не сглазить. ;)

Цитата:
Релиз версии 2.4.5, правда, был больше года назад

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

Цитата:
в SVN файлы новее, рекомендую

К сожалению, ссылка на SVN с офсайта не работает. :(
Если у тебя есть какие-то более свежие файлы — не сочти за труд, поделись.
Автор: data man
Дата сообщения: 20.03.2011 01:57
Ludens

Цитата:
ссылка на SVN с офсайта не работает.

Извиняюсь, забыл, что браузером давно не просматривается. Зато svn checkout отлично работает, только что проверил.
Я, кстати, забираю весь MustangPeak svn checkout svn://www.soft-gems.net/MustangPeak "Delphi\MustangPeak"
Там ещё отличный EasyListView и VirtualShellTools2.0 и др. вкусности.
Автор: V1s1ter
Дата сообщения: 20.03.2011 02:09
Ludens

Цитата:
Почему до сих пор нет сайта фанатов этой гениальной разработки? Почему на руборде даже нет отдельной темы?

Потому, что никто не покупал - народ и забросил. А компонент очень даже исвестный. И нга руборде он отмечен http://forum.ru-board.com/topic.cgi?forum=33&topic=10740
Вы пройдитесь по http://www.torry.net/ может еще чего спрятанного откопаете
Автор: Ludens
Дата сообщения: 20.03.2011 03:53
data man

Цитата:
Зато svn checkout отлично работает

Скачал этим странным клиентом все, что смог найти. Действительно, есть несколько файлов, относящихся к SpTBXLib, которые на полгода свежее (сентябрь 2010) и чуть больше размером. В чем отличия — пока не въехал.
Автор: HeMet
Дата сообщения: 20.03.2011 11:09
Здравствуйте. Функция читает из файла (скомпилированный скрипт асмоподобного языка) строку.


Код:
function ExtractLabel(Stream: TStream): String;
var
str_buf: array of AnsiChar;
str_len: Cardinal;
ansi_str: AnsiString;
begin
Stream.Read(str_len, SizeOf(str_len));
SetLength(str_buf, str_len);
// полученный массив: последовательность ANSI-символов, последний символ #0
Stream.Read(str_buf[0], str_len);
ansi_str := AnsiString(str_buf);
Result := ansi_str; // всегда получаем пустую строку
end;
Автор: Frodo_Torbins
Дата сообщения: 20.03.2011 12:10
HeMet
Попробуйте прямо в ansi_str и читать, она от массива в этом плане ничем не отличается.
Автор: HeMet
Дата сообщения: 20.03.2011 16:43
Frodo_Torbins
Спасибо, этот вариант работает. Почему-то не подумал сразу использовать ansi-стоку в качестве буфера. Только вот поведение динамического массива в таких ситуациях мне по-прежнему не понятно. Почему на приведении типа (ansi -> юникод) теряются данные?
Автор: Frodo_Torbins
Дата сообщения: 20.03.2011 17:03
HeMet
Смотря что за данные. Вдруг у вас первым байтом #0 затесался?
Без конкретной демки гадать можно долго.
Автор: Eternal_Shield
Дата сообщения: 22.03.2011 21:03
HeMet
Frodo_Torbins
А чего там гадать то? Взятие указателя от статического и динамического массива без индекса даёт разный результат. В первом случае (статика) будет указатель на первый эл-т массива, во втором случае указатель будет указывать на служебные данные. Это основы основ. Без обид.

Поэтому правильный вариант выглядит так:

Код:
function ExtractLabel(Stream: TStream): String;
var
str_buf: array of AnsiChar;
str_len: Cardinal;
ansi_str: AnsiString;
begin
Stream.Read(str_len, SizeOf(str_len));
SetLength(str_buf, str_len);
Stream.Read(str_buf[0], str_len);
ansi_str := PAnsiChar(@str_buf[0]);
Result := ansi_str;
end;
Автор: Frodo_Torbins
Дата сообщения: 22.03.2011 21:43
Eternal_Shield
Да, точно. В случае с Stream.Read я это проверил, а с приведением типов не заметил.
В любом случае массив тут лишний, одной строки достаточно.
Автор: Ludens
Дата сообщения: 23.03.2011 02:29
Вопрос по встроенному редактору. В нем все фичи автоматизации ввода кода представляются мне полезными и как минимум не мешают. Кроме одной. При вводе цикла for... to... появляется заготовка из трех синеньких рамочек, пользу которой я так и не сумел осознать. Поэтому при ее появлении всякий раз мне приходится жать кнопку Esc. Это уже дошло до автоматизма. Я пытался отключить данную фичу в Options, но она почему-то отключается только вместе с другими фичами автоматизации ввода, которые мне отключать не хочется. Может, кто-то знает, как отключить только её?
Автор: V1s1ter
Дата сообщения: 23.03.2011 03:16
Ludens
Ну Esc жать не обязательно, рамочки можнот просто игнорировать. Если находится в рамочке и нажать Enter то переменная, та что в рамочке пропишится в секции var.

Добавлено:
Да, простите, что не ответил прямо на вопрос.
Автор: Eternal_Shield
Дата сообщения: 23.03.2011 09:33
Ludens
Надо в View -> Templates -> Delphi удалить все шаблоны для for'a и перезапустить студию. Так же, можете свои шаблончики сделать, можно довольно интересных результатов добиться

Frodo_Torbins

Цитата:
В любом случае массив тут лишний, одной строки достаточно.

Однозначно
Автор: Ludens
Дата сообщения: 23.03.2011 12:49
Eternal_Shield

Цитата:
можно довольно интересных результатов добиться

Действительно... Век живи... Спасибо.
Автор: Medium
Дата сообщения: 23.03.2011 14:42
Задавал вопрос в другой ветке, но там почти никто не откликнулся. И пока никак не удается найти эффективное решение.
Есть сервис, подключающийся к удаленному ftp-серверу и осуществляющий с ним обмен данными (скачивает обновления, загружает логи и т.д.).
Но появился локальный прокси-сервер, ограничивающий доступ к внешним FTP.

Подключение возможно (например, Total Commander без проблем подключается при указании типа прокси "HTTP-прокси с поддержкой FTP" или "HTTP CONNECT").
В моем же сервисе использовался компонент idFTP из Indy (10.5.8) под Delphi XE. Подключатся с таким типом прокси он не умеет.

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

Не проходите, плз, мимо. Заранее спасибо.
Автор: 0D0A
Дата сообщения: 23.03.2011 16:17
Medium
Когда-то использовал для этого HTTPort SDK. Не знаю насколько это проект жив сейчас, но может натолкнет. Вот тут вроде что-то написано.
Автор: Czechoslovak
Дата сообщения: 23.03.2011 17:29
Medium
Как не у меет если у idFTP есть настройка типа прокси fpcmHttpProxyWithFtp
Автор: Medium
Дата сообщения: 23.03.2011 17:47
Czechoslovak

Цитата:
Как не у меет если у idFTP есть настройка типа прокси fpcmHttpProxyWithFtp

Уже не один год разработчики обещают доделать этот тип прокси, пока в исходниках там лишь заглушка (модуль IdFTP.pas):

Код: fpcmHttpProxyWithFtp :
begin
{GET ftp://XXX:YYY@indy.nevrona.com/ HTTP/1.0
Host: indy.nevrona.com
User-Agent: Mozilla/4.0 (compatible; Wincmd; Windows NT)
Proxy-Authorization: Basic B64EncodedUserPass==
Connection: close}
raise EIdSocksServerCommandError.Create(RSSocksServerCommandError);
end;

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172

Предыдущая тема: Установка копоненты ZipTV


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