AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi [Delphi 5] Form schnappt Mausklicks weg
Thema durchsuchen
Ansicht
Themen-Optionen

[Delphi 5] Form schnappt Mausklicks weg

Ein Thema von BMI · begonnen am 5. Jan 2015 · letzter Beitrag vom 6. Jan 2015
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von BMI
BMI

Registriert seit: 16. Jul 2010
58 Beiträge
 
Delphi 2 Desktop
 
#1

[Delphi 5] Form schnappt Mausklicks weg

  Alt 5. Jan 2015, 09:26
EDIT: Weiter unten is wohl ein Grund.... aber wenn jemand einen einfachen Lösungsansatz wüßte ...
_ _ _ _

Hi,

ich schreibe gerade ein Programm, das eine zweite Form anzeigt.
Nichts ungewöhnliches.
Keypreview ist auch false. (unwichtig)

auf Form2 sind fast nur Checkboxen.

Also:
Delphi-Quellcode:
form1.Button.click;
begin
Form2.show;
end;
Jetzt meine Frage:
Immer wenn ich zur Laufzeit auf die Checkboxen der Form2 klicke, muß ich erst 2-3 x klicken, ehe ihr Check gesetzt wird.

Ich habe mit Form2.OnMousedown() Haltepunkt auf Caption:='Mausklick'; festgestellt, daß die Mausklicks die erste Male von der Form geschnappt werden.

hab dann auch schon Form2.show; Form2.SetFocus; erweitert, weil ich dachte, die Maus muß erstmal auf der Form ankommen.
Ändert aber nix.

WTF?
Wieso?

und wie kann ich das ändern? Das macht die GUI total träge.
Obwohl Checkboxen setzen doch fix gehen müßte.

Hat einer ne Idee?
Danke.
eine Signatur? - in 2022? - WOZU ?!!!

Geändert von BMI ( 5. Jan 2015 um 15:38 Uhr)
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.736 Beiträge
 
Delphi 6 Enterprise
 
#2

AW: [Delphi 5] Form schnappt Mausklicks weg

  Alt 5. Jan 2015, 09:43
Betrifft das immer nur die erste Checkbox die du anklickst (dann ist es vllt. wirklich ein Problem mit dem Focus) oder auch weitere Checkboxen (wenn du denn mehrere hintereinander klicken willst)? Hast du irgendwelchen Code in den Checkboxen-Events (onClick, onChange,...)? Macht es einen Unterschied ob Show oder ShowModal?

Kannst du etwas mehr Code zeigen, wie Form2 erzeugt und aufgerufen wird, was bei den Checkboxen ist, ...
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von BMI
BMI

Registriert seit: 16. Jul 2010
58 Beiträge
 
Delphi 2 Desktop
 
#3

AW: [Delphi 5] Form schnappt Mausklicks weg

  Alt 5. Jan 2015, 10:15
ja, das betrifft überwiegend nur die ersten Klicks auf Checkboxen.
manchmal hab ich das Gefühl auch bei 2 oder mehrmals, wenn man andere nimmt.

ShowModal hat keinen Effekt.

onChange oder so gibt es nicht.
EDIT: Nur Button.Click() und image.click() auf form2.



mhh, ob der Code weiterhilft?

Delphi-Quellcode:
procedure TMenuForm2.FormCreate(Sender: TObject);
begin

color := clBtnShadow;
Top := 0;
left := 0;
self.Width:= screen.Width;
image1.Width := self.Width;
Image1.Left := 0;

ImageLeft.Top := 0;
ImageLeft.Height := self.Height;

ImageRight.Top := 0;
ImageRight.Height := self.Height;

Shape1.Top := self.Height-Shape1.Height+1;
Shape1.Left := 0;
Shape1.Width := Width;
VolumenMitBerechnen.Checked := True;
end;
Form1.Button1.click()
begin
Form2.show;
end;
eine Signatur? - in 2022? - WOZU ?!!!

Geändert von BMI ( 5. Jan 2015 um 10:46 Uhr)
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.736 Beiträge
 
Delphi 6 Enterprise
 
#4

AW: [Delphi 5] Form schnappt Mausklicks weg

  Alt 5. Jan 2015, 10:31
onChange oder so gibt es nicht.
Nur Button Klick.
Meinst du jetzt den ButtonClick der die zweite Form anzeigt oder gibt es bei den Checkboxen ein Event OnClick?

Zitat:
mhh, ob der Code weiterhilft?
Nö. Ich dachte jetzt auch eher daran, wo Form2 auf Form1 erzeugt wird, aber das wird es wahrsch. gar nicht, da du das im Projekt eingebunden hast, so dass es autom. erzeugt wird?

Zitat:
Form1.Button1.click()
begin
Form2.show;
end;
Und so wird es wahrscheinlich angezeigt? Wobei die erste Zeile nur symbolisch gemeint ist?

Was passiert den generell mit den Checkboxen? wird ihr Zustand irgendwo von außerhalb des Form2 gesetzt oder ausgelesen?
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von BMI
BMI

Registriert seit: 16. Jul 2010
58 Beiträge
 
Delphi 2 Desktop
 
#5

AW: [Delphi 5] Form schnappt Mausklicks weg

  Alt 5. Jan 2015, 10:55
Zitat:

Meinst du jetzt den ButtonClick der die zweite Form anzeigt oder gibt es bei den Checkboxen ein Event OnClick?
die checkboxen sind ohne change und click.
Werden aber später mal auf Form1 abgefragt.
Click gibt's nur bei dem CloseForm Button.
Eigentlich eine total unkomplizierte, passive Form - nur für Einstellungen/Optionen.

