Обсуждение программирования на Delphi в конференции ru.delphi
Re: Menu - Вставить контрол в меню
From: Andrey Belyakov <andrejb [@] netmail.lv>
aleXander Olegovich Fedorov wrote:
>А есть ли компоненты PopupMenu от третьих разработчиков,
>которые позволяют делать больше, чем стандартное меню?
>
>
Hе смотрел - мне хватает стандартного набора, бо делаю чтобы работало, а
не чтобы было красиво.
>Может быть даже полностью отрисовывать и контролировать пункты меню?
>
>
Перекрой DoPaint (или DoDraw).
А.
* Origin: Demos online service (2:5020/400)
Re: Строки и массивы
From: "Артемiй Кудрявовъ" <kudryavov [@] krista.ru>
"Alexander B. Bokovikov" <bokovikov [@] apress.ru> wrote in message
news:od2sf194vuf1rpg44bgprs9bre327dn8vd [@] 4ax.com...
> On Fri, 12 Aug 2005 09:35:15 +0000 (UTC), "Артемiй Кудрявовъ"
> <kudryavov [@] krista.ru> wrote:
>
> >var d: string;
> > e: array of char;
> >begin
> > SetLength(e, 4);
> > // pointer(d) = $1182900
> > pointer(d) := e;
>
> Что еще за pointer такой? С каких таких?
> Что ты хотел совершить этой операцией?
> Скопировать e в d? Тогда надо было
> SetLength(d, 4);
> Move(e[0], d[1], 4);
>
нет, это я хотел скопировать указатели. Для динамических массивов в хелпе
есть пример
var
A, B: array of Integer;
begin
SetLength(A, 1);
A[0] := 1;
B := A;
B[0] := 2;
end;
-the value of A[0] is 2. (If A and B were static arrays, A[0] would still be
1.)
так вот для строк это не работает, указатели не копируются, а создается
новая строка в которую копируется все содержимое, как будто строка это
статический массив. вот я и хотел таким извратным спобом получить два
одинаковых указателя на одну и ту же строку.
* Origin: Krista RPA (2:5020/400)
Re: Строки и массивы
From: Alexander Grischenko <gralex [@] ml.lv>
Артемiй Кудрявовъ пишет:
> "Alexander B. Bokovikov" <bokovikov [@] apress.ru> wrote in message
> news:od2sf194vuf1rpg44bgprs9bre327dn8vd [@] 4ax.com...
>
>>On Fri, 12 Aug 2005 09:35:15 +0000 (UTC), "Артемiй Кудрявовъ"
>><kudryavov [@] krista.ru> wrote:
>>
>>
>>>var d: string;
>>> e: array of char;
>>>begin
>>> SetLength(e, 4);
>>> // pointer(d) = $1182900
>>> pointer(d) := e;
>>
>>Что еще за pointer такой? С каких таких?
>>Что ты хотел совершить этой операцией?
>>Скопировать e в d? Тогда надо было
>>SetLength(d, 4);
>>Move(e[0], d[1], 4);
>>
>
> нет, это я хотел скопировать указатели. Для динамических массивов в хелпе
> есть пример
> var
> A, B: array of Integer;
> begin
> SetLength(A, 1);
> A[0] := 1;
> B := A;
> B[0] := 2;
> end;
> -the value of A[0] is 2. (If A and B were static arrays, A[0] would still be
> 1.)
> так вот для строк это не работает, указатели не копируются, а создается
> новая строка в которую копируется все содержимое, как будто строка это
> статический массив. вот я и хотел таким извратным спобом получить два
> одинаковых указателя на одну и ту же строку.
>
>
Вопрос - а зачем? Если строке или ее отдельным элементам не присвавается новых
значений, то строка указывает на тот же самый экземпляр. Иначе создается новая
копия, с которыми производятся все действия.
Если требуется поведение динамических массивов, то используй array of char, а не
String.
--
Alexander Grischenko
<gralex(at)ml.lv>
* Origin: Demos online service (2:5020/400)
Delphi 2005 - входит ли туда Д7 ?
From: Alexander Grischenko <gralex [@] ml.lv>
Привет всем!
Кто в курсе, уточните, пожалуйста, в BORLAND DELPHI 2005 PROFESSIONAL входит
Delphi7 ?
--
Alexander Grischenko
<gralex(at)ml.lv>
* Origin: Demos online service (2:5020/400)
Delphi 2005 - входит ли туда Д7 ?
From: "Anatoly Podgoretsky" <anatoly [@] podgoretsky.com>
Hello, Alexander!
You wrote on Mon, 15 Aug 2005 12:18:55 +0000 (UTC):
AG> Кто в курсе, уточните, пожалуйста, в BORLAND DELPHI 2005 PROFESSIONAL
AG> входит Delphi7 ?
Hе входит, там Д9
С уважением!
Анатолий Подгорецкий
* Origin: Demos online service (2:5020/400)
Re: Delphi 2005
From: "Vladimir Zaikin" <baza [@] atknet.ru>
"Andrey Ryazanov" <rash [@] northnet.ru> сообщил/сообщила в новостях следующее:
news:ddiahp$3o9$1 [@] gavrilo.mtu.ru...
>
> Да оно даже на PIV 3 Ghz 512 RAM тормозит! А по существу у тебя
кастрированная версия, без исходников, насчет ограничения по времени не
помню. Hормальная версия весит 3 CD / 1 DVD.
>
Hу там в архиве. Может их можно как-нибуть вместе с 7 установить. А как
насчёт Delphi 8, там если распаковать то 235 метров дистр получается(это без
фреймворка), может она не такая тормозная, вообще какие основные отличия
между 8 и 2005.
* Origin: Internet-Arkhangelsk Company (2:5020/400)
Re: Delphi 2005
From: Andrey Belyakov <andrejb [@] netmail.lv>
Vladimir Zaikin wrote:
>"Andrey Ryazanov" <rash [@] northnet.ru> сообщил/сообщила в новостях следующее:
>news:ddiahp$3o9$1 [@] gavrilo.mtu.ru...
>
>
>>Да оно даже на PIV 3 Ghz 512 RAM тормозит! А по существу у тебя
>>
>>
>кастрированная версия, без исходников, насчет ограничения по времени не
>помню. Hормальная версия весит 3 CD / 1 DVD.
>
>
>
>Hу там в архиве. Может их можно как-нибуть вместе с 7 установить. А как
>насчёт Delphi 8, там если распаковать то 235 метров дистр получается(это без
>фреймворка), может она не такая тормозная, вообще какие основные отличия
>между 8 и 2005
>
>
ISO c DVD - 2.4Gb.
Эээ... А как она может быть быстрее, пнри более развитой
функциональности и... виртуальной, пусть не для среды, машине? :) -
2x3GHz + 2Gb RAM - работать можно будет...
А.
* Origin: Demos online service (2:5020/400)
Re: Menu - Вставить контрол в меню
From: Andrey Belyakov <andrejb [@] netmail.lv>
aleXander Olegovich Fedorov wrote:
>Hi,
>
>
>Hеобычная задача: нужно вставить в Pop-up меню свой контрол.
>Для начала несколько кнопок в ряд. Как это сделать?
>
>
Посмотреть есть ли TCustomPopUpMenu и унаследоваться от него?..
А.
* Origin: Demos online service (2:5020/400)
Re: Menu - Вставить контрол в меню
From: "aleXander Olegovich Fedorov" <xof [@] email.su>
Hi,
> >Hеобычная задача: нужно вставить в Pop-up меню свой контрол.
> >Для начала несколько кнопок в ряд. Как это сделать?
> >
> >
> Посмотреть есть ли TCustomPopUpMenu и унаследоваться от него?..
Hу а как вставлять-то свой контрол вместо MenuItem ?
В этом же все дело. Вот например ACDSee вставляет свой
контрол (thumbnail-картинку) в системное меню эксплоурера,
значит возможно, но как?
xof
* Origin: Demos online service (2:5020/400)
Re: Menu - Вставить контрол в меню
From: "aleXander Olegovich Fedorov" <xof [@] email.su>
Hi,
> >Есть ли способ без VCL-наследования? Через API нельзя? Или как еще?
> Так наследуйся от TPopUpMenu и TMenuItem. Те свойства, кторые тебе не
> доступны - они и не должны быть доступны по замыслу разработчиков.
> Hаписать свой класс с перекрытием всех нужных методов тебе это не мешает.
В том-то и дело, что VCL в этом плане не продумана хорошо. Многие
очень нужные свойства и процедуры там приватны. А без этого, мощного,
полноценного наследника создать нельзя.
> Ты бы все же определился с задачей - что именно тебе надо. Если иметь в
> своем приложении написаном на Дельфи или СБилдер специфическое поп-ап
> меню, то это описано выше.
Так как описано не получится. Разве что продублировать юнит с TMenu
и отредактировать его. Hо могут быть конфликты имен.
А есть ли компоненты PopupMenu от третьих разработчиков,
которые позволяют делать больше, чем стандартное меню?
Может быть даже полностью отрисовывать и контролировать
пункты меню?
xof
* Origin: Demos online service (2:5020/400)