Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   frame "aktivieren" (https://www.delphipraxis.net/214732-frame-aktivieren.html)

schorsch666 29. Feb 2024 12:13

frame "aktivieren"
 
moin in die runde,
ich habe in meinem prog 3 frames und habe das problem, dass ich die nicht so "aktiviert" bekomme, also dass darin zb die hints/mouseenter... nur funktionieren, wenn ich in das frame einmal reinklicke.

habe schon alles moegliche versucht mit "click eines buttons im frame" per code, etcpp. aber nix funzt. hat jemand ne idee?

tks vorab...

...de Schorsch

Frickler 29. Feb 2024 16:53

AW: frame "aktivieren"
 
Frame.SetFocus im OnShow des Formulars?

Rollo62 29. Feb 2024 16:56

AW: frame "aktivieren"
 
VCL oder FMX?

FMX - HitTest?

Sinspin 29. Feb 2024 18:33

AW: frame "aktivieren"
 
Was spricht dagegen TForm anstelle von TFrame zu verwenden?
Ich kann mich nicht erinnern wann ich das letzte mal Frames verwendet habe. Komplette Fenster haben keine Nachteile. Außer vieleicht ein paar mehr Bytes im Speicher.

Uwe Raabe 29. Feb 2024 21:14

AW: frame "aktivieren"
 
Ich gehe tendenziell in genau die andere Richtung: Die Anwendung (und damit auch die GUI) mit Frames partitionieren und nach Bedarf zusammensetzen. Frames werden dynamisch erzeugt, je nachdem welcher gebraucht wird. Sollte es wirklich mal nötig sein, kann auch mal gerade ein Form erzeugt werden, das den Frame aufnimmt. Am Ende gibt es (außer eventueller Vererbung) im Wesentlichen nur das MainForm in der Anwendung und eben diese dynamischen Wrapper z.B. für floating, stay-on-top oder dialogbasierte Forms.

Ehrlich gesagt habe ich das eigentliche Problem auch noch gar nicht verstanden.

Jasocul 1. Mär 2024 06:10

AW: frame "aktivieren"
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1534011)
Ehrlich gesagt habe ich das eigentliche Problem auch noch gar nicht verstanden.

Ich vermute, dass die Form nicht das OnHint der Frames berücksichtigt. Ich habe zwar schon Frames genutzt, aber weiß nicht, was dafür gemacht werden muss. Dafür benutze ich OnHint zu selten.

@Schorsch: Eventuell ist parent der Frames falsch gesetzt.

himitsu 1. Mär 2024 08:44

AW: frame "aktivieren"
 
Wenn man den Frame sieht, kann eigentlich der Parent nicht ganz falsch sein.

Ob direkt auf der Form oder z.B. in einem Panel, GroupBox und Anderen, macht eigentlich auch keinen großen Unterschied.

Uwe Raabe 1. Mär 2024 09:05

AW: frame "aktivieren"
 
Diese Formulierung ist für mich unklar:
Zitat:

Zitat von schorsch666 (Beitrag 1534001)
habe das problem, dass ich die nicht so "aktiviert" bekomme, also dass darin zb die hints/mouseenter... nur funktionieren, wenn ich in das frame einmal reinklicke.

Ist es gewünscht, dass die hints/mouseenter... nur funktionieren, wenn ich in das frame einmal reinklicke oder ist es das Problem, dass man erst reinklicken muss?

Wie so oft wäre ein kleines Beispielprojekt, mit dem man das Problem nachstellen kann, sehr hilfreich.

schorsch666 1. Mär 2024 09:38

AW: frame "aktivieren"
 
moin in die runde.
erstmal tks fuer die rege beteiligung.

vorab: ist ein fmx projekt.

also, um das nochmal bissi naeher zu erlaeutern (is halt bissi trickey): ich habe ein mainform, das ein TGridLayout beinhaltet und das hat 3 x dasselbe form jeweils als frame integriert. und ihr muesst euch das in etwa so vorstellen - nehmen wir nen explorer - dass man bis zu 3 "explorer" aufklappen kann (in wirklichkeit wird einfach animiert das TGridLayout um die breite eines forms verbreitert/verschmaelert), sodass ich also max. 3 "explorer" nebeneinander haben und nun per drag and drop mit denen interagieren kann (war bissi schwierig, weil drdr unter fmx nicht so einfach ist ;-). und das form - also jew. die frames - haben eben buttons, etc. drin, die auf onMouseEnter, etc. reagieren. Und die wiederum zeigen im mainform eine jew. info an - das funzt halt auch - manchmal von alleine - aber manchmal eben nur, wenn ich in den frame reinklicke.

hab schon alles moegliche versucht mit onmouseenter, onmousemove... im frame und setfocus, ... - doch da laeuft er irgendwie garnicht rein.

übrigens: das parent ist das TGridLayout im main und "OnHint" benutze ich auch nicht - mouseenter/leave eben.

Update: bevor ich euch jetzt zu viel arbeit macht: in den frames (form) ist wiederum ein tabcontrol mit mehreren tabs und ich habe jetzt soweit rausbekommen, dass wenn ich voraerts in den tabs springe klaut irgendwas den focus, denn beim "zurueckgehen" passiert das nicht. demnach muss ich noch bissi...

...de Schorsch

bcvs 1. Mär 2024 11:13

AW: frame "aktivieren"
 
Zitat:

und das hat 3 x dasselbe form jeweils als frame integriert.
Ja was denn nun? TForm oder TFrame? Das ist schon ein Unterschied.

Wenn es ein TForm ist, gibt es hier vielleicht die Lösung:
https://www.delphipraxis.net/161097-...ml#post1106980

Delphi-Quellcode:
SendMessage(MyForm.Handle , WM_NCACTIVATE, 1, 0);

Wobei MyForm das eingebettete Form ist.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:00 Uhr.
Seite 1 von 2  1 2      

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