AGB  ·  Datenschutz  ·  Impressum  







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

ComboBox Onchange ereignis schliesst form

Ein Thema von dioony · begonnen am 12. Jul 2005 · letzter Beitrag vom 13. Jul 2005
Antwort Antwort
dioony

Registriert seit: 18. Apr 2005
Ort: Oldenburg
18 Beiträge
 
Delphi 6 Enterprise
 
#1

ComboBox Onchange ereignis schliesst form

  Alt 12. Jul 2005, 19:40
Abend!

Ich habe 2 Forms. Auf der Zweiten Form habe ich eine ComboBox und eine ShellTreeView Komponente.
Die ComboBox hat als Items z.B.:
E:\
F:\
G:\

wenn ich nun die auswahl änder wird die folgende procedure aufgerufen:

Delphi-Quellcode:
procedure TForm2.ComboBox1Change(Sender: TObject);
begin
  ShellTreeView1.Root:=ComboBox1.Text;
end;
Das sollte doch so ok sein?! Wenn ich aber nun bei der ComboBox einen anderen Eintrag wähle (z.b. F:\ ), dann schließt sich die Form2.
Wenn ich darauf hin von Form1 wieder Form2 öffne, dann ist der Root des ShellTreeView auch mein neugewähltes Laufwerk (hier F:\ )
Wie kann ich das schließen des Forms denn verhindern?! Woran kann das liegen?

die ShellComboBox kann ich nicht benutzen, weil nur bestimmte, vorher gefilterte ( keine leeren etc. ) Laufwerke aufgelistet werden sollen...


Fehlermeldungen gibt er überhaupt nicht aus...

hoffe jemand kann mir da helfen!

thx
dioony
Iterativ arbeiten ist menschlich, rekursiv dagegen göttlich
  Mit Zitat antworten Zitat
Benutzerbild von noHuman
noHuman

Registriert seit: 12. Jul 2005
Ort: Österreich/Stmk
56 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: ComboBox Onchange ereignis schliesst form

  Alt 12. Jul 2005, 20:13
So müsste es gehen:

eine variable vom Typ Boolean;
[delphi]
var
Form2 : TForm2;
combo_change : Boolean;
[delphi]

die ComboBox Prozedur
[delphi]
procedure TForm2.ComboBox1Change(Sender: TObject);
begin
ShellTreeView1.Root:=ComboBox1.Text;
combo_change := True;
end;
[delphi]

das OnCloseQuery vom Formular
[delphi]
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
if combo_change := True then
begin
CanClose := False;
combo_change := False;
end;
end;
[delphi]

das Sollte gehen (ungetestet!)
  Mit Zitat antworten Zitat
dioony

Registriert seit: 18. Apr 2005
Ort: Oldenburg
18 Beiträge
 
Delphi 6 Enterprise
 
#3

Re: ComboBox Onchange ereignis schliesst form

  Alt 12. Jul 2005, 20:23
Hi!
Danke erstmal, das hat mir leider nicht weitergeholfen...
funktionierte leider nicht...

Aber wenn er darauf nicht reagiert, dann sollte das wahrscheinlich bedeuten, dass er die Form nicht normal schließt.
Ich wüsste aber auch nicht, wo der Fehler liegen könnte...

habe auch schon überlegt, ob es beim shelltreeview sowas wie die methode beginupdate oder so was in der art gibt?
Habe darüber auch nichts im www gefunden...
Iterativ arbeiten ist menschlich, rekursiv dagegen göttlich
  Mit Zitat antworten Zitat
dioony

Registriert seit: 18. Apr 2005
Ort: Oldenburg
18 Beiträge
 
Delphi 6 Enterprise
 
#4

Re: ComboBox Onchange ereignis schliesst form

  Alt 13. Jul 2005, 20:14
Abend!

Wollte mal ebend einen anderen Ansatz posten, der mir eingefallen ist, aber der Funktioniert nicht ganz so, wie ich es mir gedacht habe...

Meinen Nachforschungen nach liegt der Fehler wohl in der Kombination von ShellTreeView und der ComboBox. Nun habe ich mir gedacht, dass ich statt der ComboBox eine ShellComboBox nehme und sie mir meinen ansprüchen anpasse. ShellComboBox und ShellTreeView kann man über die Eigenschaften ja miteinander verknüpfen...

Das ganze sieht dann so aus:

Delphi-Quellcode:
ShellComboBox1.Clear;
ShellComboBox1.Items.Add('E:\');
ShellComboBox1.Items.Add('F:\');
Das Problem hierbei ist jetzt nur, dass die ShellComboBox von

ShellComboBox.Root:=rfDesktop; abhängig ist und daher automatisch den Inhalt des Desktops in der ShellComboBox wiedergibt... Es sollen ja nur vorher bestimmte Laufwerke angezeigt werden...

kann man sowas irgendwie umgehen? zu der ShellComboBox habe ich auch nichts wissenwertes gefunden. Delphi hat es bei mir zumindest noch nicht mal in der hilfe...

cya

dioony

//edit...:

Habe das Problem das ganz am anfang war, gelöst....
er hat die form geschlossen, weil in der prozedur ShellTreeView1Change die Form2 disabled wurde und danach wieder enabled. Irgendwie hat ihn das gestört...

wollte die lösung nur ebend fürs protokoll posten
Iterativ arbeiten ist menschlich, rekursiv dagegen göttlich
  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:09 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