-
Gesamte Inhalte
161 -
Benutzer seit
-
Letzter Besuch
Inhaltstyp
Profile
Forum
Downloads
Kalender
Blogs
Shop
Alle Inhalte von Boro
-
Hi Druid ! das weiß ich leider nicht, ich kann dir nur einen Link geben auf dem es mit API-Funktionen gemacht wird, aber wenn du noch nicht so fit bist dann wird dich das mehr verwirren als dir nützen. Aber lernen wirst du es eh irgendwann müssen, also schau mal hier unter Tips & Tricks/Timer & Datum/ und dann ganz unten. Mit den Ereignissen hab ich mich ja schon selber verbessert, alle Ereignisse abzufangen wäre natürlich Quatsch, da hat BlearSun natürlich recht. Das Problem ist einfach dass du immer wieder ein Ereignis erzeugen musst dass den Zustand des Timers prüft. Eine Endlosschleife mit DoEvents wäre eine Lösung, aber dass ist zu umständlich und du wirst die eher dass Programm zerschiessen als Erfolg zu haben. Ich meld mich nochmal wenn mir was einfällt. Bis denne Feivel
-
Hi ! Die Frage mit den der Maus & der Tastatur nehme ich zurück, da ist der Groschen erst ein bißchen später gefallen. Vergiss was ich über das Click,CHange & Load Ereignis gesagt habe. Es ist viel besser die MouseMove & KeyPress- Ereignisse abzufangen. Du findest diese in den beiden Leisten über dem Quellcode. so long Feivel
-
Hi ! Don´t Panik ! Ein Timer ist ein Steuerelement, genau wie die Buttons & die Textfelder auch, allerdings für den User unsichtbar. Er gibt die immer die seit Mitternacht vergangen Sekunden als Double zurück. Das ist ziemlich praktisch, da du auf die Art immer den genauen Zeitpunkt kennst wann etwas geschehen ist. Als erstes musst du den Timer an einem beliebigen Ort im Formular plazieren. Jetzt kannst du in im Quellcode mit dem Namen Timer1 ansprechen (Name frei wählbar). Dann nimmst du eine Variable von Typ Double und schreibst den Wert rein. Variable = Timer. Da die Variable den Wert nicht verändert kannst du sie wunderbar für einen Vergleich benutzen : if Timer >= (Variable + 600) then deine Anweisung zur Speerung else was anderes (oder nichts) end if Das ist eigentlich schon die Lösung für dein Problem, jetzt musst du nur dafür Sorgen dass du diese Prüfung immer im richten AUgenblick machst und da kannst du die Lösungen von oben benutzen, du must dann halt bei jedem Ereignis, sei es Click,Change, Load usw. prüfen ob die Differenz zwischen dem aktuellen Timer und der Variable größer 600 Sekunden ist. Wenn dass so ist, dann nimm ein ein großes modales Formular mit schwarzen Hintergrund (möglichst maximiert) mit den Textfeldern für den Benutzeranmeldung und stell es in den Vordergrund, damit der User sich verifizieren muss. Tip : Jedes Formlar hat ein Ereignis wenn es geschlossen wird (Form_unload), dass Ereignis musst du abfangen damitder User nicht einfach auf dass "X" klicken kann und wieder im Programm ist. Damit kannst du dir auch dass Abfangen von Tastatureingaben & Maus sparen. (Frage : Warum eigentlich ??? *wunder*) Und noch ein Tip : Ich hab mal gesehen wie jemand eine Art Timer_Change Ereignis aufgerufen hat, ich weiß aber nicht mehr wie, glaube dass war eine API-Funktion. Kannst ja mal schauen ob es eine Art Timer_Change auch in VB gibt. so long Feivel
-
Hallo, ich habe deinen Quellcode so verstanden dass du mit dem Wert von zwei Textfelder innerhalb einer Funktion rechnen möchtest. Das bringt mich auf zwei Fragen : a) Du liest den Inhalt der Textfelder in Stringvariablen, du wandelst sie mit cstr sogar noch um. Aber warum wenn du doch nur rechnen willst ? Deklariere die Variablen doch auch als Double. Texteingaben in dass Textfeld fängst du dann einfach mit if isnumeric(me.txt_XZY) = true then .....usw ab. Du hast den Rückgabewert der Function nicht mit angegeben, hat dass einen speziellen Grund ? Ich meine, willst du innerhalb der Funktion eventuell mit Objekten arbeiten oder so ? Ansonsten würde ich dir raten die Funktion as double zu deklarieren, ich glaube zwar nicht dran, aber es könnte sein dass sich Variant nicht einfach so in eine Stringvariable zwingen läßt. Ansonsten schliesse ich mich Klotzkopp an, einen leeren String zu übergeben führt mit Sicherheit zur Divison durch Null. Und bei einem Vergleich müssen die Datentypen der Ausdrücke gleich sein. Wenn überhaupt würde ich dieser Stelle mit CStr bzw. Cdbl konventieren. Ich hoffe dass ich die Logik hinter dem Code richtig verstanden hab, wenn ja, dann versuch bitte erstmal die Variablen auf double zu setzen. So long Feivel
-
Hi ! alles klar, ich hab´s doch noch hinbekommen. Der Preis für den entscheidenen Tip geht an Schotti, nachdem ich die Stecker gedreht hab klappte es endlich, die Anordnung der Stecker macht zwar immer noch keinen Sinn, aber es klappt und dass zählt. Danke an alle ! cu Feivel
-
Das stimmt, aber da hab ich die verschiedenen Kombinationen durch probiert. Die Bescheibung im Handbuch ist zwar klar, aber die Beschriftung auf dem Board sagt was anderes. Handbuch : Reset unmittelbar über Power, wobei Power aber keine zwei Pin´s verbindet sondern, da ein "blindes" dabei ist. (Kann doch schon mal gar nicht sein, oder ?) Außerdem belegt laut Handbuch die HDD LED nur zwei Pin´s, es ist aber ein Stecker für 3, wobei der mittlere nicht belegt ist. Board : Markierung für HDD LED ist für 3 stelligen Stecker, LED-Power direkt darüber (Sieht schon besser aus), allerdings soll Power-LED in dem Fall auch 3 Buchsen haben, hat aber nur zwei. Power-Switch belegt indem Fall zwei Pin´s, genauso wie der Reset-Switch. Jedoch ohne Erfolg. Verwirrung läßt grüßen.... Danke für Tip, ich werde´s mir auf jeden Fall nochmal anschauen, ich kann es nicht ausschliessen dass daran liegt.
-
Hallo, ich hab ein Problem beim selber zusammenbauen eines Rechners, folgende Komponenten sind drin : - Gehäuse Noname (300 Watt) - AMD Duron 900 MHz incl. Kühler - Elitegroup K7S5A - 256 MB DDR-RAM (Infineon) - 64 MB Geforce 2 - MX 400 - Liteon DVD 16x/48x IDE - Cyperdrive 12x/16x/40x IDE - Western Digital 40 GB IDE Das Problem liegt darin dass der Rechner nicht startet, er bekommt einfach keinen Strom auf dass Mainboard. Ich habe dass zwar nicht gemessen, aber weder Lüfter noch Laufwerke laufen an. Hab als erstes an dass Netzteil gedacht, aber es läuft in einem anderen Rechner einwandfrei. Als nächste Fehlerquelle fällt mir jetzt nur noch dass Mainboard ein. Oder hat jemand eine andere Idee ? Danke im vorraus ! Gruß Feivel
-
:D * L O L * Nein, wie genial, ich hab Tränen gelacht, die Wunschliste ist echt echt der Hammer ! Ich spende 1 Euro für Rauchgranaten und Such & Kampfhubschrauber, aber nur wenn sich Hofmeister persönlich abseilt.... *R O F L* NeeNee, ich lach mich weg, so ein Theater wegen einer Festplatte.. Möchte wetten dass die nicht mal wirklich kaputt ist. Wahrscheinlich versucht er die Festplatte in der Spielekonsole seines Sohnes einzubauen. Hach, schön, selten so gelacht. Mehr davon !!! :D
-
Wo drunter arbeitest du denn ? Ich hab es mal unter VB 6.0 sowie dem Visual Basic Editor von Office 2000 probiert, beides mal mit Erfolg. Ansonsten poste doch mal den Code mit Fehlerbeschreibung, dann können wir vielleicht mehr dazu sagen. Viel Spass noch ! Gruß Feivel
-
Hi, tja, soweit hab ich jetzt selber nicht gedacht. Ich find´s aber interessant dass die Datenbank scheinbar kein Problem damit hat dass Format wieder umzuwandeln. Dann kann die Umkehrung auch nicht schwer sein. Wie gesagt, die perfekte Lösung kenn ich nicht, aber wie wärs wenn du den Wertebereich der Datenbank von Date in String änders ? Dann ist Schluss mit der Umwandlung und wenn du nicht unbedingt die Datumsfunktionen brauchst kannst du dass Feld genauso wieder auslesen. Oder du machst aus meinem Beispiel eine Funktion und rufst sie bei jedem Auslesen des Datums auf und bekommst als Rückgabewert den String wie du ihn brauchst. Das ist schon wieder "gemogelt", aber zur Not......!? Ansonsten bin ich mit meinem Latein am Ende, alles andere wäre geraten & gemogelt. Hoffe trotzdem dass ich dir helfen konnte. Viel Spass noch ! Feivel
-
Hi ! Okay, dann hab ich deinen ersten Eintrag falsch verstanden. Also, mir fällt jetzt keine Funktion ein die eine Formatierung so umwandelt, ich hab es gerade mal mit FormatdateTime versucht, aber da bekommen ich auch nur immer wieder DD.MM.YYYY zurück. Die einzige Lösung die mir einfällt ist dass du dir einzeln den Tag, den Monat und dass Jahr aus dem Datum extrahierst und es neu mit Hilfe eines Array´s oder mehreren Variablen wieder zusammen setzt. Das hat bei mir funktioniert : Dim Tag As Integer Dim Monat As Integer Dim Jahr As Integer Dim ergebnis As String Tag = Day(Now) Monat = Month(Now) Jahr = Year(Now) ergebnis = Jahr & "-" & Monat & "-" & Tag MsgBox(ergebnis) Copy & Paste sollte funktionieren. Das ist aber nur ein kleiner Trick um an dass gewünschte Ergebnis zu kommen, ich glaube nicht daran dass es besonders zweckmässig ist, vom Programmierstyle ganz zu schweigen. Nimm es erstmal als Notlösung, ich bin selber gespannt ob jemand eine bessere Idee hat. Gruß Feivel
-
Suche ein Steuerelement ähnlich der Listbox
Boro antwortete auf Boro's Thema in Delphi/RPG+CL/Sonstige
Hi ! also, dass (der?) Listview ist ja wirklich sehr gut zu gebrauchen, aber eine Frage hab ich noch. Ich habe das Listview in der Reportansicht gefüllt, dabei habe ich die erste Spalte mit Listview.items.add(Wert) und alle anderen Spalten mit ListView1.Items(lfdnr).SubItems.Add(aarray_anzeige.Item(lfdnr).garantie_von) In meiner ursprüngliche Lösung hab ich mich auf den Click-Index der Listbox verlassen, da ich die Daten mit der ich die Listbox gefüllt hatte zuerst in ein dynamisches Array geladen hatte und somit mit dem Click-Index gleichzeitig dass Array auslesen konnte ohne großartig suchen zu müssen. Jetzt hab ich dass Problem dass mir dieser Index fehlt. Das Ereignis gibt es, nachdem ich doppelt in dass Listfeld geklickt habe hat die IDE die Prozedur "Private Sub ListView1_SelectedIndexChanged" erzeugt, allerdings kann ich keine Eigenschaft oder Methode finden die den gewählten Index zurück gibt. Wäre schön wenn jemand die Lösung für VB.net hat, ich bin aber auch für Tips unter 6.0 dankbar ! cu Feivel P.S. Bitte nicht über die Schreibweise vom Array (aarray_anzeige) wundern, die hat sich unter .net stark geändert, es funktioniert so. -
Hallo, Unter VB gibt es die Funktion Date die dass Systemdatum verändern kann. Ich hab dass bisher nur unter Win 9x gemacht, ich kann daher nicht garantieren dass es unter Win NT auch klappt, aber versuch es mal damit : Date = DD.MM.JJJJ Das Datum muss dabei korrekt sein, also nicht 31.02.2001 oder so was, da bekommst du eine Fehlermeldung. Soweit ich weiß kannst du auch andere Formate eingeben, zumindest alles was du mit FormatdateTime formatieren kannst. Solltest du übrigens immer zu einem bestimmten Datum zurück rechnen wollen dann kann ich dir dateAdd in Verbindung mit datediff empfehlen, mit Datediff ermittelst du die Differenz zwischen heute und dem Wunschdatum und mit Dateadd addierst du die negative Differenz zum aktuellen Datum hinzu. So long Feivel
-
Hi ! Darum brauchst du dich bei bei VBA nicht zu sorgen, dass geht automatisch wenn du die richtigen Werte der richtigen Variable zuordnest Integer in String ergibt String und (zahlen)-Strings ergeben Integerwerte mit denen man rechnen kann. Hier ein Beispiel : Dim zahl1 As Integer Dim String1 As String Dim zwischenergebnis As Integer String1 = Text1.Text zwischenergebnis = String1 zahl1 = zwischenergebnis - 1 String1 = zahl1 & " Hallo" Text2.Text = String1 Text1 & Text2 sind jeweils Textfelder, dass Ergebnis bei Eingabe einer 5 ist "4 Hallo" als String. Viel Spass noch ! Gruß Feivel
-
Bitte vorher unter Verweise die Mircosoft Active Data Objects in der jeweils höchsten Version einbinden !!! Beispiel für die Datenbankverbindung (Access 2000) Public Verbindung As New ADODB.Connection Verbindung.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\XXXX.mdb" Beispiel für Recorset : Public NAMEXYZ As New ADODB.Recordset NAMEXYZ.Open("select * from TABELLE order by SPALTE", Verbindung, adOpenDynamic, LockOptimistic)
-
Hallo Küken, brauchst du eine grundsätzliche Beschreibung oder hast du ein konkretes Problem ? Also grundsätzlich kann man sage : Ein Recordset ist eine Gruppe von Datensätzen, die temporär im Arbeitsspeicher abgelegt und verwaltet werden. Dabei kommt es im Grunde gar nicht darauf aus welcher Datenbank die Datensätze kommen, es ist praktisch universell für alle Datenbanken einsetzbar. Man kann sich ein Recordset-Objekt ganz gut als Zeiger auf einen Datensatz innerhalb einer Tabelle einer Datenbank vorstellen. Um dass Recordset-Objekt zu positionieren gibt es verschiedene Methoden, z.B. MoveNext und MovePrevius. Das Recordsetobjekt gibt in dem Fall immer den aktuellen Datensatz aus. Zusätzlich gibt es für dass Recordset die Eigenschaften BOF & EOF, die anzeigen ob du am Anfang bzw. am Ende der Tabelle angekommen bist.´ Natürlich kannst du nicht nur auslesen, sondern auch reinschreiben, dann funktioniert wie eine Wertzuweisung Wichtig ist dass ein Recordset keine Verbindung in die Datenbank herstellt, dafür muss du erst ein Connection-Objekt deklarieren und initialisieren und dem Recordset bei der Initialisierung diese Verbindung auch angeben. Dem Recordset-Objekt kann man übrigens auch SQL-Statements übergeben, dass ist recht praktisch. Hm, dass wären die wichtigsten Sachen die mir so spontan einfallen, der Rest ergibt sich zwangsläufig und die Anwendung ist eigentlich recht simpel, man muss das Prinzip nur einmal verstanden haben. Solltest du einen Beispiel Code brauchen, dann meld dich nochmal, ich schau was ich finden kann. Bis denne Feivel
-
Du hattest keine Variable vom Typ Variant verwendet, aber nachdem dein Beispiel nicht funktionierte habe ich das Beispiel aus der Hilfe genommen, also genau dass was du oben gepostet hast und dass arbeitet mit einem Variant. Aber dass hat auch nicht funktioniert. Nein, dass kann ich ausschließen, ich habe es unter 6.0 unter Windows 98 SE getestet und unter VB.net unter XP. Vielleicht ist die Funktion bei der Professional nicht dabei ? Stimmt, würde auch gehen, ich hab es mir einfach gemacht, bei entsprechender Fehlernummer wird die Datei einfach neu erstellt & Resume
-
Hi ! Das stimmt, es nervt mich auch schon lange dass die Musikindustrie meint sie könnten dieselbe Waren x-beliebig oft unter neuem Namen und neuem Cover an die gleiche Zielgruppe verkaufen. Bestes Beispiel sind die zahlreichen Coverversionen die aus wirklich gute Liedern einen zweitklassischen Abklatsch machen, als Beispiel fallen mir alle Songs von Oli P. und einige von Xavier Naidoo ein. Oder schaut euch mal den den ewig wiederkehrenden Aufguß von Scooter an. Die tauschen doch nur die Melodie aus, die eigentlich nur störenden Zwischenrufe in Form "We are the best & come and get some" sind in jedem Song die gleichen. Aber am meisten ärgert mich daran dass es immer Leute geben die solche Songs zu überteuerten Preisen kaufen und seien es nur die Kids die unbedingt dem Bild entsprechenen müssen dass sie in der Werbung vorgespielt bekommen. Hab auch einen DSL-Anschluß und könnte MP3 saugen bis die Platte voll ist, aber wozu ? Die paar Songs die mir wirklich gefallen hab ich entweder schon lange auf CD oder ich kann sie mir oft genug im Radio anhören um zu entscheiden ob ich diesen Song in 2-3 Jahren noch hören möchte. Aber das Phänomen gibt es nicht nur hier, dass spiegelt sich praktisch in allen Unterhaltungsmedien wieder. Am übelsten finde ich immer Werbung für DVD´s : "Jetzt neu, der Film XYZ in fimreifer Qualität UND Szenen die im Kino nicht zu sehen waren". Ja, aber warum hab ich dann 10 Euro für 2 Stunden mittelmässige Unterhaltung bezahlt, wenn ich doch nichtmal die volle Leistung bekomme ???? Also irgendwas läuft da doch falsch, oder ? Die Sache mit dem Kopierschutz wird aber wahrscheinlich ewig ein Zwiespalt bleiben, es wird immer die Industrie geben die zurecht für Ihre Leistungen ein Entgelt verlangt während andere nicht bereit sind dafür zu zahlen, und jeder Kopierschutz hat seine Schwäche, soviel ist sicher, also können wir uns auch in Zukunft auf Diskussionen dieser Art freuen. Bis denne Feivel
-
Auch die Zuweisung an eine Varable von Typ Variant bleibt ohne Ergebnis (kein Wert in Variable) Was willst du mir mit diesem Satz sagen? Das eine Variable vom Datentyp Variant keinen Wert angenommen hat, anders kann man es nicht ausdrücken. Die Dir-Funktion liefert bei der von mir verwendeten Methode einen String zurück, keinen Variant. Ich werde es aber nochmals bei Gelegenheit überprüfen. Spielt doch keine Rolle, Variant behandelt Stringtypen genauso wie eine Stringvariable. Wenn du Option Explicit aus hast und den Datentyp nicht mit angibst ist eh alles von Typ Variant. Habe Variant genommen da ich auf ein Objekt als Rückgabewert gefasst sein wollte. Ich habe beides getest, VB. net & 6.0. Es klappt bei beiden nicht. Ich denke vielmehr dass du irgendeinen Verweis in dein Projekt eingebunden hast denn ich nicht drin habe. Ansonsten geschehen halt doch noch Wunder. Kannst ja mal testen und dich melden, eilt aber nicht, hab es mit dem Errorhandler gelöst. Danke trotzdem ! Gruß Feivel
-
Also, der Code stimmt nicht, da wird immer nur der Else-Zeig durchlaufen. Hier mein Code für das Bespiel : If Dir("C:\Programme\zubehör\cis.txt", vbNormal) <> "" Then MsgBox ("Der Pfad stimmt") Else MsgBox ("Der Pfad stimmt NICHT") End If Auch die Zuweisung an eine Varable von Typ Variant bleibt ohne Ergebnis (kein Wert in Variable)
-
Suche ein Steuerelement ähnlich der Listbox
Boro antwortete auf Boro's Thema in Delphi/RPG+CL/Sonstige
Super, dass war genau dass was ich gesucht habe. Ich hab einfach nicht gewusst wie dass Steuerelement heißt. Danke, du hast mir echt geholfen ! Bis denne Feivel -
Suche ein Steuerelement ähnlich der Listbox
Boro antwortete auf Boro's Thema in Delphi/RPG+CL/Sonstige
Ups, dass hab ich total vergessen : :eek: Benutze VB.net, aber es können auch Vorschläge für 6.0 sein, die Steuerelemente sind gleich sofern man nicht dass neue Framework benützt. -
Hallo, Also, ich habe mal wieder ein Problem : Ich möchte in einer Listbox eine Übersicht erzeugen will, die Daten dafür kommen aus einer Access- Datenbank. Die Übersicht umfasst ca. 5 Spalten der Datenbank. Das Problem ist dass bei unterschiedlicher Länge der Werte die Daten nicht mehr untereinander stehen. Ich hab mal versucht die Länge anzupassen indem ich die fehlende Länge mit einer variablen Anzahl von Leerzeichen aufgefüllt habe, aber da die Buchstaben (Groß/klein) nicht gleich groß sind fällt dass auch flach. So langsam glaube ich, dass ich mich für´s falsche Steuerelement entschieden hab. Es wäre viel besser wenn ich ein Steuerelement verwenden könnte, dass für die Textausrichtung sorgt und bei dem man die Spaltengröße mit der Maus anpassen könnte, so wie dass z.B. beim Explorer ist. Gibt es sowas ? Wenn ja wäre ich für eine kurze Einführung dankbar. Gruß Feivel
-
....du arme. Das ist nur für dich: ----------------------------------------------------------------------------------------------Deine Geschichte ging mir ans Herz, nie zuvor traf jemanden der mehr Mitleid gebraucht hätte als du. Bitte betrachte dieses Posting als Ausdruck meines tiefsten Mitgefühls. ---------------------------------------------------------------------------------------------- Solltest du mir jemals im Bus begegnen werde ich sofort aufspringen und dir meinen Platz anbieten. Und sollte ich jemals unfreundlich zu dir sein, darfst du mich selbstverständlich mit deinem Gehstock verprügeln und dein Gebiß nach mir werfen, natürlich nur wenn deine Arthritis es gerade so zuläßt und du deine Lese-Weit-Wurf-Hornbrille findest. :D
-
Hi Tiana ! danke erstmal. Das könnte der Fehler schon sein, ich habe als letztes versucht eine Textdatei zu öffnen, da ich Parameterwerte in einer .txt bzw. .ini Datei habe, und die für den Programmstart notwendig sind. Das erklärt den Fehler in der Shell-Methode. Wenn ich "nur" ausführbare Dateien öffnen kann ist der Fehler eigentlich klar, dann werd ich versuchen den Laufzeitfehler abzufangen. Aber gilt dass den auch für File-Existens ? Zumindest die Existenz des der Textdatei muss sich doch prüfen lassen, oder ? Ich werde den Code heute abend mal posten, da ich nicht am Arbeitsplatz bin. Hab gerad mal in meine Bücher geschaut, stimmt, da steht auch dass es "exe"-Dateien sein düfen. Wer lesen kann ist manchmal doch im Vorteil. Bis dann ! Feivel