![]() |
Setzen von combobox index Funktioniert nicht
Hallo Zusammen,
ich hab einen merkwürdigen Fehler, wenn ich den Index von einer Combobox setzen möchte. Entweder Zeigt er mir das Falsche an, oder garnichts. Ich hoffe Ihr könnt mir weiter helfen. Hier einmal die Code Stücke.
Delphi-Quellcode:
So jetzt zur Sache: Das was in OnCreate Steht Stand auch mal OnShow, da hatte ich das Problem das index[0] eigentlich A: sein sollte, aber da kam Q raus.
function DriveExists(DriveByte: Byte): Boolean;
begin Result := GetLogicalDrives and (1 shl DriveByte) <> 0; end; procedure TForm6.FormCreate(Sender: TObject); var I : Integer; begin combobox2.Clear; for i := 0 to 25 do begin if not DriveExists(I) then begin Combobox2.Items.Add(Chr(I + Ord('A')) + ':'); end; end; end; procedure TForm6.ComboBox2DropDown(Sender: TObject); var I : Integer; begin combobox2.Clear; for I := 0 to 25 do begin if not DriveExists(I) then begin Combobox2.Items.Add(Chr(I + Ord('A')) + ':'); end; end; end; procedure TForm6.ComboBox1Select(Sender: TObject); begin combobox2.ItemIndex := 0; end; Wenn ich es OnCreate machen Zeigt er mir im Debugger an das in Index[0] nciht drin ist wenn ich in Combobox1 etwas Ausgewählt habe. Wenn ich voher Einmal combobox2.Dropdown gestartet hatte Dann Zeigt er mir das Ohne Probleme an also sobald ich index = 0 setzte zeigt er A: an ich hoffe das Ihr mir helhen könnt Liebe Grüße Manu |
Re: Setzen von combobox index Funktioniert nicht
Was passiert denn so?
Delphi-Quellcode:
function DriveExists(DriveByte: Byte): Boolean;
begin Result := GetLogicalDrives and (1 shl DriveByte) <> 0; end; procedure TForm6.FormCreate(Sender: TObject); var I : Integer; begin combobox2.Clear; for i := 0 to 25 do begin if not DriveExists(I) then begin Combobox2.Items.Add(Chr(I + Ord('A')) + ':'); end; end; end; {procedure TForm6.ComboBox2DropDown(Sender: TObject); var I : Integer; begin combobox2.Clear; for I := 0 to 25 do begin if not DriveExists(I) then begin Combobox2.Items.Add(Chr(I + Ord('A')) + ':'); end; end; end;} procedure TForm6.ComboBox1Select(Sender: TObject); begin if ComboBox2.Items.Count > 0 then combobox2.ItemIndex := 0; end; |
Re: Setzen von combobox index Funktioniert nicht
Wann kommt das Ereignis "Select" (kenne das in Delphi 5 nicht).
Macht ja mehr Sinn, das auch in Create zu stellen, sonst überschreibt er ja, was der User Selectiert hat, oder? |
Re: Setzen von combobox index Funktioniert nicht
nein nein das ganze diehnt ja dazu Netzlaufwerke zu mappen. Das ist einmal der Pfad(Combobox1)
und einmal der Laufwerksbuchstabe (Combobox2). Select setzt dann ein, wenn der Anwender ein Item Auswählt. auch die auskemmentierung hatte keinen sinn, oder zweck. Problem ist nachwiefolt Gleich |
Re: Setzen von combobox index Funktioniert nicht
Ja ComboBox1 und ComboBox2 :roll: Muss mal anfangen genauer zu lesen.
Wenn man in ComboBox1 ein Verzeichnis wählt, soll er automatisch in ComboBox2 (Laufwerke) den ersten verfügbaren Laufwerksbuchstaben anzeigen? |
Re: Setzen von combobox index Funktioniert nicht
ja genau
|
Re: Setzen von combobox index Funktioniert nicht
Dann könntest Du ja trotzdem im Create ComboBox2.ItemIndex bereits auf 0 setzen?
Also die Laufwerksbuchstaben sind in ComboBox2 ja drin, das hast Du ja überprüft. Der Code in ComboBox1.onSelect scheint mir auch OK. Nur löst das zuweisen des ComboBox2.ItemIndex kein Ereignis aus, das ComboBox2 zur korrekten Anzeige veranlasst? Vielleicht ein ComboBox2.Update... kann ja nicht sein, das er die Zuweisung an ItemIndex einfach komplett ignoriert. PS: Da lobe ich mir doch Bezeichner wie ComboBoxLaufwerke und ComboBoxPfade ;) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:43 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz