Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Setzen von combobox index Funktioniert nicht (https://www.delphipraxis.net/129394-setzen-von-combobox-index-funktioniert-nicht.html)

5etH 18. Feb 2009 10:56


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:
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;
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.

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

DeddyH 18. Feb 2009 11:08

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;

Satty67 18. Feb 2009 11:15

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?

5etH 18. Feb 2009 11:18

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

Satty67 18. Feb 2009 11:22

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?

5etH 18. Feb 2009 11:29

Re: Setzen von combobox index Funktioniert nicht
 
ja genau

Satty67 18. Feb 2009 11:38

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