Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Delphi

Модерирует : ShIvADeSt

ShIvADeSt (20-04-2006 01:53): http://forum.ru-board.com/topic.cgi?forum=33&topic=6679#1  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102

   

ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mainstream

Цитата:
Если в двух словах, то мне нужен компонент-наследник, чего-нибудь из TWinControl  с прозрачной канвой.

А ыт возьми у них реализацию метода Paint и сделай аналогичную для WinControl.

----------
И создал Бог женщину... Существо получилось злобное, но забавное...

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 06:39 03-03-2006
mainstream



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
MrZeRo
Я немного не так выразился, конечно же сообщения от мыши они получают, просто если делать потомка TGraphicControl то вот этот код не работает:

Код:
Perform(WM_SYSCOMMAND, SC_MOVE+2,0)

т.е. либо делать потомка TWinControl с прозрачной канвой(что пока так и не получилось), либо потомка TGraphicControl, но нужен аналог вышеприведенного кода, который будет работать.

Цитата:
 
Вообще, есть такая функция  
The SetLayeredWindowAttributes function sets the opacity and transparency color key of a layered window.  
 

Это не то совсем, мне не нужно делать полупрозрачным окно целиком.
 
2makbeth

Цитата:
Можно попробовать переопределить WM_ERASEBKGND:

не проканало.
 
2ShIvADeSt

Цитата:
А ыт возьми у них реализацию метода Paint и сделай аналогичную для WinControl.

Паинт я переопределил, но дело в том что канва не прозрачна.
Наверно всеже проше сделать потомка TGraphicControl и закодить выше указанный код подругому, но как?

Всего записей: 66 | Зарегистр. 10-04-2003 | Отправлено: 10:46 03-03-2006
MrZeRo



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mainstream
Непонятно, какая связь кода
Цитата:
Perform(WM_SYSCOMMAND, SC_MOVE+2,0)
с прозрачностью окна.
Константы со значением SC_MOVE+2 для события WM_SYSCOMMAND вообще нет, это что-то недокументированное?
Опиши подробнее, какая функциональность требуется.

----------
... не это главное ...

Всего записей: 832 | Зарегистр. 30-01-2002 | Отправлено: 11:10 03-03-2006
mainstream



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
MrZeRo
Требуется контрол который можно в рантайме двигать  и ресайзить мышой плюс ковсему он должен быть прозрачным. Например в паинте нарисовал окружность, и её можно будет двагать по форме и все что под окружностью должно быть видно.
А этот код мне посоветовал gpi еще на 77 стр. Использую его для таскания контрола мышой:

Код:
 
procedure TMyPanel.MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
inherited MouseDown(Button, Shift, X, Y);
ReleaseCapture;
   if(Button=mbLeft)then Perform(WM_SYSCOMMAND, SC_MOVE+2,0)
end;
 

Всего записей: 66 | Зарегистр. 10-04-2003 | Отправлено: 13:53 03-03-2006
MrZeRo



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mainstream
Мне кажется, не получится то, что ты хочешь. По крайней мере, это будет не TWinControl. Оконным должен быть контрол, на котором рисуются объекты, и он должен обрабатывать все клавиши и нажатия мышью, в ее оконной процедуре должны отрисовываться все элементы. Я заглянул в исходники FastReport, у них дизайнер сделан в таком духе.

----------
... не это главное ...

Всего записей: 832 | Зарегистр. 30-01-2002 | Отправлено: 15:06 03-03-2006
mainstream



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Пусть будет не TWinControl, а как тогда его таскать и ресайзить?

Всего записей: 66 | Зарегистр. 10-04-2003 | Отправлено: 16:17 03-03-2006
volax



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Сорри, не туда написал...

Всего записей: 205 | Зарегистр. 19-05-2004 | Отправлено: 18:15 03-03-2006 | Исправлено: volax, 18:15 03-03-2006
makbeth

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mainstream

Цитата:
...Использую его для таскания контрола мышой...

а смысл испльзования Perform и вообще сообщений в данном случае? Не проще ли сразу вызвать метод перемещения (Left:=Left + 2, например)? Фактически Perform вызывает процедуру WindowProc контрола, а та - обработчик нужного сообщения, НЕ помещая сообщения в очередь.
Вот можно посмотреть исходники Size components. Вроде то что нужно.

