Delphi-PRAXiS :: Das Forum für Fragen zu Delphi
Das Experten Forum für Delphi Programmierer
Hilfe für CodeGear Delphi gibts es hier im Forum
Delphi Quelltexte und Source Codes
 
Delphi-PRAXiS :: Foren-ÜbersichtForen-Übersicht Delphi-PRAXiS Modul-ÜbersichtSite-Map Delphi-PRAXiS durchsuchenSuchen Delphi-PRAXiS Code-LibraryCode-Library Jetzt registrieren!Registrieren Login  
   
 
0
 
Delphi für Win32
[Gelöst] PageControl Focus
Ein Delphi (Win32)-Thema von -=IOI=-.

Vorheriges Thema anzeigen  |  Nächstes Thema anzeigen
Neuen Beitrag schreiben Auf Beitrag antworten
als PDF-Datei herunterladenThema ausdrucken
 
Delphi-PRAXiS Forum - Übersicht -> VCL / WinForms / Controls
Seite 1 von 1   [ 10 Beiträge ]  
 
 Autor 
 Nachricht 
 
-=IOI=- #1|Beitrag #972661Verfasst am: 04.12.2008, 23:23      Titel: [Gelöst] PageControl Focus Antworten mit Zitat
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.
nach oben nach unten
Benutzer-Profile anzeigen Private Nachricht senden
Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen im Forum zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Google zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Wikipedia zu suchen.
 
 
alzaimar #2|Beitrag #972665Verfasst am: 04.12.2008, 23:43      Titel: Re: PageControl Focus Antworten mit Zitat
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.
nach oben nach unten
Benutzer-Profile anzeigen Private Nachricht senden
Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen im Forum zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Google zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Wikipedia zu suchen.
 
 
-=IOI=- #3|Beitrag #972671Verfasst am: 05.12.2008, 00:00      Titel: Re: PageControl Focus Antworten mit Zitat
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.
nach oben nach unten
Benutzer-Profile anzeigen Private Nachricht senden
Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen im Forum zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Google zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Wikipedia zu suchen.
 
 
toms #4|Beitrag #972702Verfasst am: 05.12.2008, 07:19      Titel: Re: PageControl Focus Antworten mit Zitat
CodeLib-Manager
Alter: 31
Status: offline
Beiträge: 4.140
angemeldet: 10.06.2002
Delphi 6 Professional

Hallo

Aktives Control ermitteln:

Delphi-Quellcode: markieren
Screen.ActiveControl


Falls sich bei diesem nicht um ein TPageControl handelt (und <> nil ist) mit
.Parent das Parent Control ermitteln:

Delphi-Quellcode: markieren
Screen.ActiveControl.Parent

WinSpy 2008 - Der Fenster Spion (V.2.0.3.523 - 06.09.2008)
nach oben nach unten
Benutzer-Profile anzeigen Private Nachricht senden
Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen im Forum zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Google zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Wikipedia zu suchen.
 
 
-=IOI=- #5|Beitrag #972781Verfasst am: 05.12.2008, 13:27      Titel: Re: PageControl Focus Antworten mit Zitat
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.
nach oben nach unten
Benutzer-Profile anzeigen Private Nachricht senden
Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen im Forum zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Google zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Wikipedia zu suchen.
 
 
shmia #6|Beitrag #972806Verfasst am: 05.12.2008, 15:00      Titel: Re: PageControl Focus Antworten mit Zitat
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.
nach oben nach unten
Benutzer-Profile anzeigen Private Nachricht senden
Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen im Forum zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Google zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Wikipedia zu suchen.
 
 
-=IOI=- #7|Beitrag #974003Verfasst am: 09.12.2008, 08:18      Titel: Re: [Gelöst] PageControl Focus Antworten mit Zitat
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:
Delphi-Quellcode: markieren
memo := (ActiveControl.Child as TMemo);
nach oben nach unten
Benutzer-Profile anzeigen Private Nachricht senden
Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen im Forum zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Google zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Wikipedia zu suchen.
 
 
shmia #8|Beitrag #974064Verfasst am: 09.12.2008, 12:23      Titel: Re: [Gelöst] PageControl Focus Antworten mit Zitat
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
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;
nach oben nach unten
Benutzer-Profile anzeigen Private Nachricht senden
Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen im Forum zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Google zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Wikipedia zu suchen.
 
 
uligerhardt #9|Beitrag #974074Verfasst am: 09.12.2008, 12:52      Titel: Re: [Gelöst] PageControl Focus Antworten mit Zitat
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.
nach oben nach unten
Benutzer-Profile anzeigen Private Nachricht senden
Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen im Forum zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Google zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Wikipedia zu suchen.
 
 
-=IOI=- #10|Beitrag #974090Verfasst am: 09.12.2008, 13:16      Titel: Re: [Gelöst] PageControl Focus Antworten mit Zitat
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
nach oben nach unten
Benutzer-Profile anzeigen Private Nachricht senden
Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen im Forum zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Google zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Wikipedia zu suchen.
 
Anzeige-Optionen:    
 
Delphi-PRAXiS Forum - Übersicht -> VCL / WinForms / Controls Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1   [ 10 Beiträge ]  
 
  Neuen Beitrag schreiben Auf Beitrag antworten
als PDF-Datei herunterladenThema ausdrucken
 
   
Gehe zu:  
Du darfst keine Beiträge in dieses Forum schreiben.
Du darfst auf Beiträge in diesem Forum nicht antworten.
Du darfst Deine Beiträge in diesem Forum nicht bearbeiten.
Du darfst Deine Beiträge in diesem Forum nicht löschen.
Du darfst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten.
Du kannst Dateien in diesem Forum nicht herunterladen.


Impressum / Kontakt
Allgemeine Geschäftsbedingungen
Verhaltenskodex & FAQ

Delphi-PRAXiS :: Das Forum für Delphi-Programmierer
Das Experten Forum für Delphi ProgrammiererHilfe für Borland Delphi gibts es hier im ForumDelphi Quelltexte und Source CodesDelphi-PRAXiS :: Das Forum für DelphiWindows APIInternet und NetzwerkeVCL und Datenbanken
 

Delphi-PRAXiS V.2005 III
© 2002-2009 by Daniel R. Wolf
powered by phpBB © phpBB Group

Impressum / Kontakt Allgemeine Geschäftsbedingungen