AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Bewegen von forms ohne Titlebar

Ein Thema von HaTe · begonnen am 3. Feb 2004 · letzter Beitrag vom 23. Jan 2009
 
HaTe

Registriert seit: 3. Feb 2004
Ort: Trier
14 Beiträge
 
Delphi 6 Enterprise
 
#1

Bewegen von forms ohne Titlebar

  Alt 3. Feb 2004, 14:42
hmmm, ka ob das hier hin gehört, glaub aber schon

also, hier is ma der gesammte code von meinem prog:

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs,menus, StdCtrls,shellapi, CoolTrayIcon;

type
  TForm1 = class(TForm)
    PopupMenu1: TPopupMenu;
    CoolTrayIcon1: TCoolTrayIcon;
    beenden1: TMenuItem;
    procedure FormCreate(Sender: TObject);
    procedure beenden1Click(Sender: TObject);
  private
    { Private declarations } 
  public
    {procedure HandleLBtnDn(var msg: TMessage); message WM_LBUTTONDOWN;} 
    procedure WMNCHitTest(var msg: TWMNCHitTest);
    procedure PopupMenuItemsClick(Sender: TObject);
  end;

var
  neuform:tform;
  Form1: TForm1;
  sl2:tstringlist;
implementation

{$R *.dfm} 

procedure TForm1.FormCreate(Sender: TObject);
var sl3:tstringlist;
    sl1:tstringlist;
    i,m:integer;
    pm:tpopupmenu;
    newitem:tmenuitem;
    bm:tbitmap;
    hwndOwner: HWnd;
begin

sl3:=tstringlist.create;
sl2:=tstringlist.Create;
sl1:=tstringlist.create;
sl1.loadfromfile('count.cnt');
for i:=1 to strtoint(sl1[0]) do
 begin
   sl3.loadfromfile('mens/pos'+inttostr(i)+'.txt');
   sl2.LoadFromFile('mens/'+inttostr(i)+'.txt');
   neuform:=tform.Create(form1);
     with neuform do
       begin
         bm:=tbitmap.create;
         bm.LoadFromFile('mens/'+inttostr(i)+'.bmp');
         name:='nform'+inttostr(i);
         top:=strtoint(sl3[1]);
         left:=strtoint(sl3[0]);
         borderstyle:=bsnone;
         height:=32;
         width:=32;
         pm:=tpopupmenu.create(self);
           with pm do
             for m :=0 to (sl2.Count div 2) -1 do
             begin
               NewItem := TMenuItem.Create(pm);
               Items.Add(NewItem);
               NewItem.Caption := sl2[m*2];
               NewItem.Tag := m;
               NewItem.OnClick := PopupMenuItemsClick;
               name:='pm'+inttostr(i);
             end;
         popupmenu:=pm;
         show;
         canvas.Draw(0,0,bm);
       end;
  end;
width:=0;
height:=0;
sl1.clear;
sl3.clear;
sl2.Clear;
hwndOwner := GetWindow(Handle, GW_OWNER);
ShowWindow(hwndOwner, SW_HIDE);
ShowWindowAsync(hwndOwner, SW_HIDE);
ShowWindowAsync(Self.Handle, SW_HIDE);
end;

procedure TForm1.PopupMenuItemsClick(Sender: TObject);
var x:tmenu;
begin
  x:=TMenuItem(Sender).GetParentMenu;
  sl2.LoadFromFile('mens/'+inttostr((x.componentindex div 2) - 1)+'.txt');
  with Sender as TMenuItem do
  begin
    ShellExecute(Handle, 'open',pchar(sl2[(tag*2+1)]) , nil, nil, SW_SHOW);
  end;
end;

procedure TForm1.WMNCHitTest(var msg: TWMNCHitTest);
begin
  inherited;
  if msg.Result = htClient then
    msg.Result := htCaption;
end;

procedure TForm1.beenden1Click(Sender: TObject);
begin
application.terminate;
end;

{procedure TForm1.HandleLBtnDn(var msg: TMessage);
begin
  Sendmessage(Self.Handle, WM_NCLBUTTONDOWN, HTCAPTION, msg.LParam);
end;}
 
end.
da die ganzen forms keine Titlebar haben möchte ich die procedure
Delphi-Quellcode:
procedure TForm1.WMNCHitTest(var msg: TWMNCHitTest);
begin
  inherited;
  if msg.Result = htClient then
    msg.Result := htCaption;
end;
verwenden um sie zu verschieben. Geht auch bei form1 das problem is allerdings das es ne procedure für form1 is, das/die ja von anfang an existiert. die neuen forms brauchen also nen aufruf dieses befehls , und dafür muss ich wissen was ich bei der zuweisung anstelle des
(var msg: TWMNCHitTest)
einsetzen muss, und da das das 1. prog is das ich bisher geschrieben hab was fast ganz aus zur laufzeit erstellten komponenten besteht und es auch das 1. mal is das ich sowas wie
WMNCHitTest(var msg: TWMNCHitTest); benutze is das msg-ding für mich n bissel verwirrend und ich steh son bischen aufm schlauch.

PS: Sry wegen dem Code, is nochn bischen Chaotisch und (vielleicht) n bischen lang fürn forum
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:47 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz