Programmieren - alles kontrollieren 4.941 Themen, 20.708 Beiträge

VB6: Win-Registry und Listbox mit Tabelle

Mario19 / 7 Antworten / Baumansicht Nickles

Hallo,

ich habe da mal zwei Frage:

1.) Wie kann ich mit VB6 die Windows-Registry auslesen und wie kann
ich da Werte eingeben ?

2.) Wie kann ich in einer Listbox eine Tabelle einbinden, d.h. wo
jede Spalte und jede Zeile durch ein grafischen Strich getrennt
sind (so in der art wie bei MS-Excel). das es geht weiß ich, nur
ich weiß nicht wie bzw. und ob es mit VB6 zu realisieren ist oder
eher mit Visual C++ ?

Danke für Eure Antworten im voraus

Mario

P.S.: ab einfachsten wäre es, wenn ich mir die URL für die Sorce-Codes
geben könnten, damit ich sie offline ausprobieren kann. Danke!

bei Antwort benachrichtigen
(Anonym) Mario19 „VB6: Win-Registry und Listbox mit Tabelle“
Optionen

Hallo,

zu 1.) www.planet-source-code.de

zu 2.) Warum in eine Listbox? Jedes DataGrid funktioniert.

bei Antwort benachrichtigen
Mario19 (Anonym) „Hallo, zu 1. www.planet-source-code.de zu 2. Warum in eine Listbox? Jedes...“
Optionen

DataGrid ?

Sorry, kenne ich ich leider nicht (habe gerade erst angefangen).

Wie funkt. bzw programmiert das sogn. "DataGrid" ?

bei Antwort benachrichtigen
T-Rex Mario19 „DataGrid ? Sorry, kenne ich ich leider nicht habe gerade erst angefangen . Wie...“
Optionen

Hallo,

was möchtest Du denn programmieren? Oder besser: was soll Dein Programm können?

Wenn Du Dein Problem genauer beschreibst, kann Dir besser geholfen werden.

 GrüßeT-Rex 
bei Antwort benachrichtigen
(Anonym) T-Rex „Hallo, was möchtest Du denn programmieren? Oder besser: was soll Dein Programm...“
Optionen

zur win-registry: wenn ich ein prog. installiere, möchte ich das dort
ein paar einträge sind (reinschreiben), wie z.b.
installpfad etc. und ich wollte diese einträge auch
wieder auslesen können

zu listbox+ tab.: ich wollte ähnlich wie ms-excel eine tabelle auf-
bauen, wo ich dann daten einmal direkt in der
tabelle eingeben kann, zum zweiten über eine extra-
eingabe maske und zum dritten aus einer datei ein
lesen.
ich habe schon versucht, mit datagrid (wurde mir
empfohlen) zu arbeiten, nur bekommen ich das
mit datagrid nicht hin.

wer kann mir dabei helfen (am besten mit sourcecode) ?

thx im voraus

bei Antwort benachrichtigen
T-Rex (Anonym) „zur win-registry: wenn ich ein prog. installiere, möchte ich das dort ein paar...“
Optionen

Hi,

dann nimmst Du am besten die MSFlexGrid (Projekt -> Komponenten : Microsoft FlexGrid Control 6.0).

Hier kannst Du ohne Probleme Daten in der Form X:Y einfügen, feste Spalten und Zeilen benennen und die Zellbreite ändern. Letzteres ist aber ziemlich tricky: Die Breiten der Spalten werden durch die Breite des Textes in der Titelleiste bestimmt. Wenn Du die Breite ändern willst, mußt Du den Titel kennen, die Anzahl Leerzeichen vorneweg und hintendran verändern und anschließend die Titelleiste neu setzen.

Die Zeichen bei der Titelleiste sind:
 < = Text linksbündig ausgeben (ASCII 60)
 ^ = Text zentriert ausgeben (ASCII 94)
 > = Text rechtsbündig ausgeben (ASCII 62)
 | = Spaltentrennzeichen (ASCII 124)

