World: r3wp
[Rebol School] Rebol School
older newer | first last |
Gregg 27-Jul-2007 [595x3] | You shouldn't have to worry about new-line at all. It's actually relatively new, so we all lived without it for a long time. |
It can be confusing at times, and even once you know what you're doing, you sometimes have to think about it a bit. The up-side is that you have a great deal of control once you know how to use it. | |
I should point out that NEW-LINE, as Anton used it, is a handy shortcut that takes the place of foreach+print for simple console display. | |
PatrickP61 27-Jul-2007 [598] | I am looking forward for the Rebol lightbult to go on full power!!! I think it just takes me playing around with rebol more to get there! |
[unknown: 9] 27-Jul-2007 [599] | Yes...that will happen. The best way is to try to teach what you know now to someone else. To Teach is to learn. |
Geomol 27-Jul-2007 [600] | Patrick, before I started with REBOL, I had many years of experience with many different languages, both as a hobby and professional. It wasn't hard for me to grasp new languages, because every new one always reminded me of some other language, I already knew. Then I came to REBOL, and I could make small scripts after a few days. But it took me more than a year to really "get it". And it's just the best language, I've ever programmed in. It keeps amaze me after all these years, and I constantly find new things, new ways of doing things. From your posts here, you're having a very good start, as I see it. Just keep hacking on that keyboard, and don't forget to have fun! |
btiffin 27-Jul-2007 [601] | Patrick; Check out http://www.rebol.org/cgi-bin/cgiwrap/rebol/art-display-article.r?article=lf019t It's an experiment in rebol.org hosting public wiki articles. Plus I'm plugging my own work :) |
Vladimir 3-Oct-2007 [602x4] | Well first of all ....Im new here... :) joined yesterday... and I have a problem on my hands..... |
Here is a piece of code from graphic editor.... I have problems with "insert-event-func" | |
pixel_face: make face [ size: pixel_size edge: none color: black data: 0 ] ... pane-func: func [face index] [ index: (index - 1) either integer? index [ if index < ((grid_size/x) * (grid_size/y)) [ xx: (index // (grid_size/x)) + 1 yy: to-integer ((index / (grid_size/x)) + 1) pixel_face/data: index pixel_face/offset/y: ((yy - 1) * (pixel_size/y)) pixel_face/offset/x: ((xx - 1) * (pixel_size/x)) pixel_face/color: pick paleta sprite-colors/:yy/:xx return pixel_face ] ][ ; return to-integer index/y / 20 + 1 ] ] key-event: func [face event] [ if event/type = 'key [ switch event/key [ up [cursor_y: cursor_y - 1] down [cursor_y: cursor_y + 1] left [cursor_x: cursor_x - 1] right [cursor_x: cursor_x + 1] ] sprite-colors/:cursor_y/:cursor_x: 2 show grid ] if event/type = 'time [ ? now/time cursor_color: (3 - cursor_color) sprite-colors/:cursor_y/:cursor_x: :cursor_color show grid ] event ] insert-event-func :key-event grid: make face [ offset: ((screen_size - window_size) / 2) size: window_size rate: 00:00:05 color: blue effect: [gradient] pane: :pane-func ] view/new grid do-events | |
No matter where I put the rate: 1 element I get 24 events in one second..... How can I slow this down? | |
Oldes 3-Oct-2007 [606] | Which events? If from keyboard, you have to filter them in your key-event function. |
Vladimir 3-Oct-2007 [607x3] | That is what I do in key-event func....: if event/type = 'time [ ? now/time cursor_color: (3 - cursor_color) |
Problem is that events are always happening the same rate... no matter what I do.... | |
I tried to put rate:1 in my grid face.... I tried to put it in pixel_face... I tried to put it in pane-func... | |
Oldes 3-Oct-2007 [610] | Here is simplified your problem: ke: func[f e][ if e/type = 'time [print now/time/precise] e] insert-event-func :ke view layout [box with [rate: 10]] But I cannot help you. I'm not a view guru. It looks you should not use insert-event-func if you don't want to get all time events. |
Vladimir 3-Oct-2007 [611x2] | :) |
yeah... I guess its a mix between insert-event-func and iterated pane..... pane is generated every time and my adding rate element to it doesn't effect global rate..... thanks for answer! | |
Oldes 3-Oct-2007 [613] | Use somethink like: view layout [ box with [ rate: 10 feel: make feel [ engage: func [f a e] [ if a = 'time [print now/time/precise] ] ] ] ] |
Vladimir 3-Oct-2007 [614x8] | I'm just typing something like that.... :) |
I will check if iterated pane is the source of problem.... | |
pane is not a problem...... your code works (as it should) :) | |
I know it works, but I remember puting insert-event-func there for a reason.... If I remember I couldnt get keyboard response from my iterated pane somehow.... I'll try it again .... | |
Thanks for help! | |
Done it! All I needed was: system/view/focal-face: grid | |
I guess I should read docs more :) | |
Sorry for spamming this gruoup... but I was wrong.... I mixed to source files... Editid one and ran another... so ... it still doesnt work....... | |
Oldes 3-Oct-2007 [622x2] | If you want just blinking cursor, don't use insert-event-func, but just something like that: cursorMover: func[f e][ if e/type = 'key [ switch e/key [ up [cursor/offset/y: cursor/offset/y - 10] down [cursor/offset/y: cursor/offset/y + 10] left [cursor/offset/x: cursor/offset/x - 10] right [cursor/offset/x: cursor/offset/x + 10] ] show cursor ] e ] insert-event-func :cursorMover view layout/size [ cursor: box 10x10 with [ rate: 10 colors: [0.0.0 255.255.255] feel: make feel [ engage: func [f a e] [ if a = 'time [ f/color: first head reverse f/colors show f ] ] ] ] ] 400x400 |
(I mean don't use the insert-event-func for changing color but only for geting the key events) | |
Izkata 3-Oct-2007 [624] | It looks like the event function isn't being triggered for the box, but rather for system/view/screen-face or something - >> ke: func [f e][if e/type = 'time [print f/text]] >> insert-event-func :ke >> view layout [box "Testing" with [rate: 1]] none none None of them print "Testing", as a call from the box should |
Vladimir 3-Oct-2007 [625x4] | Thanks Oldes! I did it.... I used insert-event-func for key events and feel for time events.... |
But, why? Ohhhh why do I need to do it like that? :) | |
I red part of docs (6.4 Focus and Keyboard Events) but it doesnt help......... Well so far I'm ok, my editor can move on.... :) | |
But I would love to know: How to set key press event on something so that it would be timed? Or how to make insert-event-func function get called in precise timed intervals? | |
Oldes 4-Oct-2007 [629] | insert-event-func is simply used for global events, you can use it to detect 'close, 'resize, 'active and 'inactive as well. Why you should have such a event handlers in feels? |
Vladimir 4-Oct-2007 [630] | I'm actually interested only in keypress events... But I have to limit the rate of events... I know there is the rate element in every face, and I did make it work for time event and that is ok. But I couldn't make keypress event occur in timed intervals. I'm not saying I have to have it. Maybe it just isnt supossed to be. But it says in docs: The focal-face must be set to a valid face object (one that is part of a pane in the face hierarchy) and the system/view/caret (explained in next section) must also be set in order to: 1. Receive keyboard events .... So I put this inside engage func: system/view/focal-face: face system/view/caret: tail "" And now it works... I dont even use caret but you have to set it to some bogus value! So in my opinion rate element has no influence on key events (if I type like crazy I get 19 key events for 1 second...). But I can make some sort of counter and simply do keypress response only when I want to... |
Gregg 4-Oct-2007 [631] | The event handling system will call your insert-event-func handler as fast as it can, if there are availalbe events, and there will always be time events, occurring at whatever rate REBOL uses them. I don't know of any way to control when, or how often, your func is called. |
Vladimir 4-Oct-2007 [632] | Its ok like this... :) I can make what ever I need for my editor using this method. I guess things will be more controllable in R3... Thanks again for help! |
Anton 7-Oct-2007 [633x2] | Vladimir, the window/feel gets time events at full speed. Any subface/feel gets time events at subface/rate. |
So, I advise to trap events in subface/feel/engage, not in window/feel or screen-face/feel. (insert-event-func adds a handler which is processed in screen-face/feel) | |
Vladimir 26-Oct-2007 [635] | What could be problem with this script? set-net [[user-:-mail-:-com] smtp.mail.com pop3.mail.com] today: now/date view center-face layout [ size 340x120 button "Send mail" font [size: 26] 300x80 [ send/attach/subject [user-:-mail-:-com] "" %"/c/file.xls" reduce [join "Today " :danas] quit ] ] I get this error: ** User Error: Server error: tcp 554 5.7.1 <[user-:-mail-:-com]>: Relay access denied ** Near: insert smtp-port reduce [from reduce [addr] message] Could it be some security issue? It worked with previous internet provider... A week ago we changed it and now this happens... Should I contact my provider to change some security settings or should I change something in the script? |
Pekr 26-Oct-2007 [636x3] | The problem probably is, that you are trying to send your email from outside of @mail.com domain. |
smtp servers usually don't allow you to send email via themselves, if you are not part of particular network, or they require authentication to smtp - usually your accont name and password is enough. I think that in such case, you are out of luck with REBOL. Not sure our smtp protocol can handle it ... but - go to www.rebol.org and try to search for "smtp" - there are some scripts which could help you .... | |
before you do so though, please try to configure your mail client (FireBird, Outlook), to see what kind of setting you are heading for, as the problem as well can be related to some other issue :-) | |
Vladimir 26-Oct-2007 [639x5] | I just set up outlookexpress and "my server requires authentication" is a problem.... |
:( | |
So this means my old provider was not that rigid on smtp control.... uffff.... :) | |
is there a way to give this user authentication data to it? Ill check rebol.org for that... | |
I would think someone else already came with a solution for such acommon problem.......... | |
Pekr 26-Oct-2007 [644] | try to look for esmtp. Usually there is a requirement for sending your user account name and pass. Hopefully you can find something ... |
older newer | first last |