Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   DriveList string ersetzen (https://www.delphipraxis.net/170125-drivelist-string-ersetzen.html)

EWeiss 1. Sep 2012 20:41


DriveList string ersetzen
 
Ich erstelle eine DriveList (nonvcl) der erste index wird mit einem Leerstring gefüllt
also " " ein zeichen dazwischen frei.

Wenn ich nun das erste Laufwerk ändere ist der ausgewählte Index = 1 der Index 0 ist dann immer noch leer.
Sichtbar ist dann als beispiel "C:\"

Wenn ich nun einen neues Laufwerk auswähle möchte ich quasi das der Index 0 mit dem zuletzt in der Liste sichbaren
Eintrag gefüllt wird damit beim aufklappen der Box der Index 0 nicht leer ist.

Ich hoffe ihr versteht was ich meine.

Finde keine Sendmessage die das ermöglicht ..
Wie geht es trotzdem ?

gruss

Medium 2. Sep 2012 02:10

AW: DriveList string ersetzen
 
Wie erstellst du die Box? Ich konnte im MSDN so weit nur Infos zu einer VB-Klasse finden, leider nichts zu einer von der WinAPI bereit gestellten. Daher ist mir nicht ganz klar, um was für ein Common-Control es sich hier handelt. Im Zweifel würde ich aber auch einfach mal ganz frech ein WM_SETTEXT ausprobieren. So als Schuss ins Blaue.

EWeiss 2. Sep 2012 10:03

AW: DriveList string ersetzen
 
DriveListBox ist im grunde genommen nichts anderes als eine ComboBox.
ComboBoxen kann man zumindest was den sichbaren teil angeht überzeichnen.
Die einträge werden aber von einer zur Laufzeit unsichtbaren ListBox verwaltet die erst sichtbar
wird wenn man einen Eintrag ändern will.
Diese ist selbst mit viel Trickserei nicht zu überzeichnen.

Also zu deiner Frage.
Es ist quasi eine ListBox deren verhalten dem einer DriveListBox angepaßt wurde.

Ich glaube mein Problem ist das ich nur eine Verwende.
Nach einiger überlegung komme ich dann zum schluss das ich 2 Verwenden muss.
Die erste mit nur einem Eintrag der übergeben wird wenn man auf der zweiten einen Eintrag auswählt.
So kann ich dann den alten erhalten wenn ich mich entschieden habe kein neues Laufwerk auszuwählen.

gruss

lbccaleb 2. Sep 2012 11:56

AW: DriveList string ersetzen
 
Weiß jetzt nicht ob ich den Fehler 100%ig verstanden hab, aber wieso nicht alle auswählbaren Geräte in ein Array incl. dem leer String und dann einfach den richtigen laden?

EWeiss 2. Sep 2012 12:06

AW: DriveList string ersetzen
 
Zitat:

Zitat von lbccaleb (Beitrag 1181022)
Weiß jetzt nicht ob ich den Fehler 100%ig verstanden hab, aber wieso nicht alle auswählbaren Geräte in ein Array incl. dem leer String und dann einfach den richtigen laden?

Weil diese in eine ListBox addiert werden also schon als Array innerhalb der ListBox vorliegen.
Die frage ist dann warum noch ein Aray anlegen?

Aber wie gesagt..
Ich denke das die Liste von der Combo selbst getrennt behandelt werden muss.
Der eintrag der Combo bliebe dann immer gleich solange bis ich einen eintrag aus der Liste gewählt habe ;)
So wird das wohl auch beim standard control geregelt sein.
Daraus ergäbe sich dann noch der vorteil das ich dann die Listbox in der weite auf
den längsten Eintrag korrigieren kann.

gruss


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:13 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 by Thomas Breitkreuz