Autor |
Beitrag |
<TargeT>
      
Beiträge: 59
Win XP, Win 98
Delphi 7
|
Verfasst: Mi 16.04.08 04:48
Moin Moin,
Ich hab ein Problem und zwar möchte das mein Programm nicht minimierbar ist, die minimier Buttons habe ich schon deaktiviert.
Wenn man allerdings oben im Fenster, neben den minimier Button einen doppelklick auf die Leiste macht, minimiert sich das Programm trotzdem.
Weis jemand wie ich das verhindern kann?
Danke schonmal....
mfg Target
Zuletzt bearbeitet von <TargeT> am Di 22.04.08 22:39, insgesamt 2-mal bearbeitet
|
|
zongo-joe
      
Beiträge: 134
win xp prof
D3, D4, D7
|
Verfasst: Mi 16.04.08 08:20
|
|
<TargeT> 
      
Beiträge: 59
Win XP, Win 98
Delphi 7
|
Verfasst: Mi 16.04.08 08:51
Erstmal Danke für deine Antwort, allerdings hilft mir das nicht weiter.
Denn die 3 Buttons (schließen, maximieren, minimieren) sind schon erfolgreich deaktiviert worden.
Das Problem ist jetzt wie oben schon beschrieben das wenn man auf die Leiste doppelklick macht das sich das Fenster trotzdem minimiert.
lg Target
EDIT: Hat sich erledigt hab das jetzt einfach mit einen Timer gelöst xD unschöne Methode reicht aber voll und ganz für meine Zwecke^^
|
|
zongo-joe
      
Beiträge: 134
win xp prof
D3, D4, D7
|
Verfasst: Mi 16.04.08 20:18
Also im ersten Thema hat GAUSI eine schöne Lösung Deines Problems,
im dritten MATTHIASSIMMACK.
Wäre schon eleganter...
|
|
<TargeT> 
      
Beiträge: 59
Win XP, Win 98
Delphi 7
|
Verfasst: Do 17.04.08 07:12
Der Tipp von Gausi bezieht sicher aber auf den Button den ich schon deaktiviert habe!
Das Problem ist die Leiste
|
|
zongo-joe
      
Beiträge: 134
win xp prof
D3, D4, D7
|
Verfasst: Do 17.04.08 08:14
nee, der bezieht sich auf OnMinimize, und das wird IMHO auch ausgelöst, wenn man mit der Bidleiste miniert
|
|
<TargeT> 
      
Beiträge: 59
Win XP, Win 98
Delphi 7
|
Verfasst: Do 17.04.08 11:39
Hast du es getestet? Ich habe es bei mir getestet und es hat nicht funktioniert, nur der Button wurde dadurch deaktiviert, aber über die Leiste konnte ich weiterhin minimieren....
|
|
jaenicke
      
Beiträge: 19312
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Do 17.04.08 12:17
Ich habe es jetzt mal getestet, bei mir geht das wunderbar, und um zu verhindern, dass die Anwendung danach im Hintergrund ist, setze ich kurz StayOnTop: Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| procedure TForm75.ApplicationMinimize(Sender: TObject); begin WindowState := wsMaximized; FormStyle := fsStayOnTop; Application.ProcessMessages; FormStyle := fsNormal; end;
procedure TForm75.FormResize(Sender: TObject); begin WindowState := wsMaximized; end; |
Am saubersten dürfte aber die weiter unten in dem ersten Thread gepostete Lösung von bms sein:
www.delphi-forum.de/...en+verhindern#365773
|
|
<TargeT> 
      
Beiträge: 59
Win XP, Win 98
Delphi 7
|
Verfasst: So 20.04.08 22:53
Naja den Tipp von bms hab ich auch getestet, der beseitigt aber nicht mein Problem mit der Leiste^^
Aber dein Tipp jaenicke ist wunderbar.... besten dank 
|
|
Blackheart666
      
Beiträge: 2195
XP
D3Prof, D6Pers.
|
Verfasst: So 20.04.08 23:17
Vieleicht sollte man auch mal dazu schreiben warum das Prog nicht minimiert werden darf !?
_________________ Blackheart666
Der Irrsinn ist bei Einzelnen etwas Seltenes, - aber bei Gruppen, Parteien, Völkern, Zeiten die Regel. (Friedrich Nietzsche)
|
|
<TargeT> 
      
Beiträge: 59
Win XP, Win 98
Delphi 7
|
Verfasst: So 20.04.08 23:48
Wird eine Art Kindersicherung für mein klein Bruder, da er halt nur max 1 Stunde pro Tag an PC darf, das Programm startet sich bei jeden System start und lässt sich halt nicht schließen, minimieren usw, Taskleiste, Taskmanager werden blockiert und das Programm hält sich immer im Vordergrund. Nach eingabe eines Pw´s (was nur immer nur einmal funktioniert) ist der PC für eine Stunde freigegeben und nach 62min fährt der PC herunter.
Und wenn jetzt sowas kommt wie: Ah man kanns ja ausm Autostart usw rausnehmen..... sogut kennt er sich nicht aus, er weis halt wie man den PC einschaltet und ein Spiel startet.....
Target
|
|
Asura
Hält's aus hier
Beiträge: 3
|
Verfasst: Fr 29.12.17 16:31
Moin Moin,
über die Googlesuche bin ich auf diese nahezu Lösung meines Problems gestoßen.
Wie könnte man diesen Code anpassen, dass alle Formen der Application gleich behandelt werden.
Weil in diesem Beispiel würde die Form immer im Vordergrund bleiben und das selbst bei Formen die man darüber aufruft, doch will ich mein komplettes Programm im Vordergrund halten und die Deaktivierung dieser Option ist auf einer anderen Form, die noch mit einem Passwort geschützt ist.
Lange Rede kurzer Sinn: Wie ergänze ich diese Möglichkeit, dass er alle Formen der Application gleich behandelt und sich dadurch nicht gegenseitig behindert?
|
|
jaenicke
      
