Autor Beitrag
XZeranski
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 38



BeitragVerfasst: Do 05.06.03 16:17 
Hallo,
wie mache ich es, dass bei Programmstart der Cursor gleich in das Editfeld springt und ich sofort arbeiten kann?

Thx
ErnestoChe
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 528

Win 2000 pro, CRUX 2.0
Delphi 6 Pers, Open K3
BeitragVerfasst: Do 05.06.03 16:23 
Hi,

in das OnCreate-Ereignis der Form schreibst du folgendes:

ausblenden Delphi-Quelltext
1:
Edit1.SetFocus;					


MFG

- Ernesto -
XZeranski Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 38



BeitragVerfasst: Do 05.06.03 18:57 
Danke für deine Hilfe, jetzt kann ich mich wieder erinnern :)

Allerdings vertstehe ich nciht, warum dann folgende Fehlermeldung kommt:

"Deaktiviertes oder unsichtbares Fenster kann den Fokus nicht erhalten"

Woran liegt das?
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Do 05.06.03 19:11 
Weil das Edit zu dem Zeitpunkt noch nicht sichtbar ist. Stell die Tab-reihenfolge um, so dass das gewünschte Edit das erste ist.
XZeranski Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 38



BeitragVerfasst: Do 05.06.03 19:34 
Hm, das Feld steht jetzt an erster Stelle, aber es kommt immer noch der selbe Fehler...

Ich hab auch mal ein neues Dokumt geöffnet und nur ein Edit-Feld reingepackt, auch dann kommt der Fehler wenn ich Edit1.SetFocus bei Form1.Create eingebe...
ErnestoChe
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 528

Win 2000 pro, CRUX 2.0
Delphi 6 Pers, Open K3
BeitragVerfasst: Do 05.06.03 19:52 
Hi,

OK, war mein Fehler. Nimm die zeile aus dem OnCreate raus und füge sie in das OnActivate deiner Form ein. Dann gehts. Das OnCreate-Ereignis ist zu früh, da die Form da gerede erst erzeugt wird.

MFG

- Ernesto -
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Do 05.06.03 19:56 
Und dann landet der Cursor jedes mal im ersten Edit, ob das aber gewollt ist?
Terra23
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 872

Win 8
Delphi 7
BeitragVerfasst: Do 05.06.03 20:08 
@Luckie: Ich denke doch, schon. Siehe:

XZeranski hat folgendes geschrieben:
wie mache ich es, dass bei Programmstart der Cursor gleich in das Editfeld springt


@XZeranski: Kann es sein, daß du dein Edit-Feld deaktiviert hast?

_________________
Hasta La Victoria Siempre
ErnestoChe
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 528

Win 2000 pro, CRUX 2.0
Delphi 6 Pers, Open K3
BeitragVerfasst: Do 05.06.03 20:19 
@Terra23
das hat was mit OnCreate zu tun. Dieses Ereignis ist noch zu früh um den Fokus auf das Edit zu setzen. Deshalb die Exception. Im OnActivate klappts. Habs grad noch mal probiert.

Oder man setzt alternativ die Tab-Reihenfolge entsprechend, wie es Luckie schon gesagt hat.
MFG

- Ernesto -
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Do 05.06.03 20:29 
OnActivate wird aber nicht nur beim Start ausgelöst. :roll:
Tweafis
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 647

WinXP + fbsd
Delphi 5 Prof
BeitragVerfasst: Do 05.06.03 20:43 
wie wärs mit OnShow?

_________________
.: Es wird der Tag kommen, an dem wir es nicht mehr ändern können :.
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Do 05.06.03 20:50 
Wir dauch nicht nur beim Start aufgerufen. Aber was soll das eigentlich? Wir haben doch eine Lösung: Tab-Reihenfolge richtig setzten. .roll:
mimi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3458

Ubuntu, Win XP
Lazarus
BeitragVerfasst: Do 05.06.03 20:50 
es gibt eine eingenschaft sie heißt activcontrol oder so änlichen da musst du die komponenten die als erstes den focus haben soll eintragen und fertig :)

_________________
MFG
Michael Springwald, "kann kein englisch...."
Tweafis
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 647

WinXP + fbsd
Delphi 5 Prof
BeitragVerfasst: Do 05.06.03 20:54 
Luckie hat folgendes geschrieben:
Wir dauch nicht nur beim Start aufgerufen. Aber was soll das eigentlich? Wir haben doch eine Lösung: Tab-Reihenfolge richtig setzten. .roll:


Zitat:
Das Ereignis OnShow wird ausgelöst, wenn das Formular angezeigt wird (d.h., wenn die Eigenschaft Visible des Formulars auf True gesetzt wird).


Solange er nicht Visible ändert kann da doch nix passieren oda?

_________________
.: Es wird der Tag kommen, an dem wir es nicht mehr ändern können :.
Terra23
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 872

Win 8
Delphi 7
BeitragVerfasst: Do 05.06.03 21:02 
@Ernesto: Das ist mir schon klar. :-)
@Luckie: Wir akzeptieren die Lösung. :mrgreen: Ich weiß aber, daß OnActivate nicht nur beim Programmstart ausgelöst wird. Ich arbeite ja teilweise mit dem Ereignis. :)

_________________
Hasta La Victoria Siempre
ErnestoChe
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 528

Win 2000 pro, CRUX 2.0
Delphi 6 Pers, Open K3
BeitragVerfasst: Do 05.06.03 21:04 
Man das kann einem ganz schön auf den nerv gehen, diese klugsch...rischen Kommentare :evil: Ich denke Xeranski hat einige Ansätze bekommen und kann sich das raussuchen was für ihn am besten ist.

Ich habe ein bisschen rumprobiert, so einfach wird OnActivate oder Onshow nicht ein zweites mal ausgelöst, siehe Delphi-Hilfe.
Tweafis
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 647

WinXP + fbsd
Delphi 5 Prof
BeitragVerfasst: Do 05.06.03 21:09 
Achja, wenn du das Event genau einmal bei Programmstart aufrufen willst, dann geht das auch so:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
procedure TForm1.FormShow(Sender: TObject);
begin
  Edit1.SetFocus;
  Form1.OnShow := OtherFormShow;
  OtherFormShow;
  // oder
  // Form1.OnShow := nil;
end;


So wird das Ereigniss garantiert nur einmal aufgerufen. :mrgreen:

_________________
.: Es wird der Tag kommen, an dem wir es nicht mehr ändern können :.
mimi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3458

Ubuntu, Win XP
Lazarus
BeitragVerfasst: Do 05.06.03 22:16 
und was war mit meinem vorschlag ???

_________________
MFG
Michael Springwald, "kann kein englisch...."
Alex
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 28


D5 Epr
BeitragVerfasst: Fr 06.06.03 14:50 
Der Vorschlag von Mimi finde ich am besten
mach ich meistens so
mimi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3458

Ubuntu, Win XP
Lazarus
BeitragVerfasst: Fr 06.06.03 15:54 
ist auch am einfachsten(man braucht keine zeile code zu schreiben :))

_________________
MFG
Michael Springwald, "kann kein englisch...."