Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

mehrspaltige listfelder

Empfohlene Antworten

Veröffentlicht

naja, in fast jedem programm findet man sie - mehrspaltige listenfelder. die haben eine überschrift mit der man meistens nach der spalte sortieren kann.

im explorer die dateien im outlook die mails etc...

wie kann ich sowas mit borland builder5 in mein programm einbinden? muss ich dafür externe komponenten benutzten? wenn ja wo bekomme ich diese?

danke jetzt schonmal

Der C++ Builder bringt schon die Komponente TListView mit. Mit der kannst Du mehrzeilige Listenfelder erzeugen. Zu finden ist die Komponente unter der Kategorie Win32.

HTH

Jan

oh cool.... danke, ich hatte mit dieser komponente schon rumprobiert aber jetzt nach dem tipp habe ich das auch so hinbekommen wie ich es wollte.

nur wie ich items dynamisch adde, anspreche etc. ist mir noch nicht ganz klar - hat da jemand evtl. einen rat wo es dazu online mehr infos/beispiele gibt als in der borland hilfe?

danke

Ich weiß nicht, ob es das ist, was Du suchst aber:

Du schnappst Dir erstmal eine Zeigervariable vom Typ TListItem.

TListItem *newline;

Nun soll es auf eine neue Zeile im TListView zeigen, also:

newline = myListView -> Items -> Add ();

Und als letztes füllst Du die neue Zeile mit Inhalt:

newline -> Caption = "Hallo"

newline -> SubItems -> Add ( "Welt!" );

// Weitere unterkategorien...

HTH

Jan

aha... ok danke, das bringt mich schon mal weiter.

nun zum nächsten punkt :) - die normalen listfelder können mit -items->savetofile und items->loadfromfile gelesen bzw. gesichert werden - gibt es diese möglichkeit auch für die tlistview?

*nerv* ich weiss :)

Naja, schau doch einfach in der Hilfe nach. Mehr kann ich auch nicht tun. Ich habe kurz geschaut und im ersten Moment habe ich kein SaveToFile / LoadFromFile gefunden. Ich benutze zwar kein BCB5 aber ich glaube nicht, daß Borland es dort eingeführt hat. Bei TListBox geht LoadFromFile ja über die Eigenschaft Items, was vom TStrings ist. TStrings bringt LoadFromFile mit. Aber bei TListView sind Items nicht vom Typ TStrings. Ich fürchte Du mußt Dir selber eine Load-/Save-Funktion schreiben.

HTH

Jan

hm aha... kann ich auch irgendwie mit dem filewrite direkt den inhalt der listview komplett in ein file schreiben und wieder lesen oder muss ich da die ganzen elemente einzeln auslesen und wieder einlesen?

Ich nehme an, Du hast in der Hilfe nachgeschaut, oder? Wenn nicht, dann mach' es doch einfach.

Aber ich glaube nicht, daß man alles auf einmal einlesen/auslesen kann. Aber das macht (fast) nichts, denn Borland stellt alles zur Verfügung was man braucht. Zum Schreiben in eine Datei:

Laß einfach eine for-Schleife von 0 bis Count-1 (zu finden unter TListItems) laufen. In der Liest Du von das Array von Item aus und schreibst sie in eine Datei.

Zum Lesen denkst Du Dir irgendein sinnvolles Format aus und liest bis zum Dateiende alle Daten ein und fügst sie, wie oben beschrieben, in TListView ein.

HTH

Jan

Man sollte im Sinne von C++ das ganze so machen:

Von TListItems eine eigene Klasse ableiten und eine Serialize-Funktion hinzufügen und dann nachher darf jedes Objekt sich selbst serialisieren, bzw. speichern und laden. Sollten keine Referenzen drin sein und die Elementgrößen Standardgrößen haben, dann wäres es sogar möglich einfach zu casten.

Weil Du aber meintest Borland:

Gibt es da nicht auch sowas wie CObjects & CArchive bei M$? Wenn es TObjects und TArchive gibt, dann sollte man die Items davon ableiten, weil diese ein halbautomatisches Serialize() für Standard-Elemente haben müßte. Man schiebt die dann ganz einfach und bequem in das Archive-Object über die Operatoren << und >> von & in die Variablen des Listen-Objects beim Serialize() (was man auch wieder überschreiben muß).

Damit Du das besser siehst, was ich meine ein kurzes Beispiel von der MSDN:


// example for CObject::Serialize
void CItem::Serialize( CArchive& ar )
{
CObject::Serialize( ar );
if( ar.IsStoring() )
ar << m_years;
else
ar >> m_years;
}
[/PHP]

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.