Beiträge: 19312
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Fr 29.12.17 22:48
<TargeT> hat folgendes geschrieben : | Wird eine Art Kindersicherung für mein klein Bruder, da er halt nur max 1 Stunde pro Tag an PC darf |
Da Windows 10 das von Hause aus unterstützt, frage ich mich wozu du da ein zusätzliches Programm brauchst. Den Schutz von Windows bekommst du auch mit Taskmanager usw. ohne Passwort nicht ausgehebelt, da brauchst du gar nicht groß tricksen...
// EDIT:
Oh, Datum des Beitrags übersehen...
Asura hat folgendes geschrieben : | Weil in diesem Beispiel würde die Form immer im Vordergrund bleiben und das selbst bei Formen die man darüber aufruft |
Bei aktuellen Delphiversionen sollten andere Fenster trotzdem vorne bleiben, wenn du das meinst. Sprich diese sollten nicht hinter dem Hauptfenster verschwinden.
|
|
Symbroson
      
Beiträge: 382
Erhaltene Danke: 67
Raspbian, Ubuntu, Win10
C, C++, Python, JavaScript, Lazarus, Delphi7, Casio Basic
|
Verfasst: Sa 30.12.17 14:10
War es nicht so, dass Dialoge von sich aus nicht minimierbar sind?
Dh. du müsstest BorderStyle auf bsDialog oder bsSingle setzen:
docwiki.embarcadero....ms.TForm.BorderStyle
_________________ most good programmers do programming not because they expect to get paid or get adulation by the public, but because it's fun to program. (Linus Torvalds)
|
|
Asura
Hält's aus hier
Beiträge: 3
|
Verfasst: Sa 30.12.17 15:27
Also es funktioniert jetzt nun insoweit.
Leider nicht zu 100%
Wenn ich die Einstellung BorderIcons um [biMaximize] oder [biSystemMenu] ändere kann ich selbst im "gesicherten" Modus auf die Leiste klicken von der Form und schon minimiert sich das. [biMinimize] jedoch funktioniert!
Am liebsten würde ich nicht nur das Verkleinern, Verschieben verbieten sondern oben drauf im gesicherten Modus auch die BorderIcons ausstellen.
Hier meine Sicherungsprozeduren:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37:
|
procedure TF_main.ApplicationMinimize(Sender: TObject); begin if SafetyStatus = 'True' then begin WindowState := wsMaximized; FormStyle := fsStayOnTop; Application.ProcessMessages; FormStyle := fsNormal; end; end;
procedure TF_Main.SecureWindow(SafetyStatus: String); begin
if SafetyStatus = 'True' then BorderIcons := Bordericons - [biMinimize] else BorderIcons := Bordericons + [biMinimize] ;
end;
procedure TF_Main.FormCreate(Sender: TObject); begin
filename := ExtractFilePath(ParamStr(0)) + 'Settings.ini'; ini := TIniFile.Create(filename);
Safetystatus := ini.ReadString('Settings','Safety','False'); Application.OnMinimize := ApplicationMinimize; SecureWindow(SafetyStatus); end;
procedure TF_Main.FormResize(Sender: TObject); begin if SafetyStatus = 'True' then WindowState := wsMaximized; end; |
Sobald ich im Adminbereich die Sicherung anstelle, ruft er die Prozedur "SecureWindow" auf und setzt den SafetyStatus.
Wie könnte ich das in Einklang bringen?
|
|
haentschman
      
Beiträge: 285
Erhaltene Danke: 33
DX10 Berlin Professional
|
Verfasst: So 31.12.17 11:09
|
|
Asura
Hält's aus hier
Beiträge: 3
|
Verfasst: So 31.12.17 13:46
Oh ja, ich war da beim Erstellen der Ini Datei nur im String drin, ganz vergessen, dass es sowas wie ReadBool existiert
|
|
user32
      
Beiträge: 55
Erhaltene Danke: 5
|
Verfasst: So 31.12.17 15:33
Blackheart666 hat folgendes geschrieben : | Vieleicht sollte man auch mal dazu schreiben warum das Prog nicht minimiert werden darf !? |
Ich kann es nicht mehr sehen. Immer muss man sich rechtfertigen. Er hat um Hilfe gebeten, wenn du nichts Konstruktives beizutragen hast, lass es bleiben.
Immer dieser unterschwellige "...aber du programmierst doch hoffentlich keine Schadsoftware!!!" - Ton in Entwicklerforen, regt mich massiv auf.
Wenn ihr nicht helfen wollt, schreibt einfach nichts. Oder löscht den Thread, wenn es in illegale Bereiche geht.
Aber ich denke ein Progrmam zu MINIMIEREN (oder das Unterlassen davon) ist noch nicht illegal. Ich kann mir viele Anwendungsmöglichkeiten vorstellen.
Aber es geht uns nichts an.
|
|
Christian S.
      
Beiträge: 20451
Erhaltene Danke: 2264
Win 10
C# (VS 2019)
|
Verfasst: So 31.12.17 15:48
Danke, user32! Endlich sagt das nach neun Jahren, die der von Dir zitierte Beitrag alt ist, mal jemand!
Es ist ja wirklich schrecklich, dass "man" sich rechtfertigen muss, obwohl Du das gar nicht musstest. Aber es ist immer gut, wenn sich jemand stellvertetend für andere aufregt.
_________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Für diesen Beitrag haben gedankt: jaenicke, Narses
|
|