Autor Beitrag
Myribo
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Di 20.05.08 12:35 
guten morgen allerseits ;)

ersteinmal bitte ich um entschuldigung, wenn ich den falschen thread erwischt habe, ich wusste nicht, wo mein anliegen am besten reinpasst :) ich habe leider wieder mal ein problem und bräuchte daher mal eure hilfe...

ich bin gerade dabei, ein spiel zu programmieren und bin damit auch schon fast durch (nur noch ein bisschen "feintuning"... =) )
letztens habe ich auch einen vollbildmodus implementiert. der folgende code ist hier:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
procedure TfrmTD2.lblFullscreenClick(Sender: TObject);
begin
  Left:=0;
  Top:=0;
  frmTD2.BorderStyle:=bsNone;
  frmTD2.FormStyle:=fsStayOnTop;
  ChangeRes(800,600,0,True);
  shpFullscreen.Visible:=False;
  lblFullscreen.Visible:=False;
end;


das ändern der auflösung ist nicht das problem, alles funktioniert super. jedoch reagiert das programm nach dem wechsel überhaupt nicht mehr auf irgendwelche tasten, also OnKeyPress ereignisse! außerdem tritt noch etwas anderes seltsames auf: das spiel ist ein schießspiel und man kann über das mausrad die waffen wechseln. (nach unten ist jeweils die nächste waffe; wenn waffe=5 dann waffe=1...) dies geht auch über die jeweiligen ereignisse vom formular.

den code kann ich auch gerne noch einmal posten...
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
procedure TfrmTD2.FormMouseWheelDown(Sender: TObject; Shift: TShiftState;
  MousePos: TPoint; var Handled: Boolean);
begin
  if tmrCadence.Enabled then
  begin
    inc(ThisGame.Waffe);
    if ThisGame.Waffe=5 then ThisGame.Waffe:=1;
    imgWaffe.Picture.LoadFromFile('img/weapon'+IntToStr(ThisGame.Waffe)+'.bmp');
    lblMunition.Caption:=IntToStr(Munition[pred(ThisGame.Waffe)]);
    Zeiger(ThisGame.Waffe);
  end;
end;


ich habe also 4 waffen. im vollbildmodus habe ich scheinbar nur noch 2 waffen. er wechselt nur noch zwischen der ersten und der zweiten. ich habe in dem programm auch noch andere komponenten mit den genannten ereignissen, habe diese aber alle zusammengelegt (also auf FormKeyPress). auf anderen rechnern funktionieren die sachen ebenfalls nicht.

das verwunderliche:
wenn ich ...

frmTD2.BorderStyle:=bsNone;
frmTD2.FormStyle:=fsStayOnTop;


... rausnehme, funktioniert alles wunderbar.

ich weiß nicht mehr, was ich machen soll, hab schon alle möglichen foren und google abgegrast, leider ohne erfolg. habe auch schon ziemlich viel mit den eigenschaften gespielt in delhi, brachte aber auch nichts... :(
deswegen wär ich ziemlich dankbar, wenn mit hier jemand helfen könnte! wenn ihr noch mehr code braucht, werde ich den natürlich gerne posten!

vielen dank schon mal fürs lesen :P
gruß Myribo
ZeitGeist87
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1593
Erhaltene Danke: 20

Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
BeitragVerfasst: Di 20.05.08 12:40 
Hallo!

Was passiert, wenn du das nicht machst, also die Auflösung nicht änderst, sondern nur den Borderstyle?

_________________
Wer Provokationen, Ironie, Sarkasmus oder Zynismus herauslesen kann soll sie ignorieren um den Inhalt meiner Beiträge ungetrübt erfassen zu können.
Myribo Threadstarter
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Di 20.05.08 12:59 
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
procedure TfrmTD2.lblFullscreenClick(Sender: TObject);
begin
  Left:=0;
  Top:=0;
  frmTD2.BorderStyle:=bsNone;
  frmTD2.FormStyle:=fsStayOnTop;
  //ChangeRes(800,600,0,True);
  shpFullscreen.Visible:=False;
  lblFullscreen.Visible:=False;
end;


BZW.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
procedure TfrmTD2.lblFullscreenClick(Sender: TObject);
begin
  Left:=0;
  Top:=0;
  frmTD2.BorderStyle:=bsNone;
  //frmTD2.FormStyle:=fsStayOnTop;
  //ChangeRes(800,600,0,True);
  shpFullscreen.Visible:=False;
  lblFullscreen.Visible:=False;
end;


bei den aufrufen funktionieren sie sachen auch nicht.

ich muss wirklich BEIDE...
frmTD2.BorderStyle:=bsNone;
frmTD2.FormStyle:=fsStayOnTop;

...rausnehmen. wenn ich nur eine von den beiden zeilen rausnhemne funktionierts immer noch nicht.