tabellarische anordnung nach dateiname
-
Hab folgendes Problem: In einer Listbox werden Dateien angezeigt und nach einem Tab kommt das Datum! Es sieht aber nicht gerade schön aus weil die Dateinamen unterschiedlich lang sind...Wie kann ich es foramtieren dass das datum immer untereinander steht...bsp.
ist:
datei1 11.05.03
datei12 11.05.03
datei123 11.05.03
datei1234 11.05.03soll:
datei1 11.05.03
datei12 11.05.03
datei123 11.05.03
datei1234 11.05.03Hier der code wie es jetzt ist
m_Liste.ResetContent(); CFileFind fileFind; BOOL gotAFile = fileFind.FindFile(m_Pfad + "*.*.*.*"); while (gotAFile) { gotAFile = fileFind.FindNextFile(); if (!fileFind.IsDirectory()) { CString str_name, str_zeit; CTime t_zeit; fileFind.GetLastWriteTime(t_zeit); str_zeit = t_zeit.Format(" %d.%m.%Y %H:%M" ); str_name = fileFind.GetFileName(); str_name = str_name + str_zeit; m_Liste.AddString(str_name); } }
MFG
-
ist: datei1 11.05.03 datei12 11.05.03 datei123 11.05.03 datei1234 11.05.03 soll: datei1 11.05.03 datei12 11.05.03 datei123 11.05.03 datei1234 11.05.03 So meinte ichs
-
Hi,
warum verwendest Du statt einer Listbox nicht die ListControl im Report-Style? Da machst du zwei Spalten (Dateiname, Datum) und trägst die Info ein, dann passt das automatisch. In einer Listbox wirst Du das nur bei nicht-proportional-Schrift (blöder Ausdruck, aber ich weiss das richtige Wort nicht
) hinkriegen, bei proportionalschrift sieht das immer sch..lecht aus...
Gruss
yeti
-
z.b. könnte man, wenn die länge von 'str_name' kleiner ist als ein bestimmter wert, den string mit spaces auffüllen.
btw: ist aber nur sinnvoll, wenn alle zeichen gleich breit sind
-
musste die schriftart vorher halt auf ANSI_FIXED_FONT oder so setzen, kannste ja auch per code machen.
Dann sind alle Zeichen gleich breit und mit GetLength() und Insert() vom CString kann man sich das dann schon basteln.
Soll das ne Drop-Down List werden? Ansonsten nimm wie schon erwähnt ne CListCtrl.
-
musste die schriftart vorher halt auf ANSI_FIXED_FONT oder so setzen,
Und wie mach ich das?
-
Wenn es eine Listbox sein soll, wie wärs denn damit:
CListBox m_liste
in der Initmethode (z.B. in InitDialog) hinzufügen:
int tab[1]={150};
m_liste.SetTabStops(1,tab);
außerdem muss als Eigenschaft für die Listbox "use tabstops gesetzt sein.CString str_name("datei1"),str_zeit("01.01.05");
liste.AddString(str_name +"\t"+ str_zeit);
-
Ich vergaß:
also wenn ein Tab in der Listbox wirksam sein soll:
1. Eigenschaft in Resource
2. Im Init diese Tabstops überhaupt setzen (die Breite wird durch den Wert für tab festgelegt)
3. bei AddString(...) wirklich Tabs einfügen.testuser