Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на Delphi


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Delphi

Выпуск № 576
от 29.08.2006, 11:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 365, Экспертов: 53
В номере:Вопросов: 3, Ответов: 5


Вопрос № 53009: Здравствуйте, эксперты! Вопрос такого типа. Есть на форме компонет TPanel, например. Есть отдельно dll-ка (допустим это будет плагин), которая имеет функцию DrawMyComponents. Как мне сделать так, что эта функция могла свои компоненты...
Вопрос № 53037: Здравствуйте, уважаемые эксперты! Я недавно начала работать в Delphi. У меня есть две формы. Первая форма предназначена для регистрации пользователя. Мне нужно чтобы переменные первой формы были доступны при работе со второй формой. Имя пользователя ...
Вопрос № 53064: Как поместить в переменную типа TShortCut (который суть псевдоним типа Word) собственную комбинацию клавиш ПРОГРАММНО. Особенно интересно поместить туда комбинацию вроде "Ctrl+стрелка влево/вправо/вверх/вниз/page Up/page down/Home/End". Спа...

Вопрос № 53.009
Здравствуйте, эксперты!

Вопрос такого типа.
Есть на форме компонет TPanel, например. Есть отдельно dll-ка (допустим это будет плагин), которая имеет функцию DrawMyComponents.
Как мне сделать так, что эта функция могла свои компоненты разместить на TPanel главного приложения? Какие необходимые параметры нужно передать функции?
Отправлен: 23.08.2006, 14:20
Вопрос задал: TR da Alien (статус: 1-ый класс)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Mexes
Здравствуйте, TR da Alien!
Если передать параметром Panel:TPanel, то для создания контролы на ней можно создавать так:
...
Control:=TControl.Create(Panel); //TLabel, TButton, TCheckBox и т. д.
Control.Parent:=Panel; //Размещаем на панели
...

Не знаю специфики проекта, но установив владельца равным Panel (TControl.Create(Panel)), компонент будет уничтожаться с уничтожением панели.
Ответ отправил: Mexes (статус: 2-ой класс)
Ответ отправлен: 23.08.2006, 14:35
Оценка за ответ: 2
Комментарий оценки:
А как корректно это сделать из библиотеки? Есть рабочий пример?

Отвечает: Татьяна
Здравствуйте, TR da Alien!
В принципе достаточно передавать только handle панели, тогда чтобы расположить элементы на панели, достаточно просто задать этим элементам родителя,
setParent(elementhandle,panelhandle);
это апи, т.е. находится она в модуле windows

Однако, есть нюанс, т.е. например не будет работать свойство autosize панели и некоторые другие.
Это происходит из-за того, что панель не будет видеть их как дочерние контролы.
Но если вам надо только расположить, однозначно handle достаточно


---------
Возможно все. И ничего возможно тоже.
Ответ отправила: Татьяна (статус: Студент)
Ответ отправлен: 23.08.2006, 20:48
Оценка за ответ: 4
Комментарий оценки:
Спасибо.
Но все равно у меня не получается заставить их корректно работать из длл. :(


Вопрос № 53.037
Здравствуйте, уважаемые эксперты! Я недавно начала работать в Delphi. У меня есть две формы. Первая форма предназначена для регистрации пользователя. Мне нужно чтобы переменные первой формы были доступны при работе со второй формой. Имя пользователя при регистрации заносится в тип User, который объявлен и для первой и для второй формы. Когда пользователь вводит свое имя в первой форме оно записывается в поле User.Name, а когда я начинаю работать во второй форме с этим типом, то поле User.Name пустое. Почему?
Отправлен: 23.08.2006, 16:33
Вопрос задала: KInika (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Coupler
Здравствуйте, KInika!
Объявите переменную типа user в секции public 1 формы и вызывайте ее из 2 формы примерно так: form1.user1.name
Ответ отправил: Coupler (статус: Студент)
Ответ отправлен: 23.08.2006, 17:20
Оценка за ответ: 5

Отвечает: DeVampir
Здравствуйте, KInika!
Что значит "заносится в тип User"? Данные должны храниться в переменных! Для этого достаточно описать тип только в одной форме и обращаться к переменной этого типа через имя нужной формы. Т.е. если у вас форма регистрации называется RegDialog, то обращаться к нужным данным можно так RegDialog.User.Name Естественно переменная с данными будет доступна только тогда, когда форма существует
Удачи!
---------
Нам будет трудно - это терпимо! (с) М. Горшенев
Ответ отправил: DeVampir (статус: 2-ой класс)
Ответ отправлен: 24.08.2006, 06:43
Оценка за ответ: 4


Вопрос № 53.064
Как поместить в переменную типа TShortCut (который суть псевдоним типа Word) собственную комбинацию клавиш ПРОГРАММНО. Особенно интересно поместить туда комбинацию вроде "Ctrl+стрелка влево/вправо/вверх/вниз/page Up/page down/Home/End". Спасибо!
Отправлен: 23.08.2006, 20:27
Вопрос задал: Валерий Кравцов (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Mexes
Здравствуйте, Валерий Кравцов!
Через свойство ShortCut и одноименную функцию. Например, Ctrl+Вверх вот так:
Cmd.Shortcut:=ShortCut(VK_UP,[ssCtrl]);

Первый параметр функции - код клавиши (word), второй - множество типа TShiftState, в котором указать необходимые нажатые клавиши Shift, Alt, Ctrl или кнопки мыши (вот все возможные элементы: ssShift, ssAlt, ssCtrl, ssLeft, ssRight, ssMiddle, ssDouble).
Ответ отправил: Mexes (статус: 2-ой класс)
Ответ отправлен: 23.08.2006, 21:02


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.35 от 27.07.2006
Яндекс Rambler's Top100

В избранное