var SocketFunc : Integer; SocketString : String; SigHeadStatus : String; Stat : TStatus; UpdateSocket : Boolean; SimulCmd : Integer;
{$R *.DFM}
procedure TFrameDriver.UpdateSimulCommand(Sender: TObject); begin Label5.Caption := \'DENNE LABEL SKRIVES ALDRIG PÅ SKÆRMEN\'; SimulCmd := 0; if Simul[0] then SimulCmd := SimulCmd + 1; if Simul[1] then SimulCmd := SimulCmd + 2; if Simul[2] then SimulCmd := SimulCmd + 4; if Simul[3] then SimulCmd := SimulCmd + 8; with ClientSocket do begin Host := IpNo; Active := True; SocketFunc := 1; SocketString :=\'\'; Socket.SendText(#27); Socket.SendText(#27 + \'simul\' + IntToStr(SimulCmd) + #13);
Jeg har en frame med bla. ovenstående kode, jeg har selv oprettet proceduren UpdateSimulComand, det mærkværdige er at Label5 aldrig bliver skrevet på skærmen, og socket sender såvidt jeg kan se heller ikke noget.
Hvis jeg tilskriver label5 i en af de andre procedure jeg har i samme unit så ændres teksten godtnok
De fleste virksomheder har efterhånden bevist, at AI virker.
Pilotprojekter leverer resultater. Medarbejdere bruger generative AI-værktøjer. Nye use cases dukker op på tværs af organisationen.
Label5.Refresh gør ingen forskel. Når jeg debugger mig gennem koden og holder curseren over caption, kan jeg se at variablen godtnok bliver tilskrevet, det kommer bare ikke på skærmen
Kan det have noget og gøre med at det er en frame ?
NEJ, det betyder ikke noget at det er en frame, du skal nok prøve at steppe i gennem hele proceduren, det kunne jo tænkes at du får en fejl når du sætter din ClientSocket.Active := TRUE, hvilket forøvrigt også kan tage noget tid, som igen medfører at det ville være en god ide under alle omstændigheder at Refresh\'e din label5, men under alle omstændigheder, så er det sikkert din socket der er problemet, hvis den hænger eller fejler kan det godt gøre mærkelige ting med din label opd., du kunne evt. prøve bare at lave en showmessage() i stedet for, den vil sikkert virke.
procedure TFrameDriver.UpdateSimulCommand(Sender: TObject); begin SimulCmd := 0; if Simul[0] then SimulCmd := SimulCmd + 1; if Simul[1] then SimulCmd := SimulCmd + 2; if Simul[2] then SimulCmd := SimulCmd + 4; if Simul[3] then SimulCmd := SimulCmd + 8; Button3Click(Sender); end;
procedure TFrameDriver.Button3Click(Sender: TObject); var s : String; begin S := IntToStr(SimulCmd); SocketFunc := 1; SocketString :=\'\'; ClientSocket.Socket.SendText(#27); ClientSocket.Socket.SendText(#27 + \'simul\' + S + #13); end;
/snap
og følgende virker ikke
/snip
SimulCmd : Integer;
{$R *.DFM}
procedure TFrameDriver.UpdateSimulCommand(Sender: TObject); var s: string; begin SimulCmd := 0; if Simul[0] then SimulCmd := SimulCmd + 1; if Simul[1] then SimulCmd := SimulCmd + 2; if Simul[2] then SimulCmd := SimulCmd + 4; if Simul[3] then SimulCmd := SimulCmd + 8; S := IntToStr(SimulCmd); SocketFunc := 1; SocketString :=\'\'; ClientSocket.Socket.SendText(#27); ClientSocket.Socket.SendText(#27 + \'simul\' + S + #13); end;
Meget mærkeligt, har du prøvet at udkomentere ALT Socket og så lave noget andet i stedet ( et eller andet dummy ), det virker temmelig \"spændene\". Prøv evt. at Button3.Click; så du ikke sender Sender med ( både en knap og menu har en Click procedure )
Hvis jeg åbner et vindue (form) \"Show\" ikke Showmodal da jeg har mere end et, hvordan får jeg det så til at ligge øverst selv om man kligger på det underliggende vindue
Evt. med StayOnTop eller et API klad har det ikke lige i hovedet, kig i API hjælpen
Synes godt om
Ny brugerNybegynder
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.