![]() |
AW: Fenster, welches man nur durch eine Sache schließen kann
Okey, manches verstehe ich, manches wiederum nicht :-D
Haben Sir Rufos Beispiel und mm1256 was gemeinsam? Also Ist eines Teil vom anderen oder so? Ich lege also eine neue Form an, die nenne ich PauseForm. Darein kommt ein Edit und ein Button, der Button ist erst aktivierbar, wenn in der OnChange-Prozedur des Edits, das editfeld mit dem Passwort übereinstimmt. Wenn man auf den Button klickt. schließt sich das Fenster und man kann weiter spielen. Der Pausebutton beinhaltet nur PauseForm.showmodal ? @mm1256 wie kann ich denn die Bordericons "deaktivieren" ? (damit ist doch jetzt schließen,minimieren,maximieren gemeint?! ) Und was bedeutet $00 ? :D Ich gehe also wieder im Objektinspektor auf Eigenschaften von der PauseForm und nutze die OnKeyUP und OnKeyDown prozedur oder so?! @Sir Rufo was muss ich mit dieser Prozedur machen? Die LForm ist sozusagen die PauseForm. Ahh, da steige ich gerade nicht durch <,< Sorry..:| |
AW: Fenster, welches man nur durch eine Sache schließen kann
Du bist schon auf der richtigen Spur. Das Beispiel von SirRufo ist so gedacht: Du erstellst in der neuen Form im Interface eine procedure zum Anzeigen der Form.
Bordericons deaktivieren machst du im OI (ObjectInspector) bei den Eigenschaften der Form. Hinweis/Tipp: Du solltest mal in deinem Profil angeben, mit welcher Delphi-Version du arbeitest. |
AW: Fenster, welches man nur durch eine Sache schließen kann
Ich würde es einfach so machen wie wohl 99% aller anderen Spiele:
Einfach den Spielinhalt ausblenden und erst mit dem richtigen Passwort wieder anzeigen. Wie das konkret bei dir geht, hängt von der Art der Umsetzung ab. Wenn du z.B. die Elemente selbst zeichnest, kannst du das Zeichnen einfach unterbrechen, wenn du visuelle Komponenten wie Shapes missbrauchst, kannst du einfach ein Panel über das ganze Formular davorlegen. Dann brauchst du auch kein neues Formular mit Sperren für das Schließen oder ähnliches, denn wenn einer der Mitspieler dann das Programm schließt, ist es einfach weg. Aber schummeln geht nicht. |
AW: Fenster, welches man nur durch eine Sache schließen kann
Liste der Anhänge anzeigen (Anzahl: 1)
@Grayknife
Ich hab spaßeshalber ein Beispiel programmiert. Man kann es so machen, aber auch anders. Wenn du es selber machen willst, dann guck nicht rein, sonst reingucken. |
AW: Fenster, welches man nur durch eine Sache schließen kann
@Popov Ja genau so stell ich mir das vor! :) Nur bei dir gibt es auch noch einen Schließenknopf im Pausefenster <,<
Noch mal was anderes, ich habe jetzt alle Bilder mit
Delphi-Quellcode:
zugewiesen, so dass ich jedes Bild in einen Unterordner bei der .Exe Datei verschoben habe.
Bild.LoadfromFile(ExtractFilepath(ParamStr(0)) + 'Bilder\Bild.bmp');
das Klappt auch ganz gut! :) Nun habe ich mir gedacht, machste das einfach auch mit den Sounds:
Delphi-Quellcode:
-> Aber da kommt jetzt eine Fehlermeldung: "Inkompatible Typen: 'string' und 'PAnsiChar' "
sndplaySound(ExtractFilepath(ParamStr(0)) + 'Sound\Spielsound.wav',SND_ASYNC or SND_LOOP);
Habe ich falsch gedacht? Ich habe einfach den Schnipselcode kopiert. Funktioniert das so gar nicht mit sndplaysound bzw. kann man so nicht auf den Sound im Unterordner zugreifen? |
AW: Fenster, welches man nur durch eine Sache schließen kann
Schau Dir doch die Fehlermeldung an, dort steht doch eigentlich schon, was Du tun musst.
Du musst doch nur den String
Delphi-Quellcode:
in PAnsiChar umwandeln.
ExtractFilepath(ParamStr(0)) + 'Sound\Spielsound.wav'
|
AW: Fenster, welches man nur durch eine Sache schließen kann
Zitat:
Und zu dem Problem:
Delphi-Quellcode:
Der erste Parameter ist PChar, also musst du dein String Ergebnis auch so umwandeln.
sndplaySound(ExtractFilepath(ParamStr(0)) + 'Sound\Spielsound.wav',SND_ASYNC or SND_LOOP);
...
Delphi-Quellcode:
Ansonsten kannst du dir das Beispiel hier angucken:
sndplaySound(PChar(ExtractFilepath(ParamStr(0)) + 'Sound\Spielsound.wav'),SND_ASYNC or SND_LOOP);
... ![]() |
AW: Fenster, welches man nur durch eine Sache schließen kann
Die Function lockWindowUpdate ist in der Unit Windows.
Ein PASSWORD-Schutz ist einfach:
Delphi-Quellcode:
var s : String;
procedure TForm1.Button9Click(Sender: TObject); begin if Edit1.text='' then Exit; s:=Edit1.text; // Passwort eingeben und MERKEN ! Edit1.text:=''; lockWindowUpdate(self.handle); // LOCK end; procedure TForm1.Button10Click(Sender: TObject); begin if Edit1.text='' then Exit; if s=Edit1.text then lockWindowUpdate(0); // UNLOCK end; |
AW: Fenster, welches man nur durch eine Sache schließen kann
@hathor
MS sagt definitiv nein zu deinem Vorschlag ![]() Eine Alternative steht auch in der Doku |
AW: Fenster, welches man nur durch eine Sache schließen kann
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:00 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz