Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi CanClose spielt verrückt (https://www.delphipraxis.net/85778-canclose-spielt-verrueckt.html)

Bassel 4. Feb 2007 19:14


CanClose spielt verrückt
 
Das Problem:
Ich habe ein Programm, dass sich erst nach dem eingeben eines Passworts
schließen lassen soll,d.h. erst CanClose := False und dann nach der
Passwortabfrage CanClose := True.

Nun habe ich das eingebunden, funktioniert aber trotzdem nicht.

Komischer Weise habe ich ein anderes Programm bei dem es geht (bei selber Synatx).

Ich glaube langsam, dass mich Delphie verarscht :gruebel:

Könnte mir vielleicht irendtwer den bei ihm funktionierendem Code posten?

Vielen Dank im vorraus.

MFG

Bassel

mkinzler 4. Feb 2007 19:16

Re: CanClose spielt verrückt
 
Ein aderer Vorschlag, du postest dein Code und wir versuchen den Fehler zu finden.

Blackheart 4. Feb 2007 19:36

Re: CanClose spielt verrückt
 
Zitat:

Zitat von Bassel
Das Problem:
Ich habe ein Programm, dass sich erst nach dem eingeben eines Passworts
schließen lassen soll...
Könnte mir vielleicht irendtwer den bei ihm funktionierendem Code posten?

Vielen Dank im vorraus.

MFG

Bassel

So einen Code wird wohl keiner haben, beim Öffnen könnt Ich ja noch verstehen aber beim Schließen. :gruebel:

Bassel 4. Feb 2007 20:11

Re: CanClose spielt verrückt
 
LOL dann wäre das ja ein "Loch", wenn man keine unbeendbare Passwortabfrage programmieren kann.

Ich meine wenn CanClose erst einmal False ist, dann kann man das Programm garnicht beenden. Das wäre doch voll nutztlos oder?

Nils_13 4. Feb 2007 20:16

Re: CanClose spielt verrückt
 
Ähm...das wolltest du doch so :gruebel: ? Oder habe ich dich missverstanden ? Soll es nicht "unbeendbar" sein ?

MrKnogge 4. Feb 2007 20:18

Re: CanClose spielt verrückt
 
Zitat:

Zitat von Bassel
Das wäre doch voll nutztlos oder?

Warum ?
Was wenn er verhindern möchte, dass jemand das Programm auf "normalem" Wege beendet. Man könnte es zwar noch per hardkill beenden, aber dann würde OnClose und OnDestroy nicht mehr ausgeführt werden.

@Bassel
Was würde es nützen, wenn wir dir die passenden Code posten würde, wenn du schreibst dass du ihn selber schon hast.
Wenn er bei einem Projekt von dir geht, und bei einem nicht, so liegt es wahrscheinlich an etwas anderem, oder er ist fehlerhaft.
Poste mal bitte deinen OnCloseQuery-Abschnitt.

Gruß

[Add]
Sorry, hab nicht direkt gesehen, dass du auch der Threadersteller bist Bassel.
Jetzt verstehe ich allerdings nicht mehr was du ursprünglich wolltest !?

Bassel 4. Feb 2007 20:30

Re: CanClose spielt verrückt
 
Zitat:

Zitat von Nils_13
... Soll es nicht "unbeendbar" sein ?

Ja erst, aber nachdem das Passwort richtig eingegeben wurde sollte es sich schließen

Irgentwie so
Code:
If PW = 1234 then begin
Application.MessageBox('Accept','Hinweis',48);
CanClose := True;
Close

Zacherl 4. Feb 2007 20:32

Re: CanClose spielt verrückt
 
Deklarier dir eine gloabale Variabele CloseQ .. nach der Kennwortbestätigung setzt du CloseQ auf true und rufst Close auf.
Im OnCloseQuery schreibst du einfach: CanClose := CloseQ;

//Edit: Btw .. man kann den Prozess weiterhin im Taskmanager schließen, das ist dir hoffentlich klar ..

Sollte gehen.

dominikkv 4. Feb 2007 20:36

Re: CanClose spielt verrückt
 
leute...was ist daran so schwierig?
Delphi-Quellcode:
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
  if passwortabfrage then canClose := true else canClose := False;
end;

Zacherl 4. Feb 2007 20:38

Re: CanClose spielt verrückt
 
Oder nach meiner Anleitung ..

inherited 4. Feb 2007 20:38

Re: CanClose spielt verrückt
 
Zitat:

Zitat von dominikkv
leute...was ist daran so schwierig?
Delphi-Quellcode:
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
  if passwortabfrage then canClose := true else canClose := False;
end;

Junge, warum so kompliziert?
Delphi-Quellcode:
  CanClose:=passwortabfrage;
Und bitte nicht in dem Ton :wall:

Zacherl 4. Feb 2007 20:41

Re: CanClose spielt verrückt
 
Eben .. wobei ganz einfach Passwortabfrage bei mit CloseQ heißt .. ganz simpel eigentlich ..
naja lassen wir dem Threadersteller erstmal Zeit zu antworten :D

SirThornberry 4. Feb 2007 20:45

Re: CanClose spielt verrückt
 
wofür ist in der vierten Zeile das "Close"?

Nils_13 4. Feb 2007 20:46

Re: CanClose spielt verrückt
 
Sein Code sollte wohl eine Prozedur darstellen, statt OnCloseQuery. Dann muss er nämlich auch noch die Form schließen, da sie es nicht von alleine machen würde.

Matze 4. Feb 2007 20:48

Re: CanClose spielt verrückt
 
Zitat:

Zitat von Nils_13
Sein Code sollte wohl eine Prozedur darstellen, statt OnCloseQuery. Dann muss er nämlich auch noch die Form schließen, da sie es nicht von alleine machen würde.

Dann kann er auf CanClose aber nicht zugreifen. Wie Jens es bemerkt hat, brauchst du im OnClose kein Close aufrufen, das könnte unter Umständen eine Rekursion auslösen, habe es allerdings nie getestet.

Zacherl 4. Feb 2007 20:49

Re: CanClose spielt verrückt
 
Genau und als globale Variable wäre CanClose auch nicht möglich.

Nils_13 4. Feb 2007 20:49

Re: CanClose spielt verrückt
 
Oh, stimmt, dann ist halt Close oder CanClose falsch.

dominikkv 4. Feb 2007 20:51

Re: CanClose spielt verrückt
 
Zitat:

Zitat von inherited
Zitat:

Zitat von dominikkv
leute...was ist daran so schwierig?
Delphi-Quellcode:
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
  if passwortabfrage then canClose := true else canClose := False;
end;

Junge, warum so kompliziert?
Delphi-Quellcode:
  CanClose:=passwortabfrage;
Und bitte nicht in dem Ton :wall:

jo, so gehts einfacher...

Bassel 4. Feb 2007 20:57

Re: CanClose spielt verrückt
 
Ahh ich Depp :wall: :wall: :wall: :wall: :wall: :wall:

Dank an alle Beteiligten :mrgreen:


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:44 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