AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Form unschliessbar und onTop machen?
Thema durchsuchen
Ansicht
Themen-Optionen

Form unschliessbar und onTop machen?

Ein Thema von Novo · begonnen am 21. Aug 2008 · letzter Beitrag vom 26. Feb 2009
Antwort Antwort
Seite 4 von 5   « Erste     234 5      
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#31

Re: Form unschliessbar udn onTop machen?

  Alt 25. Aug 2008, 05:36
Zitat von Novo:
Schaut euch doch mal das Video an, siehe da geht es!
Habe ich, ist ein normales "FormXYZ.FormStyle := fsStayOnTop;"

Zitat von Novo:
Ihr wollt mich irgendwie veräppeln oder sowas, ka.
Nö, aber wass soll man dir sagen wenn du erfahrenen Programierern nicht glaubst ...?

Zitat von Novo:
Weil diese Option haben so viele Programme, ihr müsst das doch kennen!
Die Option: Im Vordergrund bleiben
Klar, siehe oben.

Die Windows-API sieht solch einen Fall nicht vor.
Ja, man kann auch tricksen mit unsauberen Mitteln was ich dir aber nicht zeige, da so etwas Murx ist.
Man kann ermitteln welches Fenster in oberster Ebene sitzt und seines darübersetzen.
Das kann bei Fullscreenanwendungen zu unschöhnen Effeckten wie flackern etc. führen.

Also, mache es so wie die meisten (guten) Programierer und nutze einfach "fsStayOnTop".

Gruss...
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Novo

Registriert seit: 27. Mai 2007
122 Beiträge
 
Delphi 7 Enterprise
 
#32

Re: Form unschliessbar udn onTop machen?

  Alt 25. Aug 2008, 14:54
Zitat von dominikkv:
so, Novo, probiers mal so:
Delphi-Quellcode:
if chk1.Checked then
  FormStyle := fsStayOnTop else
  FormStyle := fsNormal;
Und damit wir uns nicht missverstehen hab ich mal nen Beispiel angehäng wie sowas aussieht
Eben das geht ja nicht, weil fsStayOnTop nur bei der MainForm geht!
Aber frmAnzeige bzw. Form2
da funktioniert es nicht, auch wenn man

Delphi-Quellcode:
procedure TfrmAnzeige.chkBoxTopClick(Sender: TObject);
begin
if chkBoxTop.Checked then
  frmAnzeige.FormStyle := fsStayOnTop else
  frmAnzeige.FormStyle := fsNormal;
end;
macht!

Das ist es ja was ich die ganze zeit versuche, eine 2.Form, die nicht die MainForm ist, onTop zu bringen!
Takeo
  Mit Zitat antworten Zitat
Benutzerbild von Deep-Sea
Deep-Sea

Registriert seit: 17. Jan 2007
907 Beiträge
 
Delphi XE2 Professional
 
#33

Re: Form unschliessbar udn onTop machen?

  Alt 25. Aug 2008, 15:19
Vlt. mal ein ganz trivialer Ansatz, bevor ihr euch noch gegenseitig die Köpfe einschlagt:

Novo, wäre es für dich vlt. möglich, das Fenster was oben bleiben soll, als MainForm zu machen? So musst du zwar ein paar andere Probleme umgehen (zB. das deine Applikation beim schließen der eigentlichen Hauptform jetzt nicht mehr ausgeht), aber das hier wäre gelöst
(Weiß ya nicht, wie groß und wichtig das Projekt ist)


[edit]

Oder wo wir schon dabei sind: Je nachdem könnte man aus der "kleinen Form" eine eigene Applikation machen. Ich weiß ya nicht woher sie ihre Daten bezieht. Sollte sie diese vom Hauptprogramm bekommen, so müssten diese natürlich noch über einen der vielen Wege übergeben werden. Aber das Problem, dass fsStayOnTop nur bei der Hauptform funktioniert, wäre somit erledigt - und das auch noch auf eine recht elegante Weise.

[/edit]
Chris
Die Erfahrung ist ein strenger Schulmeister: Sie prüft uns, bevor sie uns lehrt.
  Mit Zitat antworten Zitat
Novo

Registriert seit: 27. Mai 2007
122 Beiträge
 
Delphi 7 Enterprise
 
#34

Re: Form unschliessbar udn onTop machen?

  Alt 25. Aug 2008, 16:59
Zitat von Deep-Sea:
Novo, wäre es für dich vlt. möglich, das Fenster was oben bleiben soll, als MainForm zu machen? ...
Hm wäre möglich, weil es sit ja ein Trayprogramm dsass die MainForm einblendet, wenn man auf Options klickt,
sollte bei 2Forms möglich sein xD

Damit wäre das Problem nicht wirklich gelöst, sondern umgangen.
Es kann doch nicht wahr sein, dass man nicht eine x beliebige Form onTop machen kann!



