AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Abfrage, ob ein Control "on top" ist?

Ein Thema von Luuuz · begonnen am 15. Dez 2008 · letzter Beitrag vom 16. Dez 2008
Antwort Antwort
oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#1

Re: Abfrage, ob ein Control "on top" ist?

  Alt 15. Dez 2008, 17:40
Zitat von himitsu:
Focus zeigt nur an, daß ein Control den Eingabefokus (Tastatur) hat ... aber dafür muß es nicht sichtbar (ich mein nicht Visible) sein ... es kann sich auch ruhig hinter einem anderem Control verstecken.
Upps und sorry für die unqualifizierte Antwort.

An der Stelle bin ich mir jetzt nicht ganz sicher, aber imho kannst du erst einmal auf Visible prüfen. Ich glaube, dass die Controls der nicht sichtbaren Seiten automatisch auf Visible False gesetzt werden.

Sonst kannst du prüfen, ob der Parent, der ja ein TabSheet ist gerade das aktive TabSheet ist. Wenn nicht ist alles klar. Wenn ja, dann wirds schon schwieriger. Ich denke, du kannst erstmal an hand der Position (Index) des Controls prüfen, an welcher Stelle der Conrols-Liste des Parent dein Control steht. Ich glaube, dass mit dem höchsten Index wird als letztes gezeichnet und liegt somit oben. Hast du den Index, dann mußt du prüfen, ob alle Controls mit einem höheren Index in der Liste dein Control überdecken. Das kannst du ganz einfach mit Funktion IntersectRect tun. Liegt eine Überschneidung der Rects der Conrols vor, so liefert die Funktion True zurück. Also prüfst du sozusagen, ob alle "höherwertigen" Controls in der Liste eine Überschneidung mit deinem Control-Rect haben. Ist dies der Fall, so ist dein Control ganz oder Teilweise verdeckt. Willst du den Fall der teilweisen Überdeckung mit auswerten, so musst du den Rückgabewert des resultierenden Rect aus der Funktion IntersectRect entsprechend verarbeiten und bewerten.

Ob das die sinnvollste Methode ist dein Problem zu lösen kann ich nicht sagen, aber besser wie meine erste Antwort ist es auf jeden Fall.

Gruß oki
42
  Mit Zitat antworten Zitat
Antwort Antwort


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 02:30 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