Jetzt kannst Du Deine Titelleiste setzen:
MSFlexGrid1.FixedCols = 1
MSFlexGrid1.FixedRows = 1
MSFlexGrid1.FormatString = Space(5) & "|^" & Space(10) & "A" & Space(10)
MSFlexGrid1.Rows = MSFlexGrid1.FixedRows + 2

Nun hast Du eine Tabelle mit eriner festen Spalte und einer festen Zeile und zwei Datenzeilen.

Möchtest Du jetzt alle vorhandenen Zeilen nummerieren (außer der festen), mußt Du folgendes eingeben:
For i = 1 To MSFlexGrid1.Rows - 1
  MSFlexGrid1.TextMatrix(i, 0) = i
Next i
TextMatrix erwartet eine Koordinate: erst die Zeile, dann die Spalte.
Dummerweise ist es bei den meisten Objekten so, daß diese bei NULL mit dem Zählen beginnen, nicht wie wir, bei Eins. Um also die äußerste linke Spalte zu beschreiben, muß als Y-Wert Null angegeben werden.
Die Spalte rechts daneben ist dann logischerweise die Spalte Eins.

Damit sind die ersten beiden Punkte von listbox+tab abgehakt. Wie Du das jetzt alles verpackst, ist ganz allein Deine Entscheidung.

Das mit der Datei-Ein-Ausgabe muß ich jetzt erst mal selbst probieren, wie das geht, weil ich das mit VB6 bisher nicht gemacht habe.

 GrüßeT-Rex 
bei Antwort benachrichtigen
saxon (Anonym) „zur win-registry: wenn ich ein prog. installiere, möchte ich das dort ein paar...“
Optionen

Die Registry kann man entweder "von Hand" ansprechen, sprich über api programmierung direkt auf Systemroutinen zugreifen oder man bedient sich einer der zahlreichen vorgefertigten Lösungen auf activex basis oder eines simplen class moduls. Ein sehr gutes class modul mit Anleitung ist z.B. auf http://vbaccelerator.com zu finden.
Wenn es dir allerdings nur um deinen arbeitspfad und sonstiges zu deiner "Umgebung" geht, dann schau mal in deinem vbeditor nach was er bei Eingabe von 'app.' anzeigt (natürlich ohne die ' ). Unter anderem kannst Du dir darüber deinen aktuellen Arbeitspfad holen.

zu deinem zweiten problem:

Wenn Du ohnehin mit einer ms-excel tabelle arbeiten willst, dann füg doch einfach eine ein unter Komponenten->einfügbare Objekte->ms excel arbeitsblatt. Die kannst Du dann genau wie unter excel selbst und VBA ansprechen. Eine weitere, überschaubarere Möglichkeit ist das einfache Listview. Da kannst Du auch ein Gitter drüberlegen, Daten direkt eingeben und das Handling ist für einen Anfänger recht einfach zu erlernen.

http://vbaccelerator.com
http://www.planet-source-code.com
http://abstractvb.com
http://www.codearchive.com

sind ein paar gute Adressen für weitere Infos.
viel spass.

bei Antwort benachrichtigen
Oli_1977 Mario19 „VB6: Win-Registry und Listbox mit Tabelle“
Optionen

Hallo.

Ich arbeite gerade an einer Dialogfeldbasierenden Anwendung unter VC++ 6.0

Wollte auch so eine Art Excel-Tabelle auf dem Dialogfeld anzeigen lassen.
Rufe ich nun ein Dialogfeld mit DoModal()auf, mit einem Element vom Typ CMSFlexGrid stürtzt mein Programm ab, mit der Fehlermeldung "Es wurde versucht, eine nicht unterstützte Operation auszuführen".

Habe irgendwo gelesen, das es nicht klar ist, ob man MSFlexgrid unter dem Betriebssysetm NT4 verwenden kann. Ist da was darn, ich habe das genannte Betriebssystem.

Gibt es eigentlich irgendwo eine deutsche hilfe zu MSFlexGrid??

Bin für Hinweise dankbar

Cu
OLi

bei Antwort benachrichtigen