AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Treeview_Change "rückgängig" machen, Selected-Eigenschaft
Thema durchsuchen
Ansicht
Themen-Optionen

Treeview_Change "rückgängig" machen, Selected-Eigenschaft

Ein Thema von Christian123 · begonnen am 22. Mär 2005 · letzter Beitrag vom 22. Mär 2005
Antwort Antwort
Christian123

Registriert seit: 13. Jan 2005
18 Beiträge
 
#1

Treeview_Change "rückgängig" machen, Selected-Eige

  Alt 22. Mär 2005, 09:16
Folgendes Problem:

Beim Anklicken eines Nodes im Treeview wird das Change_ereignis ausgelöst.
in diesem finden bei mir Überprüfungen statt.
Ich habe unter anderem Folgende Zeile im Code.

treeview1.Items[inttreeselected].Selected := true

Sinn und Zweck: Bei einer fehlgeschlagenen Überprüfung soll der zuvor aktive Node wieder als aktiv dargestellt werden.
Jetzt hab ich aber das Problem, dass diese Zeile wiederum anscheinend auch ein Change-Ereignis
auslöst und der Code also ein zweites mal durchlaufen wird.
Gibt es eine Einfache Möglichkeit, um einen Node aktiv zu setzen, ohne, dass dieses Ereignis eintritt?
Oder hab ich schon die Lösung, auch wenn es nciht elegant aussieht:

if (inttreeanswer = 0)then
begin
antwort := MessageDlg(('Werte wurden geändert. Speichern?'), mtConfirmation,
[mbYes, mbNo, mbCancel], 0);

if antwort = mrCancel then
begin
inttreeanswer := 1;
treeview1.Items[inttreeselected].Selected := true ;
inttreeanswer := 0;
end;
end;

Zusätzliche Anmerkung: Dies ist nur eine Kurzfassung des eigentlichen Problems, es finden viel mehr Überprüfungen statt. hab ein Notizzettel-Programm, wo ich dann beim Node-wechsel die Änderungen speichere, wobei die Betreffes halt im Treeview angezeigt werden.
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#2

Re: Treeview_Change "rückgängig" machen, Selected-

  Alt 22. Mär 2005, 09:18
So:

Delphi-Quellcode:
var
  ChangeEvent: TNotifyEvent;
begin
  ChangeEvent := TreeView1.OnChange;
  TreeView1.OnChange := nil;
  //..
  TreeView1.OnChange := ChangeEvent;
end;
Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Christian123

Registriert seit: 13. Jan 2005
18 Beiträge
 
#3

Re: Treeview_Change "rückgängig" machen, Selected-

  Alt 22. Mär 2005, 09:37
So weit so gut, Aber leider klappt da irgendwas nicht so richtig.

procedure TForm1.TreeView1Change(Sender: TObject; Node: TTreeNode);
var nodenumber : integer;
var nodename : String;
var ChangeEvent: TNotifyEvent;
begin
ChangeEvent := TreeView1.OnChange; <--Fehler beim Kompilieren. Liste der parameter ist unterschiedlich

TreeView1.OnChange := nil;

Was fehlt?
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#4

Re: Treeview_Change "rückgängig" machen, Selected-

  Alt 22. Mär 2005, 09:40
Tja...hättest du dir die Hilfe zum TreeView angesehn, hättest du bemerkt dass das OnChange-Ereignis vom Typ "TTvChangedEvent" ist. Das mit TNotifyEvent war ein Schuss ins Blaue, und ein bisschen Selbsteinsatz wird man auch erwarten dürfen, oder nicht?

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Christian123

Registriert seit: 13. Jan 2005
18 Beiträge
 
#5

Re: Treeview_Change "rückgängig" machen, Selected-

  Alt 22. Mär 2005, 09:55
Eigentlich reg ich mich ja auf über die Arroganz, Herr Platinum-Member...
Ich unterstell mir mal ein bischen Selbsteinsatz..
Aber trotzdem Danke..
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#6

Re: Treeview_Change "rückgängig" machen, Selected-

  Alt 22. Mär 2005, 10:02
Zitat von Christian123:
Eigentlich reg ich mich ja auf über die Arroganz, Herr Platinum-Member...
Das war nicht Arroganz, du hast mich falsch verstanden. Ich musste nämlich genau dasselbe tun: die OH öffnen, denn ich wusste im Moment auch nicht genau welchen Typ das Ereignis hat. Deshalb mein Tipp mit der OH

Aber an die Anrede "Herr Platinum-Member" könnte ich mich gewöhnen

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  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 21:59 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