Avatar billede master-lion Nybegynder
05. januar 2006 - 00:34 Der er 8 kommentarer og
1 løsning

Mouse over en Form & popup menu

Jeg har lavet en Top Menu (lidt hen af værktøjsline i bunden af windows), så der det det med musen hen over formen som ikke virker helt som det skal, jeg har lavet dette her :

procedure TTopMenuForm1.Timer1Timer(Sender: TObject);
var
  pt: TPoint;
begin
  GetCursorPos( pt );
    With TopMenuForm1 do
  pt := TopMenuForm1.ScreenToClient( pt );
  IF pt.y < Panel1.ClientHeight then
    Begin
      TopMenuForm1.Visible := True;
    end
  else
    Begin
        IF TopMenuForm1.Visible = True Then
          Begin
            GetCursorPos( pt );
            pt := LMDButton1.ScreenToClient( pt );
            With LMDButton1.DropDownMenu do
              Begin
                IF (pt.x < 450) and (pt.y < 270) Then
                  Begin
                    TopMenuForm1.Visible := True;
                  end
                else
                  Begin
                    TopMenuForm1.Visible := False;
                  end;
              end;
            end
          else
            Begin
              TopMenuForm1.Visible := False;
            end;
    end;
end;

Er der en eller anden som kan hjælpe mig til at få det til at virke rigtigt.
Avatar billede psycosoft-funware Nybegynder
05. januar 2006 - 13:04 #1
kan du forklarer det lidt mere... :-)
Avatar billede master-lion Nybegynder
05. januar 2006 - 13:29 #2
jeg skal prøve, jeg har lavet en TopMenuForm1 som ligger i toppen af skærmen som er skjult og når jeg flytter musen hen over kommer TopMenuForm1 frem, MEN det gør den når musen er ca. 15mm fra toppen af skærmen, hvor jeg gerne have at TopMenuForm1 først kommer frem når musen er ca. 0-2mm fra toppen toppen af skærmen.

På TopMenuForm1 er der til venstre en LMDButton1 med en DropDownMenu og for at den ikke skal forsvinde og TopMenuForm1 når jeg flytter musen ud til en undermenu har jeg skrevet dette

IF (pt.x < 450) and (pt.y < 270) Then

det virker godt nok, men jeg mener ikke at det er lavet rigtigt på den måde jeg har lavet det på, forstådet på den måde at når jeg har musen på en undermenu så skal TopMenuForm1 ikke forsvinde før jag har trykket på et eller andet i den DropDownmenu, og for at den ikke gør det har jeg har jeg måtte tilføje dette
  IF (pt.x < 450) and (pt.y < 270) Then

håber at det er lidt lætter at forstå nu...
Avatar billede psycosoft-funware Nybegynder
05. januar 2006 - 20:04 #3
hmm, tyder på at du bruger en selvstændig form - er jeg helt forkert?
det ville gøres nemmere med en TPanel komponent, og så i OnMouseMove event, fange koordinanterne for makøren inde for formens grænse....

hvis du har lidt tid at vente, kan jeg fikse det til dig... :-)

/FunteX! :-)
Avatar billede master-lion Nybegynder
05. januar 2006 - 20:18 #4
det har jeg, ved ikke hvor lang tid jeg har prøvet på at finde en løsning..
Avatar billede master-lion Nybegynder
05. januar 2006 - 20:28 #5
ja, det er en selvstændig form.

har fundet en hel del Eks. som jeg ville kigge på om jeg kunne finde en løsning på mit problem, mener at jeg lavet det d. 13/12-2003 og prøvet at finde en løsning.

skal lige siges at jeg har været væk fra Delphi i lang tid pågrund af ny kærste og har fået en lille pige i mellem tiden, så det blever ikke til så meget Delphi.
Avatar billede psycosoft-funware Nybegynder
06. januar 2006 - 17:09 #6
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  StatusBar.Panels[0].Text := 'Mouse Pos: X=' + IntToStr(X) + ', Y=' + IntToStr(Y);
  with Panel1 do
    if Y < Panel1.ClientHeight then
      begin
      Panel1.Visible := True;
      end
    else
    Panel1.Visible := False;
end;


her dettte virker, kortere kunne det ikke gøres... :D
Avatar billede psycosoft-funware Nybegynder
06. januar 2006 - 17:10 #7
jeg har proppet en statusbar på min form, så man kan holde øje med koordinaterne...
Avatar billede master-lion Nybegynder
07. januar 2006 - 00:27 #8
Jeg takker for hjælpen, det vare lige lidt inde jeg kan prøve det, da den pcer jeg bruger til at programmer på lige er gået ned, er ved at køre det hele op igen.

men du skal jo have dine point for tak for hjælpen, så smid et svar.
Avatar billede psycosoft-funware Nybegynder
07. januar 2006 - 10:10 #9
det var da så lidt :-)
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