![]() |
Wie kann ich es machen das wenn ich mit einer InputBox werte eingeben will, wenn der User dann auf abbrechen klickt, das ich keinen Laufzeitfehler bekomme. Ich nehm einmal an ich muss ihn zu einem Fehler "zwingen" damit er dann den dbErrHandler(oder wie immer der bei euch heißt;)) fortsetzt. Sollte doch so gehen, oder:
Abbrechen-Button.CancelError = True ' Erzwingt einen Fehler on Error GoTo dbErrHandler dbErrHandler: blablabla Aber wie mache ich es die Abbrechen Schaltfläche anzusprechen? Wie ist der Objektname? thx, für eute Antworten.... |
Du mußt das mit einem Errorhandler machen. Anders gehts nicht. Wenn du sonst schon einen anderen Errorhandler hast dann setze eine Zeile vor dem Aufruf einen speziellen für die Inputbox.
Ist zwar alles andere als schön strukturiert, geht aber nicht anders. Execeptions kommen ja erst in der nächsten VB-Version. Beispiel: sub beispiel() on error goto beispiel_error ... ... on error goto beispiel_inbox_error x = inbox("bla bla" ...... usw on error goto beispiel_error ... ... beispiel_inbox_error: 'Abbrechen wurde gedrückt .. exit sub beispiel_error: 'restlichen fehler abfangen end sub |
sollte auch gehen wenn du diese variable die in die inputbox eingegeben wird als Variant dimensionierst.
|
Hab noch eine Frage: Wie kann ich etwas in die nächste Zeile schreiben? Sei es jetzt bei einer MsgBox oder wenn ich Daten in eine Textdatei schreibe. Hab noch nichts gefunden was das bewerkstelligt.
|
indem du das richtige steuerzeichen in den string einfügst:
zb. MsgBox "hallo!" & Chr(13) & "Wie gehts?" |
danke Jaguar! unter C hätt ichs ja gewusst(da wärs "\n" ;)), aber ich hab nirgends was gefunden für VB. Nicht einmal in der Library.....
|
Und mir fällt noch eine Frage ein: wie bekomm ich wenn ich z.B. einen Button drücke den Coursor auf ein bestimmtes Textfeld, wo ich dann gleich was eingeben kann, ohne das ich erst mit der Maus hinklicken muss?
|
feld.setfocus
|
@Jaguar:Weils´t es grad erwähnt hast (chr$(13)) wo ist der Unterschied zwischen 10 und 13? Und warum steht in TXT-Dateien beide?
z.B.: hallo[10|13] Nexte Zeile[10|13] U.s.w.[10|13] Ich mein eines der SteuerZeichen reicht doch oder? Neben bei: Ich bin ein professioneller QBasic-Anwendre und steige gerade nach VBasic um (fast) alles kein Problem, doch PRINT(?!?) Objeckt.PRINT ? HÄ?!? Kann mir das bitte wer erklären? (+/- Line, usw . . .) |
soviel aus der MSDN:
* *Die Werte 8, 9, 10 und 13 werden in Rückschritt-, Tabulator-, Zeilenvorschub- und Wagenrücklaufzeichen umgewandelt. Sie können nicht grafisch dargestellt werden, beeinflussen aber (in Abhängigkeit von der Anwendung) die Anzeige von Text auf dem Bildschirm. Das mit dem print? Prinzipiel hast in VB einen "objektorientierten Ansatz" .. (volle OOP erst ab der nächsten Version). d.h. wennst jetzt ein Objekt hast dann stellt das eine Methode print zu Verfügung. Sonst noch Fragen? |
Zitat:
|
und gleich noch eine Frage an das VB allwissende Forum: :)
Wie kann ich Fenstergröße "locken"? Sprich der Anwender kann die Fenstergröße nicht ändern. Hab leider wieder keine Eigenschaft gefunden mit der ich das bewerkstelligen könnte? Oder geht das sowieso nur wenn ich mir eine funktion schreib die über den Resize() event angesprochen wird, und die alte Größe wieder herstellt? thx |
@Jaguar: Den ASCII-Code kenn ich auch! Meine Freage war, WARUM 2 mal?
Bitte ein Beispiel für eine Print-Anweisung! (Hab´s nur als Marko-Version von Word) |
Für die codes 13 und 10 (für die anderen auch aber da fallen mir grad die vars ned ein) gibts eigene konstanten in vb.
vblf, vbcr und vbcrlf also line feed, carriage return und die kombination aus beiden. bezüglich der InputBox: Wennst auf cancel klickst ist der Wert ein leerstring. Code:
a = inputbox("Du mir sagen wert") |
@Sesa_Mina: Schön, dass es das gibt, doch beantworted die absolut nicht meine Frage! (ist dies unter Unix, MacOS, OS/2 usw. ähnlich?)Was macht 10, was 13 nicht schon gemacht hat? (oder umgekehrt?)
Außerdem was glaubst, wast mit CHR$(10) (B.z.w CHR$(13)) machst? |
@James017:
welche codes verwendet werden hängt vom OS ab. In der ms-dos und Winslow Welt ist vbcrlf gebräuchlich. Unter unix/linux ist es vblf (wenn ich mich richtig erinnere). Chr$(10), Chr$(13): Die Verwendung von Konstanten anstatt dem Aufruf einer Funktion beschleunigt die Programmausführung. Ausserdem ist bei Verwendung von Konstanten der Sinn derselben sofort ersichtlich. Probier das mal in einer Schleife aus, die so ca. 100000 mal läuft und miss die Ausführungszeit. Da solltest nen unterschied bemerken :) Weiters zu den codes 13 und 10: cr = Carriage Return = Wagenrücklauf. D.h. der Cursor springt an den Anfang der Zeile. lf = Line Feed = Zeilenvorschub. D.h. der Cursor bewegt sich eine Zeile nach unten. Um nun beides zu erreichen (CR und LF) werden beide Steuerzeichen in die Datei geschrieben. |
Ich glaube, dies komt von der steuerung der LPT (LinePrinTer), die ja nur mit codes arbeiteten! Daher kam auch meine Frage, da wenn ich Code-13 auf dem Bilschirm ausgebe, reicht dies vollsändigst!
Danke! Jetzt verstehe ich den Zusamenhang der Codes! |
@LLR:
über die Eigenschaft borderstyle müßte das zu machen sein form.borderstyle=1 |
Danke reemrev.
Aber jetzt schäm ich mich ein bissi da es so leicht war und ich nicht einmal gscheit gschaut hab. Weil sonst hätt ichs wahrscheinlich auch gefunden. :( ;) |
Willkommen im Club
|
Shit happens!
(Wo wie schon dabei sind: ) Ich hab´s zwar schon wo (erfolgslos) geposted, doch nochmal: Könnte mir wer bitte ein paar Ausgabe Routinen geben (PRINT), da ich als QB->VB Übergänger noch ziemliche Probleme mit dem Objekt.PRINT(?!) habe. THX James |
Läßt sich das etwas einschränken, unter print finden sich ca. 230 Möglichkeiten einer Anwendung !!
|
Naja, anfänger routinen (QB: Print "Text" -> VB OBJECKT.Print "text"?)
1) WAS für Objeckte? WIE WAS WANN (WARUM) 2) Steuerungszeichen wie ":/;/," kenn ich schon aus QB Mich zipft´s nur tierisch an, dass ich Dateihandling, Fehlerroutinen, Button-Sub´s und ähnliches auf anhieb schaffe, doch nur nicht, einen Text auszu geben, . . . :confused:! |
Bevor ich's vergesse, welche VBversion verwendest du ?
Unter vb4 brauchte man noch eine eigene pascal-dll um im Querformat zu drucken, unter vb5 genügt es schon, eine Variable zu setzen. zb. Drucken einer Textdatei unter vb4 sub text_drucken (datei$,links%, linien%) dim x$,a%,blattbreite%,l Printer.scalemode=6 blattbreite=printer.width/56.7 l=links-(blattbreite-printer.scalewidth)/2 a=1 open "dateiname" for input as #1 while not EOF(1) line input #1,x printer.currentx=1 printer.print x if a = linien then printer.newpage a=0 end if a=a+1 wend close #1 printer.enddoc end sub Hoffe, es ist fehlerlos. |
Zitat:
Zitat:
Zitat:
Zitat:
Ok: sagt mir bitte, od meine iterpretation richtig ist ...printer.currentx=1.Druckposition=erste Spalte ...printer.print x....in x eingelesene Zeile ausgeben ...printer.enddoc.....drucken abgeschlossen Stimmt das in ungefähr? (@Admin: könnt´s bitte das "Leerzeichnrausfiltren" abstellen is echt nerfig :mad:! Vor allem bei Quelltexte! Nach einer schonen Formation -> linksbündiger-Blockmist :mad:!) |
1. Bildschirm drucken ?? Wozu ?
2. "dateiname"=datei$ 3. currentX und currentY geben die Koordinaten an 4. printer.enddoc: Beendet eine Druckoperation, die an das Printer-Objekt gesendet wurde, und gibt das Dokument für den Drucker oder Spooler frei. |
[QUOTE1. Bildschirm drucken ?? Wozu ?[/quote]
Jetzt weiß ich, wo der "Fehler" ist! Was ich gemeint habe, sind Bildschirmausgaben(!) PRINT "Text" eben aber nicht am Drucker! QB -> Print (LPrint ist da der Drucker) TP -> write('Text') Bzw. writeln('Text') VB -> Objeckt.Print :confused: (laut hilfe) :confused: |
Ach so, der wichtigste Befehl ist
debug.print a, (listet den Wert einer Variablen im Direktfenster = STRG+G auf) debug.print a; (macht selbiges, sprint aber in eine neue Zeile) Habe oft Fehler, bin halt nicht so gut, sodaß mir dieser Befehl sehr oft an kritischen Stellen geholfen hat. |
Trifft´s schon eher, doch irgent wie komme ich da nicht ganz mit :rolleyes: :(
Prog zum ausgeben einer Textdatei (am Bildschirm): QuickBasic: open "Textdatei.txt" for input as #1 ...Do until Eof(1) ......Line Input #1, txt$ ......Print txt$ ...Loop close #1 VisualBasic: open "Textdatei.txt" for input as #1 ...Do while Eof(1) ......Line Input #1, txt$ .....:confused:.Print txt$ <- Wie geht das? ...Loop close #1 (Ist ";" nicht Cursor bleibt an Position, "," zur nächsten Spalte und "" nächste Zeile?) |
Also ich verstehs nicht!
In jedem Formular kannst ganz einfach eine Ausgabe mit dem Print Befehl machen z.B. Print "Irgendeintext" er schreibts dann direkt raus aufs Formular. Also was geht da nicht???? |
Weiß ich nicht, im Makro-Editor aber nicht, . . . Da verlangt er immer nach so einem Objeckt! Ich vresteh eschon nicht´s mehr . . .
|
Makro Editor?? Sag mal, ganz dumme Frage: WO willst du den Text eigentlich ausgeben?? (und in welchem Programm arbeitest du überhaupt?)
|
In ein "Listenfeld"! Makroeditor unter Word . . .
|
In ein Listenfeld kannst nix "hineinprinten"...
Da kann man nur mittels der .Add Methode neue Elemente dranhängen. Steht aber in der VBA Hilfe zur Listbox! |
Probier mal folgendes:
am Formular ein Textfeld erstellen. Eigenschaft 'MultiLine' aud True setzen private sub leseText (myfile as string) open myfile for input as #1 text1.text="" while not eof(1) line input#1,data text1.text=text1.text & vblf & data wend close #1 end sub Den text hast nachher in der textbox stehen und kannst ihn sogar bearbeiten. und wennst die richtextbox verwendest hast sogar befehle zum laden und speichern dabei. mfg |
@Sesa_Mina
er wollte in ein Listfeld hineinschreiben und nicht in ein Textfeld .. da bringt ihm die Eigenschaft .Text nix (zumindest nicht um Elemente reinzuschreiben)!! (es sei denn er hat mit Listenfeld was anderes gemeint :) .. drum @james017 schreib noch mal ganz genau ob du eh mit Listenfeld eine Listbox gemeint hast oder doch nur ein Textfeld. Weil sonst ist es nicht eindeutig! |
:confused:Verdammt ihr macht mich nuch wahnsinnig:confused:! Ich kenn mich eh schon nicht mehr aus! Bitte schauts in den Makroeditor (von Word) und sagts mir, wie ich einen Text am Bildschirm bringen kann!:confused::confused::confused:
|
Zitat:
Drum war meine Frage: WO (oder in welchem Steuerelement) willst du den Text ausgeben! Normalerweise gibts Formulare und die beinhalten Steuerelement (z.B. Textfelder, Listboxen, Comboboxen, Checkboxen.. die ganzen Steuerelemente die grafische Benutzeroberflächen so bieten). Und mit denen kannst arbeiten. Du kannst ned IRGENDWO planlos auf deinem Monitor wo nen Text hinschreiben. Wie soll das bitte gehen in einer grafischen Benutzeroberfläche??? (das kannst in einem Textterminal machen -> siehe Dosbox) aber ned unter Windows) |
Zitat:
in vbs gehts so: Set objFs = CreateObject("Scripting.FileSystemObject") Set objText = objFs.OpenTextFile("pfad und dateiname",1) Response.Write objText.ReadAll objText.Close Set objTextStream = Nothing |
Zitat:
das hat doch nix mit Ausgabe von Text in VBA zu tun sondern um einem Client per Webbrowser was zu schicken. (is aber was total anderes als in VBS!!) |
Alle Zeitangaben in WEZ +2. Es ist jetzt 20:55 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag