AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte TInfoBox - eine InfoBox direkt auf dem Desktop
Thema durchsuchen
Ansicht
Themen-Optionen

TInfoBox - eine InfoBox direkt auf dem Desktop

Ein Thema von 3_of_8 · begonnen am 1. Aug 2006 · letzter Beitrag vom 9. Apr 2007
Antwort Antwort
Seite 6 von 6   « Erste     456   
Benutzerbild von 3_of_8
3_of_8
Registriert seit: 22. Mär 2005
Morgen.

Ich stand gerade vor dem Problem: Wie kriege ich eine Reihe von Komponenten auf den Desktop?

Nach und nach kam mir die Idee: Warum nicht die Komponenten in ein Panel packen und das mit der WinAPI bearbeiten.

Und hier ist mein TDesktopPanel.

Es kann in der Entwurfszeit auf einem Formular platziert und mit Komponenten bestückt werden. Zur Laufzeit wandert es dann auf den Desktop und kann mit Left/Top/Width/Height platziert/skaliert werden.

Hinweis: Das TDesktopPanel kann NICHT den Fokus erhalten. Ebensowenig alle Komponenten, die darauf sind. Man kann zwar Edits usw. drauftun, nur reinschreiben geht mangels Fokus nicht. Dafür muss man dann eine Form mit BorderStyle=bsNone verwenden.

Zwei Bugs sind noch drin:
1. Die Form zeichnet bei der Verschiebung des Panels immer noch die Scrollleisten, die einzige Möglichkeit, die da wohl funktioniert ist, bei der Form beide Scrollleisten auf Visisble=False zu stellen. Wenn jemand eine bessere Idee hat, nur her damit.

2. Es gibt ein leichtes Flimmern, wenn die Form in den Vordergrund geholt wird bei WM_MOVE. Wie man das behebt, weiß ich nicht, ich bin aber für Vorschläge offen.
Miniaturansicht angehängter Grafiken
hydrogenium_829.jpg  
Angehängte Dateien
Dateityp: zip infobox_634.zip (1,8 KB, 110x aufgerufen)
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
 
Benutzerbild von _frank_
_frank_

 
Delphi 3 Professional
 
#51
  Alt 10. Aug 2006, 00:10
ahja...dachte das wird eh überschrieben...na gut, jedenfalls funktioniert es.

was dringend geändert werden muss: nicht genau auf die Mausposition setzen sondern, versetzt min 1 px, da man sonst auf dem form nicht mehr arbeiten kann, bis man die box ausblendet...
ansonsten fällt mir auf, dass auf dem form selber scrollbars auftauchen (ich will die jetzt mal nicht deaktivieren, da da ein fehler vorliegt), selbst wenn die IB noch innerhalb des forms ist...

Gruß Frank
Frank Wunderlich
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

 
Turbo Delphi für Win32
 
#52
  Alt 10. Aug 2006, 00:13
Das mit der Mausposition ist schon behoben, ich lad gleich die neue Version hoch (warte noch 5 Min oder so).

Das mit den Scrollleisten ist mir bekannt, allerdings weiß ich nicht, wie ich es beheben soll. Das habe ich ganz weit vorne im Thread auch schon geschrieben. Am besten du deaktivierst die Scrollleisten, so hab ichs in Hydrogenium auch gemacht.
Manuel Eberl
  Mit Zitat antworten Zitat
Benutzerbild von fylo
fylo

 
Delphi 7 Personal
 
#53
  Alt 25. Aug 2006, 20:00
Moin,

hab gerade mal probiert, deine TInfobox zutesten. Doch leider findet er bei mir keine trans.dcu bzw. trans.pas
Wo kann man diese downloaden bzw. kannst du sie nicht mitliefern oder wenigsten einen Link oder Bemerkung beifügen
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

 
Delphi 2009 Professional
 
#54
  Alt 8. Apr 2007, 14:49
So... Ich habe endlich auch eine Anwendung für deine TInfoBox gefunden

Zuerst: Es ist genial ^^ Einfach Hintfarbe kopieren und einsetzen... zack: Ein ImmerDaHint xD

Aber ich habe das Problem, dass ich es auf einer TPaintbox anzeige.
Im OnEnter zeigt er es an und im OnLeave blendet er es aus.
Soweit gut... Problem : Manchmal kommt die Maus auf die InfoBox!
Und Zack! => OnLeave => Ausblenden... Aber jetzt isse ja wieder auf der TPaintbox => OnEnter => Einblenden => ??? Aber jetzt blendet er es nicht an der Maus wieder ein, sondern am alten Punkt, wo er ausgeblendet hat... Also alles von vorn => OnLeave => ...

Das Beispiel ist hier schon online: http://www.delphipraxis.net/internal...ct.php?t=97474

Mein Tipp: Bau eine Property ein: "FollowMouse" Dann weißt du immer, wo die Box hinsoll! Ich habe mal den Code überarbeitet (FollowMouse).

PS: Wie wäre es mit Schatten?
PPS: Ich weiß wie alt das Thema is ^^

[edit]Ähm... das tuts irgendwie net :/[/edit]
Angehängte Dateien
Dateityp: pas infobox_213.pas (4,0 KB, 21x aufgerufen)
Fabian
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

 
Turbo Delphi für Win32
 
#55
  Alt 8. Apr 2007, 15:50
Wieso überprüfst du nicht einfach im OnLeave, ob die Maus sich noch über deiner PaintBox befindet oder nicht?
Manuel Eberl
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

 
Delphi 2009 Professional
 
#56
  Alt 8. Apr 2007, 16:00
Naja... Eigentlich brauche ich es nicht überprüfen, aber deine Box macht es nötig ... Nur finde ich nirgends ein Fehler, warum sich die Box nicht bewegt...
Fabian
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

 
Turbo Delphi für Win32
 
#57
  Alt 8. Apr 2007, 18:23
Zwei Tipps:
1. Fadenkreuz-Cursor. Dann verdeckt der Cursor nicht ständig die Box.
2. Die Box immer 1 Pixel weiter rechts und unten platzieren als die Maus. Dann passiert das nicht mehr.
Manuel Eberl
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

 
Delphi 2009 Professional
 
#58
  Alt 9. Apr 2007, 08:35
Zitat von 3_of_8:
1. Fadenkreuz-Cursor. Dann verdeckt der Cursor nicht ständig die Box.
Je nachdem welchen Cursor man dafür hat
Zitat von 3_of_8:
2. Die Box immer 1 Pixel weiter rechts und unten platzieren als die Maus. Dann passiert das nicht mehr.
Das macht doch schon dein Code so
Fabian
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

 
Turbo Delphi für Win32
 
#59
  Alt 9. Apr 2007, 16:32
Dann dürfte dein Problem doch gar nicht auftreten. *kratz*
Manuel Eberl
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 6 von 6   « Erste     456   


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 12:38 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