Avatar billede ice Nybegynder
20. juni 2001 - 19:09 Der er 10 kommentarer og
2 løsninger

Simulere en titellinje

Hej, jeg har lavet en form uden en titellinje. Jeg har gjort det fordi jeg synes den er grim. Jeg har lavet min egen baggrund, hvor der er tegnet en titellinje(en pæn en). Nu vil jeg bare gerne have at den funker(altså at man trykker og holder nede for at flytte på den.
Avatar billede abpdk Nybegynder
20. juni 2001 - 20:14 #1
Dette er den besværlige måde, håber den gir\' mening.

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
    procedure FormMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure FormMouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
  private
    { Private declarations }
    procedure Idle(Sender: TObject; var Done: Boolean);
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  mouse: boolean;
  mp: tpoint;

implementation

{$R *.DFM}

procedure TForm1.Idle(Sender: TObject; var Done: Boolean);
var
  p: TPoint;
begin
  if mouse then begin
    done:=false;
    GetCursorPos(p);
    form1.left:=p.x-mp.x;
    form1.top:=p.y-mp.y;
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Application.OnIdle:=Idle;
end;

procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  if y<10 then begin
    mouse:=true;
    mp.x:=x;
    mp.y:=y;
  end;
end;

procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  mouse:=false;
end;

end.

MVH
abpdk
Avatar billede zerohero Nybegynder
20. juni 2001 - 20:35 #2
Jeg har været ude for det samme problem... Prøv dette her (denne kode virker dog for HELE din form, da den er skrevet i FormMouseDown & FormMouseMove Procedure - men det kan du jo sagtens flytte til en hvilken som helst anden control\'s MouseDown & MouseMove Procedure)

var sx, sy : integer;
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
sx := x; sy := y;
end;

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin

if ssleft in sshift then begin
if x < sx-1 then left := x-(sx-left);
if x > sx+1 then left := x+(left-sx);
if y < sy-1 then top := y-(sy-top);
if y > sy+1 then top:= y+(top-sy); end;

end;

GOD FORNØJELSE!

ZeroHero
Avatar billede zerohero Nybegynder
20. juni 2001 - 20:38 #3
ups - i mousemove proceduren har jeg skrevet et \'s\' for meget linien skal se sådan ud:

begin

if ssleft in shift then begin...
Avatar billede easysoft_studios Nybegynder
21. juni 2001 - 22:19 #4
tsk, tsk

hvorfor opfinde den dybe tallerken to gange?

I den ting der skal fungere som title linje, indsættes koden på OnMouseDown:

begin
  ReleaseCapture;
  SendMessage(Handle, wm_SysCommand, $f012, 0);
end;

hvis title linjen er en del af et helt billede, bruges der bare et tomt TImage, der \"ligges\" oven på.


easysoft studios

Avatar billede abpdk Nybegynder
27. juni 2001 - 22:58 #5
ice>> Har du fundet en brugbar løsning?
Avatar billede easysoft_studios Nybegynder
02. juli 2001 - 21:43 #6
vi vil ha\' vores point, sgu!!
Avatar billede abpdk Nybegynder
10. juli 2001 - 13:57 #7
Man begynder at føle at man har spildt sin tid!!!!
Avatar billede abpdk Nybegynder
15. juli 2001 - 21:26 #8
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Avatar billede zerohero Nybegynder
16. juli 2001 - 11:46 #9
Eksperten burde have en funktion som tjekker spørgsmål og automatisk lukke dem, hvis de er blevet besvaret og ikke er blevet lukket af den oprettende spørger, efter en hvis tidsrum.
Avatar billede abpdk Nybegynder
16. juli 2001 - 14:46 #10
Nemlig!
Avatar billede ice Nybegynder
26. juli 2001 - 08:50 #11
Undskyld!!!!!!!!!!!!, jeg har været på ferie og har glemt alt om spørgsmålet. Jeg har ikke tjekket hvad der er bedst, men deler pointene. Håber i kan tage imod min undskyldning, det skal aldrig ske igen......
Avatar billede abpdk Nybegynder
26. juli 2001 - 14:22 #12
Undskyldning godtaget
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester