| |
|
|
Stefan Landsberg | Hallo,
irgendwie wurde mir der alte Thread hier [...] zu unübersichtlich, und da dachte ich mach einen neuen Thread auf. (Wenn dass nicht gewünscht ist bitte ich einen Admin einen von beiden zu löschen).
Worum gehts: Ich bin dabei mein erstes Programm zu programmieren. es soll eine liste von ips anpingen und dann anzeigen ob sie erreichbar sind oder eben nicht.
mein Programm ist (bis auf das Design) schon fast fertig. Zur Zeit sieht der Code so aus: [...]
und hier die Frage:
ist es eine gute Idee als Ausgabefeld eine MultiEditBox zu nehmen oder gibt es dafür besseres? ich hab nichts gefunden! mein problem ist, dass das nicht als absatz angezeigt wird sondern nur als schwarzer Kasten. in dem Ausgabefeld soll aber ein Liste ausgegeben wobei jede IP eine eigene Zeile hat. |
|
|
| |
|
|
|
Stefan Landsberg | weiß keiner eine alternative zu multieditbox oder kann mir sagen wie man mit settext absätze in multieditboxen kriegt? |
|
|
| |
|
|
|
Sebastian König | Hallo Stefan,
Stefan Landsberg
weiß keiner eine alternative zu multieditbox oder kann mir sagen wie man mit settext absätze in multieditboxen kriegt?
in MultiEdits bekommt man einen Zeilenumbruch durch die Kombination der ASCII-Zeichen 13 (CR) und 10 (LF). Ab XProfan 9.0 steht das " " für einen String aus beiden Zeichen (deshalb liefert len(" ") auch eine 2 zurück). Für ältere Versionen kannst Du einfach
"Zeile 1"+chr$(13)+chr$(10)+"Zeile 2"
benutzen.
HTH
Sebastian |
|
|
| |
|
|
|
Stefan Landsberg | Danke funktioniert super.
Darf ich noch drei Fragen stellen?:
1. irgendwie werden in meiner ip outputbox nur 230-260 zeichen ausgegeben. der rest wird irgendwie verschluckt. ist die bereichsvariable voll?? eigentlich hab ich die auf 32000 byte dimensioniert. weiß jemand woran das liegen kann? hat ein ascii zeichen soviel byte?
2. wie mache ich es dass man die ip inputbox auch nochmal mit einer liste füllen kann und ein zweites (und drittes, und ...) mal auf den button Überprüfen klicken kann?
3. Wie macht man es dass das Fenster nur über das (rote) schließen kreuz geschlossen werden kann.(und natürlich mit ALT+F4). ich habe das automatische schließen des fensters erstmal mit waitkey verhindert.
Der code sieht zurzeit so aus: [...] |
|
|
| |
|
|
|
| |
|
| |
|
|
|
Sebastian König | Stefan Löwen
1. irgendwie werden in meiner ip outputbox nur 230-260 zeichen ausgegeben. der rest wird irgendwie verschluckt. ist die bereichsvariable voll?? eigentlich hab ich die auf 32000 byte dimensioniert. weiß jemand woran das liegen kann? hat ein ascii zeichen soviel byte?
Das liegt daran, dass in Profan² 6.6 die maximale Länge eines Strings noch auf 255 Zeichen beschränkt ist. In der Zeile
settext ipoutput%,@string$(ipouttxt#,0)
wird die Rückgabe von @string$() deshalb nach 255 Zeichen abgeschnitten. Umgehen kannst Du das Problem, indem Du den Text Schritt für Schritt in das MultiEdit schreibst. Dazu ist wohl etwas API notwendig - ich benutze immer diese Kombintation: KompilierenMarkierenSeparieren In Profan² 6.6 benötigst Du die Zahlenwerte der Messages - sie sollten in der Hilfe stehen. Außerdem muss hinter dem Addr() noch ein +1 ergänzt werden.
Stefan Löwen
2. wie mache ich es dass man die ip inputbox auch nochmal mit einer liste füllen kann und ein zweites (und drittes, und ...) mal auf den button Überprüfen klicken kann?
Falls ich die Frage richtig verstehe, würde ich sagen: Schleife um alles und ggf. am Anfang die Ausgabe-Box löschen.
HTH
Sebastian |
|
|
| |
|
|
|
Stefan Landsberg | hmm, danke iF für die schnelle antwort.
aber das erwünschte hat das auch nicht gebracht. jetz wird zwar das waitkey übersprungen wenn ich über das kreuz schließe. aber das kreuz hat keine wirkung bevor ich auf überprüfen geklickt habe. Und wenn ich, nachdem ich auf Überprüfen geklickt habe, einfach so eine Taste drücke wird das Fenster auch geschlossen (wegen dem WaitKey).
Ich denke 2. und 3. müssen gemeinsam gelöst werden. vielleich irre ich mich aber auch.
Aktueller Code: [...]
Edit: ui jetz hab ich noch eine antwort (danke sebastian). dann werde ich mir das jetz auch angucken und mich dann nochmal melden. |
|
|
| |
|
|
|
| Was sehe ich da...
das waitKey wech,- ein waitinput vor case %key=2 : break |
|
|
| |
|
|
|
Stefan Landsberg | @iF: ne auch nicht. jetz kann ich das fenster zwar auch vor dem Überprüfen schließen, aber nach dem Überprüfen wirds automatisch geschlossen.
So sieht der Code jetz aus: [...] |
|
|
| |
|
|
|
Stefan Landsberg | so jetz die antworten zu sebastian:
bei mir in der hilfe stehen nur die zahlenwerte für em_setsel und em_replacesel. em_scrollcaret ist garnicht erwähnt. und infos dazu was die parameter hinter der message bedeuten gibts auch nicht.
und eine schleife habe ich doch um alles.
WhileNot exit% ... EndWhile
und: Welche ausgabebox meinst du
tut mir leid dass ich soviele negative ergebnisse liefere. ich find das auch doof das das nicht so will wie ich!
code: [...] |
|
|
| |
|
|
|
Sebastian König | Stefan Löwen
bei mir in der hilfe stehen nur die zahlenwerte für em_setsel und em_replacesel. em_scrollcaret ist garnicht erwähnt. und infos dazu was die parameter hinter der message bedeuten gibts auch nicht.
Ok, hier ist erstmal der Wert: EM_SCROLLCARET = $00B7. Ausführliche Beschreibungen zu den Parametern und vieles mehr findest Du unter [...]
Stefan Löwen
und eine schleife habe ich doch um alles.
WhileNot exit% ... EndWhile
und: Welche ausgabebox meinst du
Mit der Ausgabe-Box meine ich die Ergebnisliste. Wenn ich das richtig sehe, ist Dein Code wirklich schon so, dass man immer wieder auf "Überprüfen" klicken kann. Kannst Du genauer beschreiben, was Du machen möchtest?
MfG
Sebastian |
|
|
| |
|
|
|
Stefan Landsberg | hm werde mir das mit den messages dann mal angucken.
ich möchte dass so haben, dass ich das programm öffne, und in das eingabefeld ein liste von ips eintippe. dann klicke ich auf überprüfen. daraufhin werden in der unteren box die ergebnisse angezeigt, und die obere box wird gelehrt. Soweit funktioniert das ja auch. Aber ich hätte es gerne so dass ich die eingabebox dann ein zweites mal mit (anderen) ips füllen kann und wieder auf Überprüfen klicken kann. Dann soll die untere Box geleert werden und es werden die ergebnisse der neuen liste ausgegeben.
danke schonmal für die Hilfe |
|
|
| |
|
|