AGB  ·  Datenschutz  ·  Impressum  







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

Lauflicht

Ein Thema von Nickless · begonnen am 12. Dez 2003 · letzter Beitrag vom 15. Dez 2003
Antwort Antwort
Nickless

Registriert seit: 5. Dez 2003
6 Beiträge
 
#1

Lauflicht

  Alt 12. Dez 2003, 13:43
Hallöle

Hab da ma n Problem:

Ich hab da ein Lauflicht Programm das wie folgt aussieht:

[code=delphi]
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls;

type
TKeyType = (ktCapsLock, ktNumLock, ktScrollLock);
TForm1 = class(TForm)
Button1: TButton;
Timer1: TTimer;
procedure Button1Click(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private-Deklarationen }
stufe: integer;
public
{ Public-Deklarationen }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure SetLedState(KeyCode: TKeyType; bOn: Boolean);
var
KBState: TKeyboardState;
Code: Byte;
begin
case KeyCode of
ktScrollLock: Code := VK_SCROLL;
ktCapsLock: Code := VK_CAPITAL;
ktNumLock: Code := VK_NUMLOCK;
end;
GetKeyboardState(KBState);
if (Win32Platform = VER_PLATFORM_WIN32_NT) then
begin
if Boolean(KBState[Code]) <> bOn then
begin
keybd_event(Code,
MapVirtualKey(Code, 0),
KEYEVENTF_EXTENDEDKEY,
0);

keybd_event(Code,
MapVirtualKey(Code, 0),
KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP,
0);
end;
end
else
begin
KBState
Code:
 := Ord(bOn);
    SetKeyboardState(KBState);
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  close;
end;

procedure TForm1.FormActivate(Sender: TObject);
begin
  timer1.Enabled := true;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
    case stufe of
    1:
    begin
      SetLedState(ktNumLock, TRUE); // NumLock off
      SetLedState(ktCapsLock, FALSE); // CapsLock off
      SetLedState(ktScrollLock, FALSE); // ScrollLock off
      stufe := 2;
    end;
    2:
    begin
      SetLedState(ktNumLock, False); // NumLock off
      SetLedState(ktCapsLock, TRUE); // CapsLock off
      SetLedState(ktScrollLock, FALSE); // ScrollLock off
      stufe := 3;
    end;
    3:
    begin
      SetLedState(ktNumLock, False); // NumLock off
      SetLedState(ktCapsLock, FALSE); // CapsLock off
      SetLedState(ktScrollLock, TRUE); // ScrollLock off
      stufe := 4;
    end;
    4:
    begin
      SetLedState(ktNumLock, False); // NumLock off
      SetLedState(ktCapsLock, TRUE); // CapsLock off
      SetLedState(ktScrollLock, FALSE); // ScrollLock off
      stufe := 1;
    end;
    else stufe := 1;


  end;

  timer1.Enabled := FALSE;
  timer1.Enabled := TRUE;

end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
      SetLedState(ktNumLock, TRUE); // NumLock off
      SetLedState(ktCapsLock, FALSE); // CapsLock off
      SetLedState(ktScrollLock, FALSE); // ScrollLock off
end;


end.
Wenn ich es starte is alles fein und funzt 1 a

ABER wenn ich es minimiere oder ein anderes Programm in den Vordergrund hole dann läft das ganz komisch und die lämpchen flackern ganz anders.

Was ist das?


Gruß

Nickless
  Mit Zitat antworten Zitat
Minz

Registriert seit: 19. Dez 2002
476 Beiträge
 
#2

Re: Lauflicht

  Alt 12. Dez 2003, 13:58
Vielleicht hängt das damit zusammen, dass dein Programm Rechenleistung

entzogen bekommt, wobei es dann wenn es wieder welche bekommt, versucht alles

nachzuholen und dann flackerts. Sicher bin ich mir aber net (nur so als Idee)

Gruß Minz
  Mit Zitat antworten Zitat
Nickless

Registriert seit: 5. Dez 2003
6 Beiträge
 
#3

Re: Lauflicht

  Alt 12. Dez 2003, 14:00
eher nicht weil wenn ich das dann wieder als hauptprogramm aktivere (einfach wider anklicke) dann flackerts nichtmehr dann läfts wieder
  Mit Zitat antworten Zitat
Minz

Registriert seit: 19. Dez 2002
476 Beiträge
 
#4

Re: Lauflicht

  Alt 12. Dez 2003, 14:05
Naja sag ich ja, wenn dein Programm den Fokus hat, bekommt es natürlich wieder Rechenleistung.
  Mit Zitat antworten Zitat
s14

Registriert seit: 15. Mai 2003
Ort: München
251 Beiträge
 
Delphi 7 Architect
 
#5

Re: Lauflicht

  Alt 12. Dez 2003, 14:10
Nur mal so gefragt, warum steht im OnTimer Ereignis:

Delphi-Quellcode:
  timer1.Enabled := FALSE;
  timer1.Enabled := TRUE;
Gruß
  Mit Zitat antworten Zitat
Minz

Registriert seit: 19. Dez 2002
476 Beiträge
 
#6

Re: Lauflicht

  Alt 12. Dez 2003, 14:15
hehe hab ich mich auch schon gefragt
  Mit Zitat antworten Zitat
Benutzerbild von X-Dragon
X-Dragon

Registriert seit: 14. Jan 2003
Ort: Schortens
289 Beiträge
 
Delphi 6 Enterprise
 
#7

Re: Lauflicht

  Alt 12. Dez 2003, 14:16
Zitat von s14:
Nur mal so gefragt, warum steht im OnTimer Ereignis:

Delphi-Quellcode:
  timer1.Enabled := FALSE;
  timer1.Enabled := TRUE;
Gruß
An sich wird dadurch der Timer neu gestartet, aber Sinn ergibt das irgenwie nicht ...
  Mit Zitat antworten Zitat
Minz

Registriert seit: 19. Dez 2002
476 Beiträge
 
#8

Re: Lauflicht

  Alt 12. Dez 2003, 14:32
Eventuell könnte das Auslagern in
einen Thread Abhilfe schaffen?
  Mit Zitat antworten Zitat
Nickless

Registriert seit: 5. Dez 2003
6 Beiträge
 
#9

Re: Lauflicht

  Alt 15. Dez 2003, 07:16
und wie sieht sowas aus (in ein Thread auslagern)?
  Mit Zitat antworten Zitat
Minz

Registriert seit: 19. Dez 2002
476 Beiträge
 
#10

Re: Lauflicht

  Alt 15. Dez 2003, 22:46
Delphi-Quellcode:
type TLauflich=class(TThread)
     private
     protected
       procedure Execute; override;
     private
end;
für mehr erstmal suchen ...

Gruß Minz
  Mit Zitat antworten Zitat
Antwort Antwort


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 07:25 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