Autor Beitrag
whitef
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 202
Erhaltene Danke: 1

Windows X
Delphi XE X
BeitragVerfasst: Di 12.01.10 01:20 
hallo,
ich hab in meinem projekt 2 forms.
die erste form ist das eigentliche programm (MainForm).
Um ein gewisse optik einzubauen habe ich mir gedacht eine Schrift als bestätigung nach einem button ein und ausblenden zu lassen (Fade in, Fade out).
Um diesen Effekt hinzubekommen habe ich eine 2. Form genommen, mittels AlphaBlend und TransparentColor und einem Timer habe ich diesen Fade in, Fade out Effekt hinbekommen. Diese Form habe ich passend an die position auf der ersten Form geschoben.

Problem hierbei ist nun:
Wenn ich die MainForm mittels der Titelleiste bewege, dann...
1. verschwindet der Fade-In Effekt von der MainForm (wird als Form2.show aufgerufen - kein wunder^^)
2. bewegt sich die Schrift also auch die 2. Form nicht mit der ersten. (klebt sozusagen am desktop)

Zur Problemlösung könnte ich immernoch ein Bild als Titelleiste einfügen und dies mittels MouseDown bewegen
(ReleaseCapture;MainForm.Perform(WM_SYSCOMMAND, SC_DRAGMOVE, 0);) Nur so als Denkanstoss.

Ich bin mittlerweile ein wenig überfragt.


Moderiert von user profile iconNarses: Topic aus VisualCLX (Component Library for Cross Platform) verschoben am Di 12.01.2010 um 10:27
Bergmann89
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1742
Erhaltene Danke: 72

Win7 x64, Ubuntu 11.10
Delphi 7 Personal, Lazarus/FPC 2.2.4, C, C++, C# (Visual Studio 2010), PHP, Java (Netbeans, Eclipse)
BeitragVerfasst: Di 12.01.10 02:42 
Hey,

zu 1.: Form2.FormStyle := fsStayOnTop;
zu 2.: Da du das ja sicher mit nem Timer ein und ausblendest, musst du einfach gucken ob sich die Form1-Position geändert hat. Wenn ja, dann Bewege die Form2 hinterher...

€: oder noch besser:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
  TForm1 = class(TForm)
    procedure FormShow(Sender: TObject);
  private
    procedure WMMove(var Message: TMessage) ; message WM_MOVE;
  public
    { Public-Deklarationen }
  end;

procedure TForm1.WMMove(var Message: TMessage);
begin
  if Assigned(Form2) then begin
    Form2.Top  := Form1.Top;
    Form2.Left := Form1.Left + Form1.Width;
  end;
end;


MfG Bergmann
Einloggen, um Attachments anzusehen!
_________________
Ich weiß nicht viel, lern aber dafür umso schneller^^
whitef Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 202
Erhaltene Danke: 1

Windows X
Delphi XE X
BeitragVerfasst: Di 12.01.10 12:08 
Ajo, das klappt wunderbar!!

Vielen Dank!


:CLOSED: