On Sat, 27 Jul 2013, Hans Lehmann wrote:
>
> Kurze Nachfrage:
> Wie synchronisiere ich die Anzeige in der DirChooser-Komponente,
> wenn ich einen Pfad aus der History in der ComboBox ausw?hle?
>

Das ist mit einem kleinen Trick verbunden. Man kann zwar dchPath.Value
auf den Pfad aus der ComboBox-Eingabe setzen, aber das wuerde wieder das
dchPath_Change()-Event ausloesen, was wiederum unsere ComboBox
zuruecksetzen wuerde.

In cmbPath_Change() muss also das dchPath-Objekt gelockt werden (d.h. es
soll keine Events mehr ausloesen), dann wird dchPath.Value auf den Wert von
cmbPath.Text gesetzt und dann das dchPath-Objekt wieder ungelockt.

Ein Patch dafuer ist im Anhang.

Mit freundlichen Grueszen,
Tobias


ComboBoxFavourites-0.0.1~ComboBoxFavourites-0.0.2.patch

diff -urNaX /tmp/gambas-patch-ignore a/.project b/.project
--- a/.project  2013-07-27 16:47:51.000000000 +0200
+++ b/.project  2013-07-27 18:05:44.000000000 +0200
@@ -2,7 +2,7 @@
 # Compiled with Gambas 3.4.90
 Title=ComboBoxFavourites
 Startup=FMain
-Version=0.0.1
+Version=0.0.2
 Component=gb.image
 Component=gb.qt4
 Component=gb.form
diff -urNaX /tmp/gambas-patch-ignore a/.src/FMain.class b/.src/FMain.class
--- a/.src/FMain.class  2013-07-27 16:47:43.000000000 +0200
+++ b/.src/FMain.class  2013-07-27 18:08:49.000000000 +0200
@@ -21,6 +21,14 @@
   cmbPath.Text = dchPath.Value
 End
 
+Public Sub cmbPath_Change()
+  ' Nicht das Change-Event beim DirChooser ausloesen, da es sonst wieder
+  ' den ComboBox-Text zuruecksetzt
+  Object.Lock(dchPath)
+  dchPath.Value = cmbPath.Text
+  Object.Unlock(dchPath)
+End
+
 Public Sub cmbPath_Activate()
   btnSelect_Click()
 End
