Техническая поддержка :

Современные решения

для защиты Windows программ

и восстановления исходного кода

Обсуждение программирования на Delphi в конференции ru.delphi


Re: Menu - Вставить контрол в меню

From: Andrey Belyakov

aleXander Olegovich Fedorov wrote:

>А есть ли компоненты PopupMenu от третьих разработчиков,
>которые позволяют делать больше, чем стандартное меню?
>
>
Hе смотрел - мне хватает стандартного набора, бо делаю чтобы работало, а
не чтобы было красиво.

>Может быть даже полностью отрисовывать и контролировать пункты меню?
>
>
Перекрой DoPaint (или DoDraw).

А.
* Origin: Demos online service (2:5020/400)


Re: Строки и массивы

From: "Артемiй Кудрявовъ"


"Alexander B. Bokovikov" wrote in message
news:od2sf194vuf1rpg44bgprs9bre327dn8vd [@] 4ax.com...
> On Fri, 12 Aug 2005 09:35:15 +0000 (UTC), "Артемiй Кудрявовъ"
> 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

Артемiй Кудрявовъ пишет:
> "Alexander B. Bokovikov" wrote in message
> news:od2sf194vuf1rpg44bgprs9bre327dn8vd [@] 4ax.com...
>
>>On Fri, 12 Aug 2005 09:35:15 +0000 (UTC), "Артемiй Кудрявовъ"
>> 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

* Origin: Demos online service (2:5020/400)


Delphi 2005 - входит ли туда Д7 ?

From: Alexander Grischenko

Привет всем!

Кто в курсе, уточните, пожалуйста, в BORLAND DELPHI 2005 PROFESSIONAL входит
Delphi7 ?

--
Alexander Grischenko

* Origin: Demos online service (2:5020/400)


Delphi 2005 - входит ли туда Д7 ?

From: "Anatoly Podgoretsky"

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"


"Andrey Ryazanov" сообщил/сообщила в новостях следующее:
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

Vladimir Zaikin wrote:

>"Andrey Ryazanov" сообщил/сообщила в новостях следующее:
>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

aleXander Olegovich Fedorov wrote:

>Hi,
>
>
>Hеобычная задача: нужно вставить в Pop-up меню свой контрол.
>Для начала несколько кнопок в ряд. Как это сделать?
>
>
Посмотреть есть ли TCustomPopUpMenu и унаследоваться от него?..

А.
* Origin: Demos online service (2:5020/400)


Re: Menu - Вставить контрол в меню

From: "aleXander Olegovich Fedorov"

Hi,

> >Hеобычная задача: нужно вставить в Pop-up меню свой контрол.
> >Для начала несколько кнопок в ряд. Как это сделать?
> >
> >
> Посмотреть есть ли TCustomPopUpMenu и унаследоваться от него?..

Hу а как вставлять-то свой контрол вместо MenuItem ?
В этом же все дело. Вот например ACDSee вставляет свой
контрол (thumbnail-картинку) в системное меню эксплоурера,
значит возможно, но как?


xof

* Origin: Demos online service (2:5020/400)


Re: Menu - Вставить контрол в меню

From: "aleXander Olegovich Fedorov"

Hi,

> >Есть ли способ без VCL-наследования? Через API нельзя? Или как еще?
> Так наследуйся от TPopUpMenu и TMenuItem. Те свойства, кторые тебе не
> доступны - они и не должны быть доступны по замыслу разработчиков.
> Hаписать свой класс с перекрытием всех нужных методов тебе это не мешает.

В том-то и дело, что VCL в этом плане не продумана хорошо. Многие
очень нужные свойства и процедуры там приватны. А без этого, мощного,
полноценного наследника создать нельзя.

> Ты бы все же определился с задачей - что именно тебе надо. Если иметь в
> своем приложении написаном на Дельфи или СБилдер специфическое поп-ап
> меню, то это описано выше.

Так как описано не получится. Разве что продублировать юнит с TMenu
и отредактировать его. Hо могут быть конфликты имен.

А есть ли компоненты PopupMenu от третьих разработчиков,
которые позволяют делать больше, чем стандартное меню?
Может быть даже полностью отрисовывать и контролировать
пункты меню?

xof

* Origin: Demos online service (2:5020/400)



Назад Содержание Вперед




Главная     Программы     Статьи     Разное     Форум     Контакты