PageControl.ActivePage
-
- Beiträge: 88
- Registriert: Sa 18. Jan 2020, 09:56
- OS, Lazarus, FPC: Winux (L 2.2.0 FPC 3.2.2)
- CPU-Target: Windows 64-Bit
PageControl.ActivePage
Habe in einer Form 2 Frames. In einem Frame ist ein PageControl mit 3 Seiten. Jetzt übernehme ich einige Daten aus einem Frame in das Frame mit dem PageControl. Das funktioniert soweit.
Aber "FrameDokumente.PageControl.ActivePage := TabSheet1;" funktioniert nicht richtig. Das Tabsheet1 wird nicht richtig angezeit. Ich muß erst auf den Reiter klicken, dann wir das Tabsheet erst richtig sichtbar. Innerhab eines Frames funktioniert jedoch das "ActivePage". Habe schon rumprobiert mit Setfocus und anderen Sachen, aber ohne Erfolg.
Bitte um Hilfe.
Gruß, Luckner
Aber "FrameDokumente.PageControl.ActivePage := TabSheet1;" funktioniert nicht richtig. Das Tabsheet1 wird nicht richtig angezeit. Ich muß erst auf den Reiter klicken, dann wir das Tabsheet erst richtig sichtbar. Innerhab eines Frames funktioniert jedoch das "ActivePage". Habe schon rumprobiert mit Setfocus und anderen Sachen, aber ohne Erfolg.
Bitte um Hilfe.
Gruß, Luckner
Re: PageControl.ActivePage
Ich hatte ähnliche Effekte, wenn ich alle Tabs auf TabVisible:=false gestellt hatte.
Ich habe dann ein leeres Tab eingefügt, welches sichtbar bleibt, während die anderen tabs in ihrer Sichtbarkeit eingestellt werden. danach kann man es wieder unsichtbar schalten.
Habe das auch nur über diesen Workaround hin bekommen...
Ich habe dann ein leeres Tab eingefügt, welches sichtbar bleibt, während die anderen tabs in ihrer Sichtbarkeit eingestellt werden. danach kann man es wieder unsichtbar schalten.
Habe das auch nur über diesen Workaround hin bekommen...
Gruß, Michael
- af0815
- Lazarusforum e. V.
- Beiträge: 6768
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: PageControl.ActivePage
Frames sind ein recht nette Sache
mit einigen Überraschungseffekten. Ich durfte mich aufgrund einiger 'Besonderheiten' mich bereits mit einigen internas Beschäftigen.
Generell verwende ich NUR dynamisch Erzeugt und eingebundene Frames. Damit umgeht man die ersten Überraschungen von manchmal nicht funktionierenden Events. Weil zur Laufzeit muss ich die Events sowieso immer im Programm setzen. Datenaustausch direkt von Frame zu Frame würde ich nicht machen, sondern immer über den den Parent. Wenn ich vom Frame aus etwas in was anderen Bereich machen wollte, so immer über einen Callback der vom Parent zugewiesen wird. Oder über ein Objekt, was vom Parent verwaltet wird und an die Frames übergeben wird.
Hintergrund ist der, das alles was im Frame ist, in den Parent gemappt wird, man kann sich das Frame wie ein unsichtbares Panel vorstellen. Dabei wird nur der Parent und die Positionen in den richtigen Kontext gestellt. Es kann dadurch beim Aufbau der Form natürlich Situationen geben, wo gerade ein Frame im Fenster erzeugt wird, das aber Referenzen auf ein noch später zu erstellendes Frame hat. Und das ist genau der Zeitpunkt wo dann unter Umständen Probleme in der internen Verwaltung auftauchen. Es war vor eingen Jahren mit den Frames recht schlimm, weil nicht alle Komponenten mit den Frames und dem dahinter stehenden Konstrukt umgehen konnten. Aber das obige geschilderte habe ich schon vor Jahr(zehnten) bei D7 kennen und fürchten gelernt. Nur damals konnte man nicht im Source sich das ansehen, wo und wie das funktioniert.

