AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

PageControl spring automatisch um!

Ein Thema von BullsEye · begonnen am 23. Aug 2008 · letzter Beitrag vom 24. Aug 2008
Antwort Antwort
BullsEye

Registriert seit: 8. Sep 2007
Ort: Werlte
872 Beiträge
 
Delphi 7 Personal
 
#1

PageControl spring automatisch um!

  Alt 23. Aug 2008, 00:07
Hallo Leute, ich habe folgendes Problem:

Jedes mal wenn ich mein Anwendung starte, springt das Programm automatisch auf TabSheet2 auch wenn ich ein anderes anwähle, wechselt das nach ner Sekunde wieder zurück! Und ich finde den Fehler nicht! Im ganzen Code finde ich nichts mit Tabsheet2 oder AktivePageIndex, was darauf hindeuten kann!
Ich habe lediglich eine TreeView und eine Pagecontrol.

Und je nach dem wo ich in die TreeView klicke wird eine der 6 Tabsheets aufgerufen:
Delphi-Quellcode:
procedure TForm2.TreeView1Change(Sender: TObject; Node: TTreeNode);
begin
  if (TreeView1.Selected <> nil)then
    case TreeView1.Selected.Index of
      0 : PageControl1.ActivePageIndex := 0;
      1 : PageControl1.ActivePageIndex := 1;
      2 : PageControl1.ActivePageIndex := 2;
      3 : PageControl1.ActivePageIndex := 3;
      4 : PageControl1.ActivePageIndex := 4;
      5 : PageControl1.ActivePageIndex := 5;
    end;
end;
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#2

Re: PageControl spring automatisch um!

  Alt 23. Aug 2008, 01:42
Ich habe dir mal deine Code etwas umgeschrieben, so dass du in der Caption des Formulars siehst,
was gerade passiert.
Delphi-Quellcode:
procedure TForm2.TreeView1Change(Sender: TObject; Node: TTreeNode);
ver
  newindex:integer;
begin
  if TreeView1.Selected <> nil then
  begin
    newindex := TreeView1.Selected.Index;
    self.Caption := Format('Debug-Info: newindex=%d ', [newindex])+ TimeToStr(now);
    PageControl1.ActivePageIndex := newindex; // es geht auch ohne case...of
end;
Du solltest mal schauen, ob ein Veränderung des PageControls nicht vielleicht das TreeView ändert
-> rückkopplung möglich
Hast du einen Timer auf dem Form ?
  Mit Zitat antworten Zitat
BullsEye

Registriert seit: 8. Sep 2007
Ort: Werlte
872 Beiträge
 
Delphi 7 Personal
 
#3

Re: PageControl spring automatisch um!

  Alt 23. Aug 2008, 14:37
Zitat von sx2008:
Ich habe dir mal deine Code etwas umgeschrieben, so dass du in der Caption des Formulars siehst,
was gerade passiert.
Delphi-Quellcode:
procedure TForm2.TreeView1Change(Sender: TObject; Node: TTreeNode);
ver
  newindex:integer;
begin
  if TreeView1.Selected <> nil then
  begin
    newindex := TreeView1.Selected.Index;
    self.Caption := Format('Debug-Info: newindex=%d ', [newindex])+ TimeToStr(now);
    PageControl1.ActivePageIndex := newindex; // es geht auch ohne case...of
end;
Danke, sehr freundlich! Allerdings ändert da nicht viel. Er tauscht zwar wieder kurzzeitig die Page, springt dann jedoch wieder zurück behält aber die alte Caption!
Also geh ich mal davon aus, das es an der PageControl liegt, allerdings ist da das einzige Ereigniss:

Active Page Index = TabSheet1 Ich hab auch mal die Reihenfolge der Items des TreeViews geändert bringt aber auch nichts, springt immer wieder auf die selbe Seite! (TabSheet2)

Zitat von sx2008:
Hast du einen Timer auf dem Form ?
Ja, sogar 3 Stück, die haben aber nichts mit der TreeView bzw PageControl zu tun!
  Mit Zitat antworten Zitat
BullsEye

Registriert seit: 8. Sep 2007
Ort: Werlte
872 Beiträge
 
Delphi 7 Personal
 
#4

Re: PageControl spring automatisch um!

  Alt 24. Aug 2008, 14:29
Das Problem ist immernoch nicht gelöst !?

Irgendwie such ich nun schon die ganze Zeit nach dem Fehler, ich finde ihn aber gar nicht. Nicht einmal einen Hinweis darauf!
  Mit Zitat antworten Zitat
napsterxx

Registriert seit: 18. Mär 2007
Ort: Borland
556 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: PageControl spring automatisch um!

  Alt 24. Aug 2008, 14:50
Für was die Case-Abfrage?
PageControl1.ActivePageIndex := TreeView1.Selected.Index; Mehr Code wäre sicherlich hilfreich.
Du derefernzierst p2 einmal und weißt die Adresse von i zu. Das heißt p2 (also der Zeiger auf einen Zeiger) zeigt auf den Zeiger p1 welchen du so auf i zeigen lässt.
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#6

Re: PageControl spring automatisch um!

  Alt 24. Aug 2008, 14:59
Zitat von BullsEye:
...Er tauscht zwar wieder kurzzeitig die Page, springt dann jedoch wieder zurück...
Timer...sogar 3 Stück, die haben aber nichts mit der TreeView bzw PageControl zu tun!
Aha, und das Verhalten soll also nix mit den Timern zu tun haben, obwohl eindeutig eine Verzögerung sichtbar ist?
Mach eine Sicherheitskopie von deinem Formular und dann wähle der Reihe nach alle 3 Timer an.
Dann im Objektinspektor das Event OnTimer löschen.
Also nicht den Sourcecode zum Event, sondern nur das Property OnTimer.
So müsste sich feststellen lassen, welcher Timer für das Problem verantwortlich ist.
  Mit Zitat antworten Zitat
BullsEye

Registriert seit: 8. Sep 2007
Ort: Werlte
872 Beiträge
 
Delphi 7 Personal
 
#7

Re: PageControl spring automatisch um!

  Alt 24. Aug 2008, 15:10
Ich hab den Fehler gefunden.

Irgendwie doof! Also ich hatte folgenden Code:

Delphi-Quellcode:
IF CheckBox6.Checked THEN
BEGIN

   Label10.Show;
END ELSE
BEGIN
   Label10.Hide;
END;
und Label10 ist halt auf Tabsheet2. Deshalb ist er da immer hingesprungen. Richtig muss der Code so lauten:

Delphi-Quellcode:
IF CheckBox6.Checked THEN
BEGIN

   Label10.Visible := true;
END ELSE
BEGIN
   Label10.Visible := false;
END;
Danke euch allen trotzdem für die Hilfe!
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: PageControl spring automatisch um!

  Alt 24. Aug 2008, 15:26
Wieso nicht gleich Label10.Visible := Checkbox6.Checked?
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
BullsEye

Registriert seit: 8. Sep 2007
Ort: Werlte
872 Beiträge
 
Delphi 7 Personal
 
#9

Re: PageControl spring automatisch um!

  Alt 24. Aug 2008, 15:32
Zitat von Apollonius:
Wieso nicht gleich Label10.Visible := Checkbox6.Checked?
Aus dem Grunde, das da noch mehr druf liegt, also nur das Label Visible.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:54 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz