Discussion:
Treeview Eintrag suchen und markieren
(zu alt für eine Antwort)
Josef Koller
2007-11-02 02:19:23 UTC
Permalink
Hallo,

ich möchte mit der folgenden Schleife einen Eintrag in einem TreeView suchen
und den gefundenden Eintrag selektieren:

Procedure .........
var i:integer;
begin
for loop:= 0 to Pred(TreeView1.Items.Count) do
if TreeView1.Items.Item[i].Text = '22.10.2007' then begin
TreeView1.Items.Item[i].Selected;
TreeView1.Items.Item[i].Focused;
end;
end;

Die Schleife wird durchlaufen, auch der Eintrag gefunden, selected und
focused werden abgearbeitet, nur im Treeview tut sich nichts.

Kann mir jemand sagen, wie's richig geht?

Besten Dank.

Josef
Sebastian Wulf
2007-11-02 06:24:39 UTC
Permalink
Hallo,
Post by Josef Koller
ich möchte mit der folgenden Schleife einen Eintrag in einem TreeView suchen
Procedure .........
var i:integer;
begin
for loop:= 0 to Pred(TreeView1.Items.Count) do
if TreeView1.Items.Item[i].Text = '22.10.2007' then begin
TreeView1.Items.Item[i].Selected;
TreeView1.Items.Item[i].Focused;
end;
end;
Die Schleife wird durchlaufen, auch der Eintrag gefunden, selected und
focused werden abgearbeitet, nur im Treeview tut sich nichts.

Selected und Focused werden zwar abgearbeitet, aber nicht auf True gesetzt

TreeView1.Items.Item[i].Selected := true;



Viele Grüße
Sebastian
Josef Koller
2007-11-02 08:52:38 UTC
Permalink
Hallo,
Post by Sebastian Wulf
Selected und Focused werden zwar abgearbeitet, aber nicht auf True gesetzt
TreeView1.Items.Item[i].Selected := true;
besten Dank. Da probier ich Stunden rum, verlauf mich im Wald und überseh
das einfache true.
Besten Dank.

treeviewe1.setfocus muß übrigens auch noch hin.

Josef
Michael Landenberger
2007-11-03 11:44:13 UTC
Permalink
Post by Sebastian Wulf
Post by Josef Koller
Post by Josef Koller
TreeView1.Items.Item[i].Selected;
TreeView1.Items.Item[i].Focused;
Die Schleife wird durchlaufen, auch der Eintrag gefunden, selected
und focused werden abgearbeitet, nur im Treeview tut sich nichts.
Selected und Focused werden zwar abgearbeitet, aber nicht auf True gesetzt
Es war mir absolut neu, dass der Compiler nicht meckert, wenn man eine
Eigenschaft wie einen Prozeduraufruf benutzt. Wieder was gelernt ;-)

Gruß

Michael
Thomas G. Liesner
2007-11-05 21:23:06 UTC
Permalink
Post by Michael Landenberger
Es war mir absolut neu, dass der Compiler nicht meckert, wenn man eine
Eigenschaft wie einen Prozeduraufruf benutzt. Wieder was gelernt ;-)
Standard seit Turbo Pascal irgendwann vor 7.0 - damals als
Compileroption IIRC. Denn Eigenschaften sind technisch von Funktionen
nicht unterscheidbar.

So long,
Thomas G. Liesner
--
Neue Hamster-stable 2.1.0.11 seit 28.03.2006
http://www.tglsoft.de (Unterpunkt Freeware)
Michael Landenberger
2007-11-05 22:30:22 UTC
Permalink
Post by Thomas G. Liesner
Post by Michael Landenberger
Es war mir absolut neu, dass der Compiler nicht meckert, wenn man
eine Eigenschaft wie einen Prozeduraufruf benutzt.
Standard seit Turbo Pascal irgendwann vor 7.0 - damals als
Compileroption IIRC. Denn Eigenschaften sind technisch von
Funktionen nicht unterscheidbar.
Wenn Borland das gewollt hätte, wären entsprechende Fehlermeldungen in den
Compiler eingebaut worden, und das auch dann, wenn Eigenschaften von
Funktionen technisch nicht unterscheidbar sind.

Aber gut, dass jemand Eigenschaftsnamen wie Prozeduraufrufe benutzt, dürfte
eher selten vorkommen ;-)

Gruß

Michael
Hubert Seidel
2007-11-06 16:07:37 UTC
Permalink
Hallo,
Post by Michael Landenberger
Post by Thomas G. Liesner
Post by Michael Landenberger
Es war mir absolut neu, dass der Compiler nicht meckert, wenn man
eine Eigenschaft wie einen Prozeduraufruf benutzt.
Standard seit Turbo Pascal irgendwann vor 7.0 - damals als
Compileroption IIRC. Denn Eigenschaften sind technisch von
Funktionen nicht unterscheidbar.
Es gibt diese "Erweiterte Syntax" mindestens seit Turbo Pascal 6.0.
Post by Michael Landenberger
Wenn Borland das gewollt hätte, wären entsprechende Fehlermeldungen in den
Compiler eingebaut worden, und das auch dann, wenn Eigenschaften von
Funktionen technisch nicht unterscheidbar sind.
Borland hat das scheinbar gewollt :-)
Denn bau mal vor der Eigenschaft (oder oben ) ein {$X-} ein welche
die "Erweiterte Syntax" abschaltet (altarnative zu dem Optionen im Menü).

Also z.b. innerhalb eines Forms:

procedure TForm1.Button1Click(Sender: TObject);
begin
{$X+}caption; // compilierbar
end;

...
{$X-}caption; // nicht compilierbar
...
Post by Michael Landenberger
Aber gut, dass jemand Eigenschaftsnamen wie Prozeduraufrufe benutzt, dürfte
eher selten vorkommen ;-)
Es gibt Leute die diesen Seiteneffekt tatsächlich "nutzen" <pfuibah>.
Letztendlich wird ja die Funktion der Eigenschaft aufgerufen und
kann/könnte tatsächlich noch andere Dinge machen...

mfg. Herby

--
http://www.hubert-seidel.de

Loading...