| |
|
|
 |
Autor |
Nachricht |
 |
| |
| -=IOI=- |
#1| Verfasst am: 04.12.2008, 23:23 Titel: [Gelöst] PageControl Focus |
 |
 |
 |
|
Mitglied Status: offline Beiträge: 54 angemeldet: 05.03.2005

|
Sprache: Delphi (Win32) Hallo,
ich weiß nicht, ob mein Problem schon irgendwo behandelt wurde, da ich nicht genau weiß, wonach ich suchen muss.
Zum Problem:
Ich habe 2 PageControls, in denen jeweils eine Variable Anzahl an Tabs mit jeweils einem Memo vorhanden ist.
Nun möchte ich feststellen innerhalb welches PageControls ich mich befinde. Soll heißen, dass wenn ich in einem Memo in Tab 3 irgendwas schreibe, woher ich dann weiß, in welchem der beiden PageControls ich mich befinde.
Ziel des ganzen soll sein, über einen Button außerhalb der PageControls den jeweils aktiven Tab zu schließen.
Danke schonmal für eure Antworten |
Zuletzt bearbeitet von -=IOI=- am 05.12.2008, 13:27, insgesamt 1-mal bearbeitet. |
 |
|
|
|
| |
| alzaimar |
#2| Verfasst am: 04.12.2008, 23:43 Titel: Re: PageControl Focus |
 |
 |
 |
|
Moderator Alter: 45 Status: offline Beiträge: 4.083 angemeldet: 06.05.2005 Wohnort: Berlin RAD-Studio 2007 Enterprise

|
Das Problem ist, das Du das nicht mehr weisst, sobald du den Button klickst, weil dann der Fokus ja auf den Button übergegangen ist. Daher musst Du Dir vorher merken, in welchem Memo Du zuletzt etwas eingegeben bzw. draufgeklickt hast. Dazu dient das 'OnEnter'-Ereignis des jeweiligen Memos.
So, da Du nun weisst, welches Memo zuletzt 'aktiv' war, kannst du ja sein 'Parent' herausfinden. Das dürfte ein TTabSheet sein. Und dieses Tabsheet gehört ja zu einer der beiden PageControls. |
 1. Das Selbstverständnis unter der Voraussetzung.
2. Und das ist es, was wir unseren Wählern schuldig sind
3. Die konzentrierte Beinhaltung als Kernstück eines zukunftsweisenden Parteiprogramms.
|
 |
|
|
|
| |
| -=IOI=- |
#3| Verfasst am: 05.12.2008, 00:00 Titel: Re: PageControl Focus |
 |
 |
 |
|
Mitglied Status: offline Beiträge: 54 angemeldet: 05.03.2005

|
Ich kann aber, wenn ich bevor ich den Button drücke auf einen Tab klicke, ein neuen Tab in dem jeweiligen PageControl erzeugen.
Also innerhalb der Button procedure kann ich mit if und PageControl1.Focused beide schon unterscheiden.
Es müsste also auch so gehen.
Eigentlich müsste ich noch "nur" herausfinden, ob das PageControl selbst (funktioniert ja schon) oder ein Child den Fokus hat. Das mit dem Child bekomm ich aber nicht hin. |
|
 |
|
|
|
| |
| toms |
#4| Verfasst am: 05.12.2008, 07:19 Titel: Re: PageControl Focus |
 |
 |
 |
|
CodeLib-Manager Alter: 31 Status: offline Beiträge: 4.140 angemeldet: 10.06.2002 Delphi 6 Professional

|
Hallo
Aktives Control ermitteln:
Falls sich bei diesem nicht um ein TPageControl handelt (und <> nil ist) mit
.Parent das Parent Control ermitteln:
|
 WinSpy 2008 - Der Fenster Spion (V.2.0.3.523 - 06.09.2008) |
 |
|
|
|
| |
| -=IOI=- |
#5| Verfasst am: 05.12.2008, 13:27 Titel: Re: PageControl Focus |
 |
 |
 |
|
Mitglied Status: offline Beiträge: 54 angemeldet: 05.03.2005

|
Super, danke für den Hinweis.
Habe es jetzt nur mit Form1.ActiveControl gelöst, hat aber genau den gewünschten Effekt. |
|
 |
|
|
|
| |
| shmia |
#6| Verfasst am: 05.12.2008, 15:00 Titel: Re: PageControl Focus |
 |
 |
 |