Zitat:
Nö. Ich dachte jetzt auch eher daran, wo Form2 auf Form1 erzeugt wird, aber das wird es wahrsch. gar nicht, da du das im Projekt eingebunden hast, so dass es autom. erzeugt wird?
also Form2 existiert bereits - also normal eingebunden.
und dann in Form1.Button nur Form2.show aufgerufen. onCreate der Form2 ist oben abgedruckt.

Zitat:
Und so wird es wahrscheinlich angezeigt? Wobei die erste [von dem Form1.Button.Click()]Zeile nur symbolisch gemeint ist?

Was passiert denn generell mit den Checkboxen? wird ihr Zustand irgendwo von außerhalb des Form2 gesetzt oder ausgelesen?
ja,
Code:
procedure TForm1.Button3Click(Sender: TObject); // hier vollständig
begin
  form2.show;
end;
- die Parameter sind ja unverändert. Soll ja nur die neue Form aufrufen. Wollte das im vorherigen Thread nur optisch einfacher machen. War mißlungen

also auf Form1 wird irgendwann später mal der Zustand abgefragt.
if Form2.check1.checked then bla
Ich weiß, so ganz optimal ist das auch nicht. Zumal Form2 auch nach Setzen der Einstellungen per "OK-Button" geclosed wird.

Aber so ein Verhalten einer zweiten Form hatte ich noch nie.

Ok, ich werd später mal versuchen bei dem Projekt, eine komplett NEUE einzubinden. (liegt vielleicht an etwas, das wir nicht sehen)

und ich hab das gerade nochmal getestet: Es ist unterschiedlich: manche Checkboxen brauchen 2 Klicks manche 3, lassen sich dann aber mit 1--Klick checken und unchecken,
und bei dernächsten Checkbox wieder 2 oder 3.
Das macht hakelig und eine Form irgendwie ...bäh
eine Signatur? - in 2022? - WOZU ?!!!

Geändert von BMI ( 5. Jan 2015 um 11:00 Uhr)
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.736 Beiträge
 
Delphi 6 Enterprise
 
#6

AW: [Delphi 5] Form schnappt Mausklicks weg

  Alt 5. Jan 2015, 11:24
Um mal die Maus aussen vor zu lassen. Kannst du nach öffnen von Form2 sehen, dass Form2 den Fokus hat und da evtl. mit Tabulatortaste "rumspringen" und per Tastatur Checkboxen checken? Irgendwie hab ich sonst auch keine Idee mehr woher das kommen könnte.
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von BMI
BMI

Registriert seit: 16. Jul 2010
58 Beiträge
 
Delphi 2 Desktop
 
#7

AW: [Delphi 5] Form schnappt Mausklicks weg

  Alt 5. Jan 2015, 12:25
Wahh, toll.

ich glaub, ich brauch demnächst 2 oder 3 x 76"Monitore - auf meinem 35"Laptop sieht man nicht alle Funktionen.

ich hab die Form heute morgen in Gedanken immer schnell über den CloseButton verlassen, weshalb mir folgende Funktion nicht auffiel:

Was ich (auch im Code) komplett übersehen hatte, war folgende Funktion (hab die Applikation letzte Woche angefangen) , welche mir ermöglicht zu überprüfen, ob die Maus noch über der Form2 schwebt - oder schon weg ist.
Falls weg, soll sie geschlossen werden.
hab das aus den Tiefen des Internets erwischt.

Aber richtig klar, warum die den Focus ansich zieht ist mir auch nicht.
Machen das Get und SetCapture?

und wie kann ich mir unter Delphi 5 den Luxus erhalten, die Form per Mouse beim Verlassen zu closen?
unter Delphi XE oder so hat man glaub ich: FormHasFocus(), mouseOut() oder sowas.

Delphi-Quellcode:
procedure TMenuForm2.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
warhier := 1;

If GetCapture = 0 then
    SetCapture(self.Handle) ;
    if PtInRect(Rect(self.Left,
                    self.Top,
                    self.Left + self.Width,
                    self.Top + self.Height),
                    ClientToScreen(Point(x, y))) then
     self.Caption := 'Mouse is over form'
    else
begin
    close;
end;
// hide

// self.Caption := 'Mouse is outside of form';
end;
eine Signatur? - in 2022? - WOZU ?!!!
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.580 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: [Delphi 5] Form schnappt Mausklicks weg

  Alt 5. Jan 2015, 14:38
Ach du Schreck, so eine Implementierung habe ich dafür noch nicht gesehen.

Windows ist doch so nett und schickt direkt eine Nachricht für den Zweck...
WM_MOUSELEAVE
Damit arbeitet in neueren Delphiversionen auch das entsprechende Mausevent.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Benutzerbild von BMI
BMI

Registriert seit: 16. Jul 2010
58 Beiträge
 
Delphi 2 Desktop
 
#9

AW: [Delphi 5] Form schnappt Mausklicks weg

  Alt 5. Jan 2015, 15:55
Danke Dir.
funzt aber immer noch nicht so ...

aber das, was ich jetzt gefunden hab ist auch nicht das Gelbe vom Ei. (ganz unten)
http://www.delphipages.com/forum/sho...d.php?t=165355

Zum einen fehlt der
procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); overload; overload hab ich angehängt,

aber dann hing es noch an HANDLE ...
nicht deklariert ...
was weiß ich welches Handle von welchem Objekt ...
Wahhhh

mhh, oder hast Du da ein konkretes Implementiertungsbeispiel vor Augen?
eine Signatur? - in 2022? - WOZU ?!!!
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#10

AW: [Delphi 5] Form schnappt Mausklicks weg

  Alt 5. Jan 2015, 16:53
Wieso denn overload? Das ist ganz normaler EventHandler, was gibt es denn da zu überladen?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 08:00 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