Generell verwende ich NUR dynamisch Erzeugt und eingebundene Frames. Damit umgeht man die ersten Überraschungen von manchmal nicht funktionierenden Events. Weil zur Laufzeit muss ich die Events sowieso immer im Programm setzen. Datenaustausch direkt von Frame zu Frame würde ich nicht machen, sondern immer über den den Parent. Wenn ich vom Frame aus etwas in was anderen Bereich machen wollte, so immer über einen Callback der vom Parent zugewiesen wird. Oder über ein Objekt, was vom Parent verwaltet wird und an die Frames übergeben wird.
Hintergrund ist der, das alles was im Frame ist, in den Parent gemappt wird, man kann sich das Frame wie ein unsichtbares Panel vorstellen. Dabei wird nur der Parent und die Positionen in den richtigen Kontext gestellt. Es kann dadurch beim Aufbau der Form natürlich Situationen geben, wo gerade ein Frame im Fenster erzeugt wird, das aber Referenzen auf ein noch später zu erstellendes Frame hat. Und das ist genau der Zeitpunkt wo dann unter Umständen Probleme in der internen Verwaltung auftauchen. Es war vor eingen Jahren mit den Frames recht schlimm, weil nicht alle Komponenten mit den Frames und dem dahinter stehenden Konstrukt umgehen konnten. Aber das obige geschilderte habe ich schon vor Jahr(zehnten) bei D7 kennen und fürchten gelernt. Nur damals konnte man nicht im Source sich das ansehen, wo und wie das funktioniert.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
- Beiträge: 88
- Registriert: Sa 18. Jan 2020, 09:56
- OS, Lazarus, FPC: Winux (L 2.2.0 FPC 3.2.2)
- CPU-Target: Windows 64-Bit
Re: PageControl.ActivePage
hallo af0815,
ich arbeite noch immer mit D7 Enterprise. Sei es aus Bequemlichkeit, oder weil die Programme, die ich erstelle, ehe was für Handwerker und kleinere produzierende Betriebe sind. Finde D7 sehr stabil und funktionell. Habe da jedoch keinerlei Probleme mit Frames. Möchte jetzt auch mal Android-Tabletts einsetzen, deshalb versuche ich mich mit Lazarus anzufreuden. Die Daten werden hier wunderbar aus anderen Frames übernohmen. Der visueller Teil bereitet mir etwas Probleme. Alle Panels mit Inhalt funktionieren, nur das PageControl nicht. Werde mal den Vorschlag von six1 ausprobieren. Aber es ist auch nur eine Trickserei. In einem halben Jahr werde ich mich, hoffentlich, an diesen Trick erinnern, wenn ich es mal wieder brauche. Habe mit diesen PageControlls sowieso Probleme. Das man da nicht mal den Hintergrund färben kann. Erst dynamisch funktioniert es. Manche andere PageControlls aus anderen Packages lassen sogar die IDE einfrieren. Aber sonst finde ich Lazarus schon toll.
Gruß, Luckner
ich arbeite noch immer mit D7 Enterprise. Sei es aus Bequemlichkeit, oder weil die Programme, die ich erstelle, ehe was für Handwerker und kleinere produzierende Betriebe sind. Finde D7 sehr stabil und funktionell. Habe da jedoch keinerlei Probleme mit Frames. Möchte jetzt auch mal Android-Tabletts einsetzen, deshalb versuche ich mich mit Lazarus anzufreuden. Die Daten werden hier wunderbar aus anderen Frames übernohmen. Der visueller Teil bereitet mir etwas Probleme. Alle Panels mit Inhalt funktionieren, nur das PageControl nicht. Werde mal den Vorschlag von six1 ausprobieren. Aber es ist auch nur eine Trickserei. In einem halben Jahr werde ich mich, hoffentlich, an diesen Trick erinnern, wenn ich es mal wieder brauche. Habe mit diesen PageControlls sowieso Probleme. Das man da nicht mal den Hintergrund färben kann. Erst dynamisch funktioniert es. Manche andere PageControlls aus anderen Packages lassen sogar die IDE einfrieren. Aber sonst finde ich Lazarus schon toll.
Gruß, Luckner
Re: PageControl.ActivePage
Mit D2,D6,D7, XE oder XE2 hatte ich die Probleme nicht. Das ist mir nur bei Lazarus aufgefallen.
Gruß, Michael
-
- Beiträge: 88
- Registriert: Sa 18. Jan 2020, 09:56
- OS, Lazarus, FPC: Winux (L 2.2.0 FPC 3.2.2)
- CPU-Target: Windows 64-Bit
Re: PageControl.ActivePage
Habe den Eindruck, als ob das PageControl kein aktives Tabsheet hat. Habe ich erstmal gelöst mit einem unsichtbarem Button auf dem Frame mit dem PageControl. Button aktiviert im OnClick das richtige Tabsheet und das Ganze aufgerufen aus dem anderem Frame. Es funktioniert erstmal. Möglicherweise findet sich mal eine bessere Lösung.
Luckner
Luckner
- af0815
- Lazarusforum e. V.
- Beiträge: 6768
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: PageControl.ActivePage
Delphi muss sich um andere Widgetsets und Plattformen nichr kümmern und ist nur auf Windows angepasst. Manche Komponenten können noch Probleme haben. Dann ist es am besten das nachvollziehbar zu machen und im Bugtracker zu hinterlegen.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
- fliegermichl
- Lazarusforum e. V.
- Beiträge: 1639
- Registriert: Do 9. Jun 2011, 09:42
- OS, Lazarus, FPC: Lazarus Fixes FPC Stable
- CPU-Target: 32/64Bit
- Wohnort: Echzell
Re: PageControl.ActivePage
Passiert denn das Problem nur unter Windows oder auch unter Linux?
Weil sowohl Delphi als auch Lazarus erzeugen ja nur Wrapperklassen für die vom jeweiligen Betriebssystem angebotenen PageControls.
Das mit dem Hintergrund einfärben habe ich nämlich auch mit Delphi nie hinbekommen.
Weil sowohl Delphi als auch Lazarus erzeugen ja nur Wrapperklassen für die vom jeweiligen Betriebssystem angebotenen PageControls.
Das mit dem Hintergrund einfärben habe ich nämlich auch mit Delphi nie hinbekommen.