|
aktives Mitglied Status: offline Beiträge: 4.253 angemeldet: 02.03.2004 Delphi 5 Professional

|
| -=IOI=- hat folgendes geschrieben: | | Habe es jetzt nur mit Form1.ActiveControl gelöst, hat aber genau den gewünschten Effekt. |
Dann aber die Variable "Form1." weglassen da sonst unangenehme Effekte auftreten können. |
|
 |
|
|
|
| |
| -=IOI=- |
#7| Verfasst am: 09.12.2008, 08:18 Titel: Re: [Gelöst] PageControl Focus |
 |
 |
 |
|
Mitglied Status: offline Beiträge: 54 angemeldet: 05.03.2005

|
Ok, habe es weg gelassen.
Jetzt habe ich aber noch ein weiteres verwandtes Problem.
Wie kann ich nun ein Memo auf so einem Tabsheet kontrollieren, wenn z.b. nur der Tab oben angeklickt ist.
Also sowas in der Art wie:
|
|
 |
|
|
|
| |
| shmia |
#8| Verfasst am: 09.12.2008, 12:23 Titel: Re: [Gelöst] PageControl Focus |
 |
 |
 |
|
aktives Mitglied Status: offline Beiträge: 4.253 angemeldet: 02.03.2004 Delphi 5 Professional

|
| -=IOI=- hat folgendes geschrieben: | Ich habe 2 PageControls, in denen jeweils eine Variable Anzahl an Tabs mit jeweils einem Memo vorhanden ist.
|
Ich denke mal, dass für diesen Zweck ein PageControl nicht das Richtige ist.
Wenn auf jedem TabSheet immer nur das Gleiche drauf ist (ein TMemo), dann kann man doch auch nur ein Memo in Verbindung mit einer ListBox einsetzen.
(Listbox links; Memo rechts daneben)
Der Benutzer klickt auf einen Eintrag in der Listbox und das Programm ändert daraufhin den Inhalt des Memo.
Natürlich müssen dann alle Texte irgendwo getrennt gespeichert werden. (z.B. in TListbox.Objects[])
Zu deiner Frage: du musst das Memo im Controls[]-Array suchen
Delphi-Quellcode: | zusammenfalten | markieren | 1 · · · 5 · · · · 10 · · 13
| function FindMemo(parent:Tcontrol):TMemo;
var i : integer;
begin
for i := 0 to parent.ControlCount-1 do
begin
if parent.Controls[i] is TMemo then
begin
result := TMemo(parent.Controls[i]);
Exit;
end;
end;
result := nil; // nix gefunden
end; |
| |
|
 |
|
|
|
| |
| uligerhardt |
#9| Verfasst am: 09.12.2008, 12:52 Titel: Re: [Gelöst] PageControl Focus |
 |
 |
 |
|
Mitglied Alter: 39 Status: offline Beiträge: 451 angemeldet: 19.08.2004 Wohnort: Hof/Saale Delphi 2006 Professional

|
| shmia hat folgendes geschrieben: | Ich denke mal, dass für diesen Zweck ein PageControl nicht das Richtige ist.
Wenn auf jedem TabSheet immer nur das Gleiche drauf ist (ein TMemo), dann kann man doch auch nur ein Memo in Verbindung mit einer ListBox einsetzen.
(Listbox links; Memo rechts daneben)
Der Benutzer klickt auf einen Eintrag in der Listbox und das Programm ändert daraufhin den Inhalt des Memo.
Natürlich müssen dann alle Texte irgendwo getrennt gespeichert werden. (z.B. in TListbox.Objects[] |
Oder ein TTabControl statt der Listbox. Dann hat man die gleiche Optik wie mit dem Page Control, aber auch nur ein Memo. |
|
 |
|
|
|
| |
| -=IOI=- |
#10| Verfasst am: 09.12.2008, 13:16 Titel: Re: [Gelöst] PageControl Focus |
 |
 |
 |
|
Mitglied Status: offline Beiträge: 54 angemeldet: 05.03.2005

|
was ich schreiben möchte, ist ein 2 geteilter editor, bei dem man in jedem teil nochmal beliebig viele tabs öffnen kann.
deswegen hab ich mich für ein pagecontrol entschieden, da ich es nicht so gut fänd, wenn ich alles zwischenspeichern müsste.
also werde ich es mal mit dem obigen codestück versuchen.
danke für eure antworten |
|
 |
|
|
|
 |
|
 |
| |
|
|
| |
 
|
|