| Autor |
Beitrag |
eXploit4D
      
Beiträge: 21
D7 Enterprise
|
Verfasst: Di 14.12.04 12:25
Hallo,
ich bin neu hier und versuche grad ein paar grundlegende Sachen in Delphi7!
ich habe die aufgabe ein programm zu entwickeln das aus einer DLL verschiedene Sachen ausliest und einschrieben kann ... darunter auch links die im TWebBrowser geöffnet werden sollen. Ich habe ein Hauptprogramm mit den Buttons, die automatisch die links aus der DLL ausliest ... dann habe ich neue Formen die den TWebBrowser enthalten und die beim öffnen den Link aus der DLL öffnen! Außerdem gibts eine "Setup" form auf der ich einstellungen der Ini bearbeiten kann! Also habe ich 3 Formen ... Hauptform -> Settings -> BrowserForm. das funktioniert jetzt auch alles. nun zu meinen fragen
2. Es ist unbedingt notwendig das die Formen auf der der Webbrowser ist IMMER on Top bleiben, bei meiner lösung bleiben die Formen zwar im Programm selbst ontop nur wenn ich ein anderes programm öffne (z.b. IE, Outlook, Mozilla, etc) verliert es die ontop eigentschaft. Wie schaffe ich es das die Formen mit dem TWebBrowser immer ontop bleiben, wichtig -> nicht die Hauptformen! ?
So, ich hoffe es ist einigermaßen gut erklärt Würde mich wirklich sehr freuen wenn ich mir helfen könntet ... wenn ihr nur eine Sache wisst bitte trotzdem posten is sehr wichtig für mich. habe nur noch bis ende der woche zeit *verzweifel*
aber so wie ich das sehe bekommt man hier sehr gute tipps!
Vielen vielen dank im vorraus
cya eX
p.s. bitte beachtet das ich noch "anfänger" bin, ich kenne mich mit programmieren aus doch mit delphi nicht sooo gut!
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Di 14.12.04 13:08
Siehe dazu SETWINDOWPOS mit dem Flag HWND_TOPMOST.
Gibt es eigentlich einen Grund, warum du vor jeden Beitrag deine Delphi Version schreibst? Falls es dir noch nicht aufgefallen ist, man kann sie im Profil eintragen.
|
|
eXploit4D 
      
Beiträge: 21
D7 Enterprise
|
Verfasst: Di 14.12.04 13:26
ja ich weis aber um den klick auf das profil zu vermeiden und der übersichtlichkeit halber, außerdem wenn man auf suchen geht und dann was für delphi 7 sucht bekommt man genauere suchanfragen! stört dich das wirklich oder wolltest du es nur wissen ?
klappt nid .... des scheint mir nich in delphi7 zu sein ... hab den code aus dem beispiel genommen und es ging nid!
vielleicht ne einfachere lösung oder ein codeschnippsel den ich einbinden kann in mein programm ?
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Di 14.12.04 13:50
| eXploit4D hat folgendes geschrieben: | | ja ich weis aber um den klick auf das profil zu vermeiden |
OK. Wir öffnen vorsichtig unsere Augen. Kann etwas mühsam werden, wenn man lange geschlafen hat. Dann Reiben wir uns den Schlafdreck aus den Augen, reißen einmal weit den Mund auf und tanken frische Luft. Wenn wir dann Aufnahme fähig und einen Beitrag im DF aufgerufen haben, richten wir unseren Blick auf die linke Bildschirmhälfte, wo links die Verfasser der Postings stehen. Wenn unsere Augen den Verfasser erfaßt haben, lassen wir unseren Blick langsam etwas nach unter wandern. Und? Was sieht man?
| Zitat: |
Windows2000 SP4
D6 PE (D3 Prof)
|
| Zitat: |
sry raff den verweis nid wirklich! ... haste nid einfach ne codezeile für mich oder sowas ... oh man :/ sorry! |
Wenn man ganz nach unten scrollt gibt es da einen Link, der auf diese Seite führt:
msdn.microsoft.com/l...ons/setwindowpos.asp
|
|
eXploit4D 
      
Beiträge: 21
D7 Enterprise
|
Verfasst: Di 14.12.04 14:00
Ja die maus kann ich shcon noch benutzen und lesen kann ich auch ... nur ergibt das für mich keinen sinn .. sry das ich nich son gott bin wie du ... mir wärs auch lieber ich müsste nich fragen! kanns aber leider nid, wenn ihr zu allen so freundlich seit wie zu mir, naja wurst! es wäre nett wenn du mir sagen könntest wie ich es einbinde ... so das mein fenster angezeigt wird immer on top. ich habe mir auch mal von deiner seite den keylogger runter geladen, das haste die funktion ja auch drin! werd aber auch nicht wirklich fündig! nochmals entschuldigung das ich nich so gut bin wie du! aber ich nehme es mir vor mal so gut zu werden wie du! deine programme sind echt der hammer! vorallem das DIR2HTML ... hab ich schon lange gesucht!
Zuletzt bearbeitet von eXploit4D am Di 14.12.04 14:10, insgesamt 1-mal bearbeitet
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Di 14.12.04 14:08
Dann such doch im Quelltext nach SetWindowPos. Das ist eine einfache API Funktion, die du nur aufrufen musst. Und die Seite im MSDN erklärt dir, welche Parameter erwartet werden.
|
|
eXploit4D 
      