Mfg novo
Takeo
  Mit Zitat antworten Zitat
Benutzerbild von littleDave
littleDave

Registriert seit: 27. Apr 2006
Ort: München
556 Beiträge
 
Delphi 7 Professional
 
#35

Re: Form unschliessbar udn onTop machen?

  Alt 25. Aug 2008, 17:49
@Novo:

möchtest du sowas machen? Siehe Anhang: (nicht mit WIN + D minimierbar, jedenfalls bei mir, WinXP)
Angehängte Dateien
Dateityp: exe project1_141.exe (372,5 KB, 23x aufgerufen)
Jabber: littleDave@jabber.org
in case of 1 is 0 do external raise while in public class of object array else repeat until 1 is 0
  Mit Zitat antworten Zitat
Novo

Registriert seit: 27. Mai 2007
122 Beiträge
 
Delphi 7 Enterprise
 
#36

Re: Form unschliessbar udn onTop machen?

  Alt 25. Aug 2008, 19:13
Zitat von littleDave:
@Novo:
möchtest du sowas machen? Siehe Anhang: (nicht mit WIN + D minimierbar, jedenfalls bei mir, WinXP)
YAAAAAAAH GENAU DAS !!!!
nu erzähl mal, wie du das angestellt hast!!!
Takeo
  Mit Zitat antworten Zitat
Benutzerbild von littleDave
littleDave

Registriert seit: 27. Apr 2006
Ort: München
556 Beiträge
 
Delphi 7 Professional
 
#37

Re: Form unschliessbar udn onTop machen?

  Alt 25. Aug 2008, 19:29
Das ist nicht schwer:

Delphi-Quellcode:
type
  TForm1 = class(TForm)
    { ... }
    procedure FormCreate(Sender: TObject);
  private
    { Private-Declarations }
  protected
    procedure CreateParams(var Params: TCreateParams); override;
  end;

implementation

{ ... }

var
  MitRand : boolean = True;

procedure TForm1.FormCreate(Sender: TObject);
begin
  if MitRand then
     // Wenn du nen Fensterrahmen haben willst, dann musst du "Minimieren" deaktivieren
     BorderIcons := BorderIcons - [biMinimize]
  else
     // Oder gleich "Keinen Fensterrahmen" setzen
     BorderStyle := bsNone;

  // Nun noch nach ganz oben
  FormStyle := fsStayOnTop;
end;

procedure TForm1.CreateParams(var Params: TCreateParams);
begin
  inherited;
  // Flags setzen
  Params.Style := Params.Style or WS_OVERLAPPED;

  // Parent auf "Desktop" setzen
  Params.WndParent := GetDesktopWindow;
end;
Durch das Setzen von Params.WndParent auf "Desktop" erscheint für eine Form ein neuer Eintrag in der Taskleiste. Das kannst du auch verhinden, jedoch möcht ich dir das nicht vorkauen.

Grüße
Jabber: littleDave@jabber.org
in case of 1 is 0 do external raise while in public class of object array else repeat until 1 is 0
  Mit Zitat antworten Zitat
Novo

Registriert seit: 27. Mai 2007
122 Beiträge
 
Delphi 7 Enterprise
 
#38

Re: Form unschliessbar udn onTop machen?

  Alt 25. Aug 2008, 21:58
Danke danke danke!
Es funktioniert!

Hat sich die mühe doch gelohnt, 3 Seiten lang drauf zu beharren, dass sowas geht!



PS:
habe hier nützliche Codeschnipsel zum mannipulieren von Windows, Fenster und co gepostet!
http://www.delphipraxis.net/internal...t.php?p=931533



Mfg novo



//Thema beantwortet!
Takeo
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#39

Re: Form unschliessbar und onTop machen?

  Alt 26. Aug 2008, 06:05
das so etwas geht hat niemand abgetrtitten. Es ging immer nur um die Behauptung das es möglich ist das ein Fenster IMMER ganz oben bleibt.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von PinKing2
PinKing2

Registriert seit: 9. Aug 2007
29 Beiträge
 
#40

Re: Form unschliessbar und onTop machen?

  Alt 26. Jan 2009, 18:14
Hallo,

Entschuldigung, dass ich diesen alten, emotionalen Thread wieder aufgreife,
aber ich habe da mal eine Frage zu:

Kann man zur Laufzeit des Programmes diese Einstellung (Form immer im Vordergrund)
auch wieder rückgängig machen, wenn man z.B. möchte, dass der Benutzer
dies auswählen kann (immer Vordergund ja oder nein)?

CreateParams wird ja nur bei Erstellung der Form aufgerufen, und da ich eher
Hobbyprogrammierer bin habe ich keinen Ahnung wie man es anstellt die
Parameter neu einzulesen.

Wäre für einen Tipp sehr dankbar.

Mit freundlichen Grüssen,

PinKing2.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 4 von 5   « Erste     234 5      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:30 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz