![]() |
Kann nicht richtig in die Inputbox klicken
Liste der Anhänge anzeigen (Anzahl: 1)
Guten Tag,
Ich erstelle mehrere dynamische Forms. In diesen Forms sind folgende Komponenten verwendet worden: -Datasource, TIBCQuery (Je 8 Stück auf verschiedene Tabellen) -TcxDBGrid -TdxLayoutControl -TJvDBLookupCombo -TcxDBTimeEdit -TcxDBTextEdit -TDBEdit -TEdit Es geht nur um die Edit-Felder der Komponenten. Diese funktionieren bei meiner Applikation nicht ordnungsgemäss. (Siehe Bild - TcxDBTextEdit) Wenn der Mauscursor wie bei Punkt 1. aussieht kann ich nicht in das Feld klicken. Es passiert nichts. Ich habe keine procedure/funktion die im Hintergrund durchläuft (mit breakpoints überprüft). Wenn ich aber am Rand klicke wie bei Punkt 2. wird mir das Feld sauber selektiert und ich kann da meinen Wert eintragen. Das TEdit-Feld kann ich gar nicht selektieren auch am Rand nicht. Es spielt keine Rolle was für eine Komponent ich verwende, ob TEdit TcxDBTextEdit etc. Es funktioniert bei allen nicht richtig. Auch habe ich das TEdit zum Test direkt auf das Form plaziert (kein Panel oder LayoutControl dazwischen). Ich verwende diese Komponenten auf mehreren Forms. Die anderen Forms werden aber nicht dynamisch erstellt. Bei diesen funktioniert das selektieren einwandfrei. Nur beim dynamisch erstellten Form nicht. Ich habe das gefühl das das Problem bei den Properties des Forms liegt. Höchswarscheinlich habe ich dort eine Property unabsichtlich verändert die dies nun verursacht, und nein die Edit's sind nicht auf ReadOnly! Wenn ich den FormStyle von fsNormal auf fsMIDIForm stelle bekomme ich beim erstellen der Forms SQL Exceptions obwohl ich am SQL code nichts verändert habe. Dann funktioniert aber das selektieren der Felder. Woran könnte das liegen.... Mfg Int3g3r |
AW: Kann nicht richtig in die Inputbox klicken
Nur ein Versuch: Setze z. B. im FormActivate Form.ActiveControl auf das erste Editfeld.
|
AW: Kann nicht richtig in die Inputbox klicken
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Delphi-Quellcode:
sind habe ich ich dies nun wie folgt gemacht.
Feld.Enabled := false
Sobald ich auf den Button "Neu" klicke werden die Felder auf
Delphi-Quellcode:
gesetzt.
Feld.Enabled := true
Danach führe ich dein Test aus :
Delphi-Quellcode:
(Ist es wichtig das es das erste Feld ist ?)
self.ActiveControl := Feld1
Nun erhalte ich folgende Meldung: Zitat:
Vielleicht sollte ich noch anmerkten das die dynamisch erstellten Forms in einer Scrollbox auf einem anderen Form liegen. (Siehe Bild) |
AW: Kann nicht richtig in die Inputbox klicken
Es ist vermutlich nicht wichtig, ob es das erste Feld ist, welches zunächst zum aktiven Control erklärt wird.
Ich hatte ein ganz ähnliches Problem: In einem dynamisch erzeugten Formulat liegen zwei Panels; auf einem eine Combobox und drei TEdit, auf dem anderen ein StringGrid. In FormActivate erhält die ComboBox mit ComboBox.SetFocus den Fokus. Resultat: die Liste der ComboBox lässt sich nicht aufklappen. Ich habe dann experimentiert wie ein Weltmeister (Tabulatorfolge geändert, Platzierung der Controls geändert, Controls rausgeworfen, etc.); die Tabulatorfolge verhielt sich teilweise nicht nachvollziehbar, der Fokus ist z. B. von der ComboBox auf das andere Panel zum StringGrid gesprungen, obwohl eigentlich zunächst die TEdits in der Reihenfolge waren... Zeig doch mal, wie Du Deine Formulare zum Leben erweckst... Wie verhält es sich denn, wenn Du die Feledr nicht disablest? |
AW: Kann nicht richtig in die Inputbox klicken
Zitat:
Die Tabulatoren funktionieren bei mir einwandfrei auch das .SetFocus funktioniert. Nur wenn man mit der Maus hineinklicken will funktioniert es nicht richtig. Daher glaube ich auch das es an einer property des dynamisch erstellten Forms liegt. Habe aber schon etliche getestet.
Delphi-Quellcode:
Etwas ist aber speziell. Im dynamisch erstellten Form funktioniert das "FormActivate" nicht. Ich musste dort jegliche startroutinen im "FormShow" machen. Beim erstellen des Forms geht er nicht einmal durch das "FormActivate" durch.
for i := ListBoxFahrzeug.Items.Count-1 downto 0 do
begin if ListBoxFahrzeug.Items.Items[i].Checked = true then begin ChildArray[ChildForwardIndex] := Tfrm_child.Create(frm_Auftraege); ChildArray[ChildForwardIndex].parent := childContainer; ChildArray[ChildForwardIndex].lblKennzeichen.Caption := listBoxFahrzeug.Items.Items[i].Text; ChildArray[ChildForwardIndex].lblFahrzeugID.Caption := listBoxFahrzeugID_Array[i].ToString; ChildArray[ChildForwardIndex].lblDatum.Caption := DateToStr(activeDate); ChildArray[ChildForwardIndex].Show; inc(ChildForwardIndex); end; end; |
AW: Kann nicht richtig in die Inputbox klicken
Wirf doch zum Testen mal alles raus (in OnCreate und OnShow), was nicht unbedingt notwendig ist. Hast Du schon getestet, ob der Effekt auch eintritt, wenn Du nur ein Formular (statt mehrere in der Schleife) anzeigst?
|
AW: Kann nicht richtig in die Inputbox klicken
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Im OnShow mache ich die DBs auf und zwei SQL abfragen. Habe alles auskommentiert, das Problem besteht dann immer noch. ----> Edit Ich konnte nun das Problem weiter eingrenzen. Mein Problem wird sein das der Fokus auf das zu bearbeitende Form nicht richtig gesetzt wird. Im Anhang seht ihr nochmals das Layout. So wie ich das sehe hat das "MainForm" die ganze Zeit den Fokus.. auf diesem funktioniert das selektieren in einer InputBox normal. Bei den dynamischen Forms ist der Border die ganze zeit leicht grau, wie das Form im hintergrund wäre. Ich habe nun ein wenig mit dem FromStyle gespielt. Wenn ich das "MainForm" (style = fsMDIform) bei Applikationsstart erstellen lasse werden mir die "dynamischen Forms" (style = fsMDIChild) erstellt und das erste dynamische Form ist aktiv. Im ersten dynamischen Form funktioniert nun das selektieren in eine Inputbox. Sobald ich in das zweite dynamische Form klicke wird dieses nicht "Aktiviert". Das erste bleibt weiterhin Aktiv. Wenn der style = fsMDIform gesetzt ist kann ich das
Delphi-Quellcode:
nicht setzen. Sonst kriege ich eine Fehlermeldung beim erstellen der Childs:
ChildArray[ChildForwardIndex].parent := self.childContainer;
Zitat:
Am einfachsten ausgedrückt möchte ich die dynamischen Forms in die Scrollbox des "MainForms" "einbetten". |
AW: Kann nicht richtig in die Inputbox klicken
Habe das Problem gelöst.
Ich musste folgende Property beim dynamischen Form setzen:
Delphi-Quellcode:
BorderStyle := bsNone
![]() |
AW: Kann nicht richtig in die Inputbox klicken
Zitat:
|
AW: Kann nicht richtig in die Inputbox klicken
Zitat:
Bin erst heute durchs Suchen auf Frames gestossen. Vorher wusste ich nicht das Frames existieren.:roll: Dies hat auch ein Vorteil.. Wenn man zwei Tage an einem solchen Problem verzweifelt wird man das nächste mal daran denken.....:-D |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:01 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