AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein XML Nach aufklappen kein focusieren Möglich
Thema durchsuchen
Ansicht
Themen-Optionen

Nach aufklappen kein focusieren Möglich

Ein Thema von Mondengel · begonnen am 30. Okt 2009 · letzter Beitrag vom 30. Okt 2009
Antwort Antwort
Mondengel

Registriert seit: 26. Jan 2009
49 Beiträge
 
Delphi 6 Personal
 
#1

Nach aufklappen kein focusieren Möglich

  Alt 30. Okt 2009, 10:08
Hi Leute,
Ich hab da ein Problem und zwar kommt immer eine Fehlermeldung, wenn ich nach dem Aufklapen des Baums den zuletz aufgenommenen Item focusieren will.
Ich hab schonmal soviel rausgefunden, das nach dem aufklappen der Pointer verschwindet.
Das seltsamme ist nuur das es manchmal vorkommt. Wenn ich langsam debuge entsteht der Fehler nicht.
Delphi-Quellcode:
Var
  newNode : TdxTreelistNode;
begin
  ...
  newNode.Parent.Expand(True); // Hier entsteht der Fehler
                                  // newNode.Data = nil / newNode.Index = -1
  if (newNode <> nil) Then
    newNode.Focused := True;
  ...
end;
Ich hab keine Ahnung was ich dagegen machen soll
Es gibt keine dummen Fragen nur dumme Antworten und wer es besserweis der ist selber ein Dummkopf
  Mit Zitat antworten Zitat
Mondengel

Registriert seit: 26. Jan 2009
49 Beiträge
 
Delphi 6 Personal
 
#2

Re: Nach aufklappen kein focusieren Möglich

  Alt 30. Okt 2009, 12:55
Hat den niemand einen kleinen Tipp?
Es gibt keine dummen Fragen nur dumme Antworten und wer es besserweis der ist selber ein Dummkopf
  Mit Zitat antworten Zitat
stho

Registriert seit: 16. Sep 2009
Ort: 127.0.0.1
288 Beiträge
 
Delphi 2007 Professional
 
#3

Re: Nach aufklappen kein focusieren Möglich

  Alt 30. Okt 2009, 12:59
hast du den node denn schon irgendwo angehängt? nun, mit der komponente die du nutzt kenn ich mich net so gut aus ^^ nimm doch den VST.
Der ist Freeware und auch für einiges zu haben Außerdem findest du für den schon ne ganze menge hier im Forum.

EDIT:
Wie heißt denn dein Fehler der da kommt?
Bist du dir sicher das es dieses Objekt eigentlich gibt?! Wie heißt denn die Komponente die du benutzt GENAU?
  Mit Zitat antworten Zitat
Mondengel

Registriert seit: 26. Jan 2009
49 Beiträge
 
Delphi 6 Personal
 
#4

Re: Nach aufklappen kein focusieren Möglich

  Alt 30. Okt 2009, 13:13
Also ich verwende dir Komponente dxTreeList

Und bei Fehlermeldung kommt "Zugriffsverletzung bei der Adresse 03007E28. Schreiben von Adresse 7326D0EA"
Es gibt keine dummen Fragen nur dumme Antworten und wer es besserweis der ist selber ein Dummkopf
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#5

Re: Nach aufklappen kein focusieren Möglich

  Alt 30. Okt 2009, 13:17
Hast Du denn vorher überprüft, on newNode.Parent <> nil ist?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Mondengel

Registriert seit: 26. Jan 2009
49 Beiträge
 
Delphi 6 Personal
 
#6

Re: Nach aufklappen kein focusieren Möglich

  Alt 30. Okt 2009, 13:24
Hab's mal eingebaut. Trotzdem kommt der Fehler

Delphi-Quellcode:
Var
  newNode : TdxTreelistNode;
begin
  ...
  newNode.Parent.Expand(True); // Hier entsteht der Fehler
                                  // newNode.Data = nil / newNode.Index = -1
  if (newNode <> nil) and (newNode.Parent <> nil) Then
    newNode.Focused := True;
  ...
end;
Es gibt keine dummen Fragen nur dumme Antworten und wer es besserweis der ist selber ein Dummkopf
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#7

Re: Nach aufklappen kein focusieren Möglich

  Alt 30. Okt 2009, 13:27
Und wo holst du newNode her? Wo wird die Instanz geholt bzw. angelegt? Wird die noch woanders freigegeben?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#8

Re: Nach aufklappen kein focusieren Möglich

  Alt 30. Okt 2009, 13:42
Zitat:
newNode.Parent.Expand(True);
Du musst natürlich vor dieser Zeile bereits prüfen, ob newNode und newNode.Parent nicht nil sind.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.343 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Nach aufklappen kein focusieren Möglich

  Alt 30. Okt 2009, 13:53
Zitat:
Das seltsamme ist nuur das es manchmal vorkommt. Wenn ich langsam debuge entsteht der Fehler nicht.
Zu Deiner Komponente kann ich nichts sagen, nur eine grundsätzliche Überlegung.
Wenn Du einen Breakpoint setzt und schrittweise debugst, wird sich Dein Formular teilw. neu zeichnen.
Evtl. macht das den Unterschied.

Vielleicht kannst Du Deine Komponente veranlassen, sich zwischendurch ausdrücklich neu zu zeichnen oder zumindest einmal ein ProcessMessages versuchen...

Stahli
  Mit Zitat antworten Zitat
Mondengel

Registriert seit: 26. Jan 2009
49 Beiträge
 
Delphi 6 Personal
 
#10

Re: Nach aufklappen kein focusieren Möglich

  Alt 30. Okt 2009, 14:05
Also ich hab jetzt soviel rausgefunden, das nach dem öffnen des Baums die Items neu geladen werden.
Dadurch passierts, dass sich die Speicheradressen ändern, weil doppelte rausfliegen und sich der Baum sortiert.

Delphi-Quellcode:
Procedure AddNewObjekt(NewObjektname : String);
Var
  NewNode : TdxTreelistNode;
begin
   NewNode := AddMissingObjects (NewObjektname);
   newNode.Parent.Collapse(True);
   newNode.Parent.Expand(True); // Hier entsteht der Fehler
                                   // newNode.Data = nil / newNode.Index = -1
   If (NewNode <> Nil) Then
   Begin
     newNode.Focused := True;
   End;
End;
Parent ist aufjedenfall da, weil in AddMissingObject ein Parent angelegt wird, falls keiner da ist.

@stahli
Zitat:
Zu Deiner Komponente kann ich nichts sagen, nur eine grundsätzliche Überlegung.
Wenn Du einen Breakpoint setzt und schrittweise debugst, wird sich Dein Formular teilw. neu zeichnen.
Evtl. macht das den Unterschied.
könnt nartürlich ein Grund sein
Es gibt keine dummen Fragen nur dumme Antworten und wer es besserweis der ist selber ein Dummkopf
  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 03:13 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