Beiträge: 21
D7 Enterprise
|
Verfasst: Di 14.12.04 14:10
dir vielleicht, ich habe noch nie mit apis gearbeitet und raff auch nid was die von mir wollen bei der MSDN ... super!
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Di 14.12.04 14:13
Dann nutz doch mein Programm als Beispiel wie der Aufruf geht.
|
|
UGrohne
      

Beiträge: 5502
Erhaltene Danke: 220
Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
|
Verfasst: Di 14.12.04 14:14
Oder such mal kurz nach SetWindowPos hier im Forum. Der letzte Eintrag auf der ersten Seite zeigt Dir ein Beispiel ...
|
|
Motzi
      
Beiträge: 2931
XP Prof, Vista Business
D6, D2k5-D2k7 je Prof
|
Verfasst: Di 14.12.04 14:20
| eXploit4D hat folgendes geschrieben: | | wenn ihr zu allen so freundlich seit wie zu mir, naja wurst! |
Also wirklich unfreundlich war hier keiner, und ein bisschen Ironie wirst du ja wohl noch vertragen...
Und was den Funktionsaufruf betrifft:
Delphi-Quelltext 1:
| SetWindowPos(Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE); |
_________________ gringo pussy cats - eef i see you i will pull your tail out by eets roots!
|
|
eXploit4D 
      
Beiträge: 21
D7 Enterprise
|
Verfasst: Di 14.12.04 14:31
okay das funktioniert jetzt zumindest auf der hauptform, nun gibt es folgendes problem! ich habe den topmost auf der hauptform im createform, setze es wenn ich den button klick auf notopmost und setze dafür bei der showform eigentschaft vom 2ten formular auf topmost! die zweite form bleibt aber wieder nicht vorne. habt ihr nochne idee?
|
|
eXploit4D 
      
Beiträge: 21
D7 Enterprise
|
Verfasst: Mi 15.12.04 13:42
Auch dieses Problem habe ich nun gelöst! Hier erkläre ich es wieder so das es JEDER!! versteht, nicht nur die vielen vollprofis hier!
Schritt 1:
Ihr geht in die Prozedur FormShow (Wird erst ausgeführt wenn die Prozedur wirklich angezeigt wird) oder in die FormCreate (Wird gleich bei Programmstart ausgeführt) und tragt hier folgenden Code ein
Quelltext 1: 2: 3:
| SetWindowPos(Handle, HWND_TOPMOST, Left,Top, Width, Height, SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE);
SetWindowLong(Handle, GWL_HWNDPARENT, 0); |
Nun ist diese IMMER im Vordergrund!
------->
Schritt 2:
Nun wollen wir diese Funktion auch rückgängig machen, das geht so
Quelltext 1: 2: 3:
| SetWindowPos(Handle, HWND_NOTOPMOST, Left, Top, Width, Height, SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE);
SetWindowLong(Handle, GWL_HWNDPARENT, Application.Handle); |
Wichtig ist das bei den Forms FsNormal als Style eingestellt ist! Nicht FsStayOnTop
Ich hoffe ihr habt erfolg damit! hier ist alles durch code gezeigt nicht mit unbrauchbaren tipps die für anfänger total ungeeignet sind (auch wenn sie funktionieren)
cya eX
Zuletzt bearbeitet von eXploit4D am Fr 17.12.04 10:26, insgesamt 1-mal bearbeitet
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mi 15.12.04 14:04
Was soll das SETWINDOWLONG??? 
|
|
eXploit4D 
      
Beiträge: 21
D7 Enterprise
|
Verfasst: Mi 15.12.04 22:25
ja es geht bei mir nicht ohne, akzeptiers einfach!!
alle die das problem haben werden mit meiner antwort zurecht kommen
|
|
Sprint
      
Beiträge: 849
|
Verfasst: Mi 15.12.04 22:34
| eXploit4D hat folgendes geschrieben: | | ja es geht bei mir nicht ohne, akzeptiers einfach!! |
Dann hast du irgendetwas falsch gemacht.
_________________ Ciao, Sprint.
|
|
eXploit4D 
      
Beiträge: 21
D7 Enterprise
|
Verfasst: Do 16.12.04 08:41
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Do 16.12.04 11:30
Ich möchte es eigentlich nicht einfach so hinnehmen, ich wollte schon wissen, warum ich etwas SO machen muss und nicht anderes. 
|
|
eXploit4D 
      
Beiträge: 21
D7 Enterprise
|
Verfasst: Fr 17.12.04 10:25
ich weis es nicht ... ich bin mir 1000% sicher das es ohne die
SetWindowLong(Handle, GWL_HWNDPARENT, Application.Handle);
Zeile bei mir nicht funktioniert! Ich habe es extra wegen dir nochmal ausprobiert!
sag du mir wieso es bei mir nicht geht!?
|
|