Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.10.21;
Скачать: CL | DM;

Вниз

Плавающие панели как в Photoshop   Найти похожие ветки 

 
tio   (2007-08-09 13:30) [0]

Уважаемые мастера, можно ли как-нибудь обойти
проблему с фокусом плавающей формы для MDI.
Для не MDI с CreateParams все работает, нужно сделать как в Photoshope.
Кто может помочь.
Заранее спасиюо.


 
Юрий Зотов ©   (2007-08-09 23:19) [1]

ЭЭЭ... можно чуть подробнее?


 
{RASkov} ©   (2007-08-10 01:53) [2]

Может быть что-нибудь вот так:

DFM:
object Form1: TForm1
 Left = 192
 Top = 114
 AutoScroll = False
 Caption = "Form1"
 ClientHeight = 390
 ClientWidth = 709
 Color = clBtnFace
 Font.Charset = DEFAULT_CHARSET
 Font.Color = clWindowText
 Font.Height = -11
 Font.Name = "MS Sans Serif"
 Font.Style = []
 OldCreateOrder = False
 Position = poDefault
 Visible = True
 PixelsPerInch = 96
 TextHeight = 13
 object Panel1: TPanel
   Left = 8
   Top = 52
   Width = 185
   Height = 89
   TabOrder = 0
   object Label1: TLabel
     Left = 1
     Top = 1
     Width = 183
     Height = 13
     Align = alTop
     Alignment = taCenter
     Caption = "Ieaaa?uay iaiaeu"
     Color = clHighlight
     ParentColor = False
     OnMouseDown = Label1MouseDown
   end
   object SpeedButton1: TSpeedButton
     Left = 12
     Top = 56
     Width = 23
     Height = 22
   end
   object CheckBox1: TCheckBox
     Left = 12
     Top = 28
     Width = 97
     Height = 17
     Caption = "CheckBox1"
     TabOrder = 0
   end
   object Edit1: TEdit
     Left = 52
     Top = 56
     Width = 121
     Height = 21
     TabOrder = 1
     Text = "Edit1"
   end
 end
 object Panel2: TPanel
   Left = 12
   Top = 144
   Width = 185
   Height = 137
   TabOrder = 1
   object Label2: TLabel
     Left = 1
     Top = 1
     Width = 183
     Height = 13
     Align = alTop
     Alignment = taCenter
     Caption = "Ieaaa?uay iaiaeu"
     Color = clHighlight
     ParentColor = False
     OnMouseDown = Label1MouseDown
   end
   object ComboBox1: TComboBox
     Left = 20
     Top = 24
     Width = 145
     Height = 21
     ItemHeight = 13
     TabOrder = 0
     Text = "ComboBox1"
   end
   object ProgressBar1: TProgressBar
     Left = 16
     Top = 100
     Width = 150
     Height = 17
     Position = 30
     TabOrder = 1
   end
   object TrackBar1: TTrackBar
     Left = 12
     Top = 48
     Width = 157
     Height = 45
     Position = 5
     TabOrder = 2
   end
 end
 object Panel3: TPanel
   Left = 0
   Top = 0
   Width = 709
   Height = 41
   Align = alTop
   Caption = "Panel3"
   TabOrder = 2
 end
end

PAS
unit Unit1;
interface
uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls, ComCtrls, Buttons, ExtCtrls;

type
 TForm1 = class(TForm)
   Panel1: TPanel;
   Label1: TLabel;
   CheckBox1: TCheckBox;
   SpeedButton1: TSpeedButton;
   Edit1: TEdit;
   Panel2: TPanel;
   Label2: TLabel;
   Panel3: TPanel;
   ComboBox1: TComboBox;
   ProgressBar1: TProgressBar;
   TrackBar1: TTrackBar;
   procedure Label1MouseDown(Sender: TObject; Button: TMouseButton;
     Shift: TShiftState; X, Y: Integer);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Label1MouseDown(Sender: TObject; Button: TMouseButton;
 Shift: TShiftState; X, Y: Integer);
begin
 (Sender as TControl).Parent.BringToFront;
 if Button=mbLeft then begin
  ReleaseCapture; (Sender as TControl).Parent.Perform(WM_SYSCOMMAND, $F012, 0);
 end;
end;

end.

Правда это не MDI пример, но суть "плавующих панелей" одна.... Можно и Snap организовать и Docking....
Врочем [1] +1 т.е. разъяснение не помешает....


 
Германн ©   (2007-08-10 02:08) [3]


> Врочем [1] +1 т.е. разъяснение не помешает....

А зачем тогда нужно было "захламлять" форум? Он ведь не резиновый!

Саш. Твоё рвение меня радует. Но найди у себя "концевой выключатель"! :)


 
{RASkov} ©   (2007-08-10 02:30) [4]

> Он ведь не резиновый!

А что творится в "прочие"... или как раз для него и не хватает? :)

> найди у себя "концевой выключатель"!

Вот как раз там("прочие") он у меня почему-то работает :)
Собственно..... немного согласен, нужно и придерживаться... иногда.)


 
Германн ©   (2007-08-10 02:44) [5]


> {RASkov} ©   (10.08.07 02:30) [4]
>
> > Он ведь не резиновый!
>
> А что творится в "прочие"... или как раз для него и не хватает?
>  :)
>

На то есть McSimm.


> Собственно..... немного согласен, нужно и придерживаться.
> .. иногда.)
>

Угу. Не нужно давать "широкие" ответы на неясные вопросы. Себе же хуже, как правило.


 
$FF00FF   (2007-08-10 08:17) [6]

Удалено модератором
Примечание: offtop


 
{RASkov} ©   (2007-08-10 11:47) [7]

> [6] $FF00FF   (10.08.07 08:17)
> вопрос непонятен,и - второй пост КОД!!!

Дык без четкого вопроса код легче всего дать :о)
Тем более кода в данном случае полторы строчки, а остольное просто ресурс формы(dfm) и целиком Unit, т.е. практически вся программа целиком )

> вопрос предельно чётко и ясно сформулирован, указано, в
> чём проблема,и- автора мурыжат тупыми вопросами и указаниями

:) Здесь от многого зависит ответ.... и это не так просто, как дать "примерный" код....


 
Romkin ©   (2007-08-10 11:59) [8]

Просто делаешь форму без заголовка. В старых версиях фотошопа, если не ошибаюсь, все заголовки просто ручками прорисованы, они не системные



Страницы: 1 вся ветка

Текущий архив: 2007.10.21;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.02 c
2-1190723682
smak
2007-09-25 16:34
2007.10.21
Как заставить прогу реагировать на события при обр. запроса


11-1174071703
AnalogXP
2007-03-16 22:01
2007.10.21
Нужна маленькая программа


2-1190971347
Gigik
2007-09-28 13:22
2007.10.21
Двоичные файлы


2-1190672814
Servelat
2007-09-25 02:26
2007.10.21
Цепочки битов


15-1190265156
vrem
2007-09-20 09:12
2007.10.21
что бы в досе не гудел!