Avatar billede Slettet bruger
04. marts 2001 - 16:16 Der er 19 kommentarer og
1 løsning

MouseOver

Hejsa

Her er mit problem:

Når jeg fører musen over f.eks. et edit-felt i mit program, har jeg sat den til at ændre en label på formen \"hm\". Det går fint når jeg fører musen over Edit-feltet, labelen på \"hm\" bliver ændret. Men når jeg skal skrive i Edit-feltet kan den jo ikke, det er på grund af at der jo bliver sat focus på \"hm\", og så kan man jo ikke ændre i Edit-feltet. Jeg har prøvet med Form1.SetFocus, men så skifter den bare hvert halve sekund mellem at have focus på \"Form1\" og på \"hm\", efter som musen stadig står på Edit-feltet.
Her er min kode:

function help(helptext : string) : boolean;
begin
hm.Label1.Caption := helptext;
Form1.SetFocus;
end;



procedure TForm1.Edit1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
help(\'Testhelp\');
end;


mvh

Mikkel
Avatar billede kfrede Nybegynder
04. marts 2001 - 16:35 #1
hmmm du kan vel lave en global variabel :) der fortæller om den allerede har ændret label\'en, hvis den har det så gør ingenting..
virker det ikke???
Avatar billede kfrede Nybegynder
04. marts 2001 - 16:38 #2
og hvorfor har du egentligt den der setFocus med,, den gør vel intet fornuftigt
Avatar billede Slettet bruger
04. marts 2001 - 16:39 #3
Jo, muligvis. Jeg har tænkt på det, men kan du ikke lige komme med et eksempel.
Kan du ikke lige komme med et eks.

Og, hvordan laver man egentlig globale variabler??
Avatar billede Slettet bruger
04. marts 2001 - 16:40 #4
>>og hvorfor har du egentligt den der setFocus med,, den gør vel intet fornuftigt

Næh, det har du da ret i. 
Avatar billede kfrede Nybegynder
04. marts 2001 - 16:42 #5
Global variabel

var
  Form1: TForm1;
  enGlobalVariabel:integer;//her er den

implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
begin

end;

Avatar billede kfrede Nybegynder
04. marts 2001 - 16:42 #6
det virker vel nu, hvor du har fjernet setFocus
Avatar billede Slettet bruger
04. marts 2001 - 16:43 #7
Tak, for det...
Avatar billede Slettet bruger
04. marts 2001 - 16:46 #8
Nej, problemet er der stadig... Nu sider focusen bare på \"hm\" når man har ført musen over den, så man kan stadig ikke skrive i feltet.
Avatar billede kfrede Nybegynder
04. marts 2001 - 16:47 #9
eksemplet

procedure TForm1.Edit1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  label1.Caption:=\'ny tekst\';
end;
Avatar billede kfrede Nybegynder
04. marts 2001 - 16:49 #10
hmm øjeblik jeg laver lige koden og sender det
Avatar billede kfrede Nybegynder
04. marts 2001 - 16:54 #11
det virker på min.. har du kompileret det igen (tryk på f9 eller ctrl+f2)


var
  hm: Thm;



implementation

{$R *.DFM}

function help(helptext : string) : boolean;
begin
  hm.Label1.Caption := helptext;
end;


procedure Thm.Edit1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  help(\'Testhelp\');
end;
Avatar billede Slettet bruger
04. marts 2001 - 16:57 #12
Problemet er at du har dit edit-felt på \"hm\", og jeg har mit på \"form1\"...
Avatar billede Slettet bruger
04. marts 2001 - 16:58 #13
I øvrigt har jeg også min funktion på \"Form1\"
Avatar billede kfrede Nybegynder
04. marts 2001 - 16:59 #14
ok, men skulle teksten ikke kun ændre sig når man flyttede musen ind over edit-feltet.
Avatar billede Slettet bruger
04. marts 2001 - 17:00 #15
Vent lige et par minutter, jeg tror jeg har en ide...
Avatar billede kfrede Nybegynder
04. marts 2001 - 17:03 #16
hmmm

er hm ikke navnet på din form eller er det en anden form
Avatar billede Slettet bruger
04. marts 2001 - 17:04 #17
Jo, dit eksempel virkede... Gad vide hvorfor at jeg ikk\' kunne få det til at virke på det andet.
Det var ikke på grund af SetFocus, så...

Men som sagt før: Det hjælper åbenbart at få hjælp her på eksperten.dk
Avatar billede Slettet bruger
04. marts 2001 - 17:06 #18
>>hmmm
>>
>>er hm ikke navnet på din form eller er det en >>anden form

Jeg havde hm, hvor labelen stod, og form1 hvor editfeltet var. Men det er jo ligemeget nu. Det virker.
Avatar billede kfrede Nybegynder
04. marts 2001 - 17:07 #19
hehe ok held og lykke, og jeg kan anbefale java hvis du skulle blive træt af delphi
Avatar billede martinlind Nybegynder
04. marts 2001 - 18:14 #20
procedure TForm1.Edit1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  Label1.caption := format(\'X : %d Y : %d\',[X,Y]);
  Label1.Refresh;
end;


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