Всего записей: 241 | Зарегистр. 08-12-2004 | Отправлено: 06:32 06-03-2006
YuRRiX

Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Подскажите пожалуйста как в делфях отлавить момент подключения стороннего юзверя к NT системе, учетную запись с которой он пытается войти в систему и его IP?

Всего записей: 31 | Зарегистр. 07-02-2006 | Отправлено: 11:36 06-03-2006
MrZeRo



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mainstream

Цитата:
Пусть будет не TWinControl, а как тогда его таскать и ресайзить?

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

----------
... не это главное ...

Всего записей: 832 | Зарегистр. 30-01-2002 | Отправлено: 12:48 06-03-2006 | Исправлено: MrZeRo, 12:51 06-03-2006
YFred



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Как разбить страницу на колонки в Ворде (работаю через OLE)?

Всего записей: 211 | Зарегистр. 03-03-2005 | Отправлено: 15:02 06-03-2006
RostY



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
.PageSetup.TextColumns.Add Width:=CentimetersToPoints(4.83),  
         Spacing:=CentimetersToPoints(1.25), EvenlySpaced:=False
 
Я когда делаю что-то з вордом через ОЛЕ, то создаю макрос, делаю что надо средствами ворда, а потом смотрю сгенерированный VB-код и делаю приблизительно то же из Delphi

Всего записей: 387 | Зарегистр. 11-01-2006 | Отправлено: 15:16 06-03-2006 | Исправлено: RostY, 15:19 06-03-2006
YFred



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
RostY

Цитата:
смотрю сгенерированный VB-код

Я тоже так делаю, но не понимаю как переделать под Delphi. Если не трудно напиши как должно быть в Ворде чтобы сделать 2 колонки.

Всего записей: 211 | Зарегистр. 03-03-2005 | Отправлено: 15:36 06-03-2006
RostY



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
YFred
 
procedure TForm1.Button1Click(Sender: TObject);
var
  Word: Variant;
begin
  Word := CreateOleObject('Word.Application');
  Word.Visible := 1;
  Word.Documents.Add;
  Word.ActiveDocument.PageSetup.TextColumns.SetCount(2);
end;
 
 
Добавлено:
р.s. Бывает что и по коду непонятно - тогда жму Ф1 и читаю:
 
SetCount Method
"Arranges text into the specified number of text columns.
Note   You can also use the Add method of the TextColumns object to add a single column to the TextColumns collection.
 
Syntax
 
expression.SetCount(NumColumns)
 
expression   Required. An expression that returns a TextColumns object.
 
NumColumns   Required Long. The number of columns the text is to be arranged into.

Всего записей: 387 | Зарегистр. 11-01-2006 | Отправлено: 17:44 06-03-2006
Vitus_Bering



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Как узнать установлен ли определенный шрифт в системе?
Если не установлен, то как установить?

Всего записей: 936 | Зарегистр. 30-09-2005 | Отправлено: 10:27 07-03-2006
makbeth

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Как узнать установлен ли определенный шрифт в системе?

1. Screen.Fonts типа TStrings содержит список установленных в системе шрифтов.
2. С помощью WinAPI: функция EnumFontFamilies.

Цитата:
Если не установлен, то как установить?

С помощью WinAPI: функции AddFontResource и AddFontResourceEx и иже с ними...
Подробности можно найти в MSDN.

Всего записей: 241 | Зарегистр. 08-12-2004 | Отправлено: 10:53 07-03-2006
Vitus_Bering



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
makbeth, спасибо.

Всего записей: 936 | Зарегистр. 30-09-2005 | Отправлено: 11:37 07-03-2006
YFred



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Еще вопрос по Word'у вставляю таблицу (16,4) надо обвести не по одной ячейки, а допустим первые 8 в первом столбце, и остальные 8. Как сделать? Надеюсь вопрос понятен.

Всего записей: 211 | Зарегистр. 03-03-2005 | Отправлено: 15:09 07-03-2006
dyr farot

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
функция Range("_верхний_левый_:_нижний_правый_")

Всего записей: 697 | Зарегистр. 03-08-2004 | Отправлено: 15:23 07-03-2006
YFred



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
dyr farot
Чо-то не получается, если можно по подробнее.

Всего записей: 211 | Зарегистр. 03-03-2005 | Отправлено: 15:33 07-03-2006
   

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Delphi
ShIvADeSt (20-04-2006 01:53): http://forum.ru-board.com/topic.cgi?forum=33&topic=6679#1


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2025

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru