AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Focus richtig setzten?

Ein Thema von MoziGut · begonnen am 31. Mär 2014 · letzter Beitrag vom 7. Apr 2014
Antwort Antwort
Seite 1 von 2  1 2   
MoziGut

Registriert seit: 4. Feb 2014
21 Beiträge
 
#1

Focus richtig setzten?

  Alt 31. Mär 2014, 16:01
Hallo Freunde,

ich hab hier eine App, bei der sich durch einen Swipe ein Calloutpanel öfffnet. In dem Calloutpanel befinden sich zwei Buttons für die ich den direkten Focus haben möchte. Zur Zeit, muss ich zwei mal auf das Panel tippen um das Event des Buttons auszuführen! Gibt es eine Möglichkeit das zu umgehen? Also das ich den Button nur einmal drücken muss?
Ich habs mit Memo1.SetFocus; .
Irgendwelche Ideen?

Vielen Dank


PS: Ich nutzte Delphi XE5, es ist eine Mobile Firemonkey Anwendung und es ist für Android!

Geändert von MoziGut (31. Mär 2014 um 16:03 Uhr)
  Mit Zitat antworten Zitat
MoziGut

Registriert seit: 4. Feb 2014
21 Beiträge
 
#2

AW: Focus richtig setzten?

  Alt 2. Apr 2014, 08:21
Ist das so schwierig?
Oder hab ich mich schlecht ausgedrückt und ihr braucht noch Informationen? Ich bin dankbar für jeden Anstoss den ich bekommen kann!
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.091 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: Focus richtig setzten?

  Alt 2. Apr 2014, 12:15
Ich kann es nicht nachvollziehen. TCalloutPanel, zwei Buttons rein. Mit einem drittem Button außerhalb kann ich meinetwegen die Enabled-Eigenschaft des Panels umschalten. Und wenn das Panel grade aktiviert wird, kriegt Button1 den Fokus.

Egal was man anstellt, beim ersten Klick wird der Button (erwartungsgemäß) gedrückt.

Und wie kommt bei dir nun ein Memo1.SetFocus() ins Spiel?
  Mit Zitat antworten Zitat
MoziGut

Registriert seit: 4. Feb 2014
21 Beiträge
 
#4

AW: Focus richtig setzten?

  Alt 2. Apr 2014, 14:29
Ich lasse das Panel mit einer Swipefunkttion öffnen. Und dann hab ich dort das Calloutpanel mit zwei Buttons. Und nein ich habe dann nicht den direkten Focus auf die Buttons. ICh muss immer zwei mal Drücken...


Delphi-Quellcode:
begin
  if EventInfo.GestureID = sgiLeft then

  begin

    I := strtoint(ListBox1.Selected.itemdata.detail);

    if scall = False then

      inf := TCalloutPanel.Create(Self);

    inf.Parent := ListBox1.Selected;
    inf.Height := 60;
    inf.Width := ListBox1.Width;
    inf.CalloutLength := 0;
    inf.Position.Y := 0;
    inf.Visible := true;
    scall := true;

    btn1 := TButton.Create(Self);
    btn1.Parent := inf;
    btn1.Text := 'Edit';
    btn1.Height := 40;
    btn1.Cursor := crHandPoint;
    btn1.Width := 120;
    btn1.Position.Y := 5;
    btn1.Position.X := 20;
    btn1.Visible := true;
    btn1.Enabled := true;
    btn1.OnClick := editbutton;

    btn2 := TButton.Create(Self);
    btn2.Parent := inf;
    btn2.Text := 'Löschen';
    btn2.Height := 40;
    btn2.Cursor := crHandPoint;
    btn2.Width := 120;
    btn2.Position.Y := 5;
    btn2.Position.X := ListBox1.Width - 140;
    btn2.Visible := true;
    btn2.Enabled := true;
    btn2.OnClick := deletebutton;

  end
  else
  begin
  if EventInfo.GestureID = sgiright then
  begin
  Form2.Show;
  end;
  end;

end;
Bei "deletbutton" und "editbutton" sind normale Events hinterlegt!
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.091 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

AW: Focus richtig setzten?

  Alt 2. Apr 2014, 14:46
Angenommen, man hängt nach dem btn2.OnClick := deletebutton; noch ein btn2.SetFocus(); an, dann hat bei mir der Button2 den Fokus und kann auch direkt gedrückt werden. Btn1 natürlich ebenso.

Unter Windows. Ob sich bei Android da jetzt andere Dinge abspielen weiß ich nicht.

Auch verstehe ich nicht, warum du jedes mal die Buttons neu erzeugst?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.014 Beiträge
 
Delphi 12 Athens
 
#6

AW: Focus richtig setzten?

  Alt 2. Apr 2014, 14:59
Kann es sein, daß hier eigentlich die Form garnicht aktiv ist und daher mit dem ersten Klick der Fokus erstmal in die Form wandert?

Schaltet das SetFocus auf den Button nun auch die Form auf aktiv, oder setzt es nur das ActiveControl in der Form?
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
MoziGut

Registriert seit: 4. Feb 2014
21 Beiträge
 
#7

AW: Focus richtig setzten?

  Alt 2. Apr 2014, 15:06
hab ich versucht, trotzdem muss ich zwei mal tippen. Und wie soll ich es denn schreiben wenn ich die Button beständig haben wollen würde? Bzw welchen Vorteil bringt mir das?
  Mit Zitat antworten Zitat
MoziGut

Registriert seit: 4. Feb 2014
21 Beiträge
 
#8

AW: Focus richtig setzten?

  Alt 2. Apr 2014, 15:26
@himitsu: könntest du die Frage nochmal anders formulieren? Ich weiß nicht genau wie du das meinst!
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#9

AW: Focus richtig setzten?

  Alt 2. Apr 2014, 18:43
Ganz einfach: Die Form = das Formular = das Fenster, das dein Programm beinhaltet. Es könnte sich unter Umständen ereignen, daß deinem Programmfenster beim oder nach em Start aus irgend einem Grund der Fokus entzogen wird. Vielleicht wird ja noch eine andere Anwendung mitgestartet oder danach aufgerufen. Dann hätte diese andere Anwendung den Fokus. Mit einem Klick auf besagten Button innerhalb deiner Anwendung würde das so ausgelöste Ereignis eine Message senden, die dazu verwendet würde, deinem Programm den Fokus zuzuweisen. Damit wäre die Message sozusagen aufgebraucht und würde nicht bis zu deinem Button weiterwandern.
  Mit Zitat antworten Zitat
MoziGut

Registriert seit: 4. Feb 2014
21 Beiträge
 
#10

AW: Focus richtig setzten?

  Alt 3. Apr 2014, 09:25
Ja das klingt plausibel. Jetzt ist die Frage wie dem Button direkt den Focus geben könnte!?!
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 11:28 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