Autor Beitrag
einfach112
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 168

xp
del7
BeitragVerfasst: Di 05.09.06 19:26 
Hallo ! hoffe das ich hier an der richtigen stelle bin...

Hier zu meinem problem....
Ich bin gerade dabei ein kleines spiel zu programmieren....
Hierbei wird mit Punktestand gearbeitet ...
Später soll es so sein das man die Punkte online in eine Datenbank eintragen kann.....
Damit man aber nun nicht einfach den Punktestand faken kann müsste ich wissen ob meine Form
Ich nenne es jetzt einfach mal "aktiv" ist.

Damit meine ich ob im Oberen bereich meiner Form (die Standartmässig blau ist und den Namen des Programms enthält) gerade blau ist oder ob zu einem anderen Task gewechselt wurde....
Ich habe schon versucht ALT+Tab zu sperren während des Spiels ... aber es gibt da ja auch noch anderen möglichkeiten ....

Von daher würde mir schon reichen wie ich prüfen kann ob meine Form oben Blau also "Aktiv" ist oder nicht
Dachte zunächst ich könnte ganz einfach arbeiten mit TForm1.FormActivate(Sender: TObject);
aber leider zählt das ja schon ab dem moment wo ich meine Form starte....

hoffe es hat jemand verstanden was ich nun brauche....

Bin wie immer über nette Antworten SEHR DANKBAR...
MfG
Einfach112

_________________
sorry bin noob !
elundril
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: Di 05.09.06 19:38 
mach ne Variable:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
var aktiv:boolean;

procedure Tform1Activate (sender:TObject)
begin
  aktiv:=true;
end;

procedure Tform1Deactivate (sender:TObject)
begin
  activ:=false;
end;

procedure abprüfung
begin
  if aktiv then
    machwas
  else machwasanderes;
end;

mfg el

_________________
This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
einfach112 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 168

xp
del7
BeitragVerfasst: Mi 06.09.06 00:42 
Titel: .... geht leider nicht....
Danke für die Antwort aber leider gehts so nicht oder habe ich da was falsch verstanden ?
ich habe es jetzt mal so gemacht :

ausblenden Delphi-Quelltext
1:
2:
3:
  var
  Form1: TForm1;
  aktiv:boolean;


ausblenden Delphi-Quelltext
1:
2:
3:
4:
procedure TForm1.FormActivate(Sender: TObject);
begin
aktiv:=true;
end;


ausblenden Delphi-Quelltext
1:
2:
3:
4:
procedure TForm1.FormDeactivate(Sender: TObject);
begin
aktiv:=false;
end;


ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
procedure TForm1.Timer4Timer(Sender: TObject);
begin
if aktiv = false then
showmessage('Das verlassen des Spielfeldes ist verboten !');
end;


timer4 steht im intervall auf 50 und ist aktiv sobald das spiel anfängt ...
Also theo müsste doch alles richtig sein oder ?!
aber showmessage kommt nie zum zuge ...
habe ich irgendwas vergessen ?
habe zur sicherheit mal getestet und bei oncreate noch ein
aktiv:=true; gemacht damit das prog einen startwert hat ....
naja aber wie gesagt es passiert nix ?!
Jemand eine Idee ?
MfG
Einfach112

_________________
sorry bin noob !
Blackheart666
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2195

XP
D3Prof, D6Pers.
BeitragVerfasst: Mi 06.09.06 08:24 
ausblenden Delphi-Quelltext
1:
if not Form1.Active then Caption:=('Fenster nicht Aktiv !');					
Tastaro
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 414
Erhaltene Danke: 23



BeitragVerfasst: Mi 06.09.06 10:34 
ausblenden Delphi-Quelltext
1:
2:
3:
4:
if screen.ActiveForm = Self then
begin
   ...
end;


Beste Grüße
Tastaro
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19314
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 06.09.06 10:49 
user profile iconeinfach112 hat folgendes geschrieben:
Dachte zunächst ich könnte ganz einfach arbeiten mit TForm1.FormActivate(Sender: TObject);
aber leider zählt das ja schon ab dem moment wo ich meine Form starte....

Die Lösungen, die bereits gepostet wurde, sollten ja schon reichen, aber hier möchte ich doch noch richtigstellen, dass das nicht notwendigerweise so ist! Du kannst, wenn du die Prozedur FormActivate bereits erstellt hast, diese im Objektinspektor aus OnActivate löschen. Dann kannst du an einer beliebigen Stelle das Event wieder auf diese Prozedur lenken:
ausblenden Delphi-Quelltext
1:
Form1.OnActivate := FormActivate;					

und wieder entfernen:
ausblenden Delphi-Quelltext
1:
Form1.OnActivate := nil;					
einfach112 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 168

xp
del7
BeitragVerfasst: Mi 06.09.06 16:21 
Titel: THX THX THX
jo super es läuft ! vielen dank euch allen .! !

_________________
sorry bin noob !