473,785 Members | 2,476 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

How to explain this?

Hi

I have a problem understanding why events are triggered in the way they are in the example below.
I have a function assigning events to DOM objects:

addEventHandler = function (oTarget, sEventType, fnHandler) {
if (oTarget.addEve ntListener) {
oTarget.addEven tListener(sEven tType, fnHandler, false);
} else if (oTarget.attach Event) {
oTarget.attachE vent("on" + sEventType, fnHandler);
} else {
oTarget["on" + sEventType] = fnHandler;
}
};

Using this function I'm attaching event handling functions like this:

var el = document.getEle mentById('contD iv');
addEventHandler (el, 'drag', test);
addEventHandler (el, 'mouseup', test);
addEventHandler (el, 'mousedown', test);
addEventHandler (el, 'mousedown', test);
addEventHandler (el, 'mouseover', test);

Where test function is to display types of events in textarea:

function() {
var e = EventUI.getEven t();
var test = document.getEle mentById('teste ');
test.innerHTML += e.type + "\n";
return false;
}

OK now to the point:

When I drag across my div in IE I get following events:

mouseover - mousedown - mousedown - drag - mouseover - mouseup

And thats what I'm expecting it to do (I removed a lot mouseover events to keep it clear).
BTW: The cursor is still an arrow when I'm dragging across div.

In FF on the other hand I get only:

mouseover - mousedown - mouseover

So I'dont get second on mousedown and I don't get onmouseup. While dragging my cursor takes shape of
cross out circle.

I found the solution to it by attaching the events in this manner:

var el = document.getEle mentById('contD iv');
addEventHandler (el, 'drag', test);
addEventHandler (el, 'mouseup', test);
document.getEle mentById('contD iv').onmousedow n=test;
addEventHandler (el, 'mousedown', test);
addEventHandler (el, 'mouseover', test);

Now it works in FF and IE.

FF:
mouseover - mousedown - mousedown - mouseover - mouseup

IE:
mouseover - mousedown - mousedown - drag - mouseover - mouseup

WHY ?

If anyone knows why its like this please respond.

Thank you very much.
--

Ralph
Jan 14 '07 #1
6 1642
Daz

Ralph wrote:
Hi

I have a problem understanding why events are triggered in the way they are in the example below.
I have a function assigning events to DOM objects:

addEventHandler = function (oTarget, sEventType, fnHandler) {
if (oTarget.addEve ntListener) {
oTarget.addEven tListener(sEven tType, fnHandler, false);
} else if (oTarget.attach Event) {
oTarget.attachE vent("on" + sEventType, fnHandler);
} else {
oTarget["on" + sEventType] = fnHandler;
}
};

Using this function I'm attaching event handling functions like this:

var el = document.getEle mentById('contD iv');
addEventHandler (el, 'drag', test);
addEventHandler (el, 'mouseup', test);
addEventHandler (el, 'mousedown', test);
addEventHandler (el, 'mousedown', test);
addEventHandler (el, 'mouseover', test);

Where test function is to display types of events in textarea:

function() {
var e = EventUI.getEven t();
var test = document.getEle mentById('teste ');
test.innerHTML += e.type + "\n";
return false;
}

OK now to the point:

When I drag across my div in IE I get following events:

mouseover - mousedown - mousedown - drag - mouseover - mouseup

And thats what I'm expecting it to do (I removed a lot mouseover events to keep it clear).
BTW: The cursor is still an arrow when I'm dragging across div.

In FF on the other hand I get only:

mouseover - mousedown - mouseover

So I'dont get second on mousedown and I don't get onmouseup. While dragging my cursor takes shape of
cross out circle.

I found the solution to it by attaching the events in this manner:

var el = document.getEle mentById('contD iv');
addEventHandler (el, 'drag', test);
addEventHandler (el, 'mouseup', test);
document.getEle mentById('contD iv').onmousedow n=test;
addEventHandler (el, 'mousedown', test);
addEventHandler (el, 'mouseover', test);

Now it works in FF and IE.

FF:
mouseover - mousedown - mousedown - mouseover - mouseup

IE:
mouseover - mousedown - mousedown - drag - mouseover - mouseup

WHY ?

If anyone knows why its like this please respond.

Thank you very much.
--

Ralph
Firefox doesn't support an 'ondrag' event. You need to create your own
methods that will check if the object is one that's meant to be
dragable, and then detect mouse down and mouse up. When the mouse goes
down, use the mouse position to change the absolute position of the div
you are dragging (this should mean it stays with the cursor). Once you
let go of the button (onmouseup), the method should stop moving the
div.

I think the best way to handle it, would be to have a variable that is
set to true if you are dragging something, and false if it's not. Or
perhaps you can set it to the object you are dragging, then set it to
null when you finish. I am not sure why the 'mouseup' and 'mousedown'
events aren't working. I would suggest you try adding it like this, to
see if it makes any difference.

var el = document.getEle mentById('divEl ement');
el.onmouseup = function(){ alert("mouse up!); }
el.onmousedown = function(){ alert("mouse down!); }

You also need to be sure that you are using 'mouseup' and not
'mouseUp'.

Please see
http://developer.mozilla.org/en/docs...s#Mouse_Events
for more information.

Please let me know how you get on.

Daz.

Jan 14 '07 #2
Daz wrote:

Thank you for response. I have not been clear in my first post. I don't drag anything. My code is to
select blocks of time on the schedule. So I have a table 48x7 with small images (7 columns and 48
rows) I wrote the code to select blocks of time. And it's working OK using events handlers assigned
like this (look at my previous post to see the code for the function addEventHandler ):

var el = document.getEle mentById('contD iv');
addEventHandler (el, 'drag', test);
addEventHandler (el, 'mouseup', test);
document.getEle mentById('contD iv').onmousedow n=test;// This line does the trick in FF
addEventHandler (el, 'mousedown', test);
addEventHandler (el, 'mouseover', test);

The ondrag event is assigned only to make it work on IE and all it does is return false.

But when I use the code like this:

addEventHandler (el, 'drag', test);
addEventHandler (el, 'mouseup', test);
addEventHandler (el, 'mousedown', test); // If this line is like this it does not work in FF
addEventHandler (el, 'mousedown', test);
addEventHandler (el, 'mouseover', test);

It still works in IE but it does not in FF.
The only difference is the line addEventHandler (el, 'mousedown', test); instead of
document.getEle mentById('contD iv').onmousedow n=test;

Now I don't understand why code does not work when I use addEventHandler (el, 'mousedown', test); in FF.

Thank you
--

Ralph
Jan 14 '07 #3
Daz

Ralph wrote:
Daz wrote:

Thank you for response. I have not been clear in my first post. I don't drag anything. My code is to
select blocks of time on the schedule. So I have a table 48x7 with small images (7 columns and 48
rows) I wrote the code to select blocks of time. And it's working OK using events handlers assigned
like this (look at my previous post to see the code for the function addEventHandler ):

var el = document.getEle mentById('contD iv');
addEventHandler (el, 'drag', test);
addEventHandler (el, 'mouseup', test);
document.getEle mentById('contD iv').onmousedow n=test;// This line does the trick in FF
addEventHandler (el, 'mousedown', test);
addEventHandler (el, 'mouseover', test);

The ondrag event is assigned only to make it work on IE and all it does is return false.

But when I use the code like this:

addEventHandler (el, 'drag', test);
addEventHandler (el, 'mouseup', test);
addEventHandler (el, 'mousedown', test); // If this line is like this it does not work in FF
addEventHandler (el, 'mousedown', test);
addEventHandler (el, 'mouseover', test);

It still works in IE but it does not in FF.
The only difference is the line addEventHandler (el, 'mousedown', test); instead of
document.getEle mentById('contD iv').onmousedow n=test;

Now I don't understand why code does not work when I use addEventHandler (el, 'mousedown', test); in FF.

Thank you
--

Ralph
It is certainly bizzare, no doubt about it. May I suggest you use try
and catch blocks, around the addEventHandler calls? As drag is not
supported by Firefox, it would certainly make sense to a) put it to the
bottom of the block of code, and b) to setup an alert to any errors
which might be caused by it.

Sorry I couldn't be of any more help. If you find that the 'mousedown'
line, and the 'ondrag' line aren't throwing errors, then perhaps you
have a bug that might be worth reporting. Another thing to do, would be
to comment out the ondrag addEventHandler function call, and see if
that makes any difference.

Good luck! :)

Daz.

Jan 14 '07 #4
Daz wrote:
Ralph wrote:
>Daz wrote:

Thank you for response. I have not been clear in my first post. I don't drag anything. My code is to
select blocks of time on the schedule. So I have a table 48x7 with small images (7 columns and 48
rows) I wrote the code to select blocks of time. And it's working OK using events handlers assigned
like this (look at my previous post to see the code for the function addEventHandler ):

var el = document.getEle mentById('contD iv');
addEventHandle r(el, 'drag', test);
addEventHandle r(el, 'mouseup', test);
document.getEl ementById('cont Div').onmousedo wn=test;// This line does the trick in FF
addEventHandle r(el, 'mousedown', test);
addEventHandle r(el, 'mouseover', test);

The ondrag event is assigned only to make it work on IE and all it does is return false.

But when I use the code like this:

addEventHandle r(el, 'drag', test);
addEventHandle r(el, 'mouseup', test);
addEventHandle r(el, 'mousedown', test); // If this line is like this it does not work in FF
addEventHandle r(el, 'mousedown', test);
addEventHandle r(el, 'mouseover', test);

It still works in IE but it does not in FF.
The only difference is the line addEventHandler (el, 'mousedown', test); instead of
document.getEl ementById('cont Div').onmousedo wn=test;

Now I don't understand why code does not work when I use addEventHandler (el, 'mousedown', test); in FF.

Thank you
--

Ralph

It is certainly bizzare, no doubt about it. May I suggest you use try
and catch blocks, around the addEventHandler calls? As drag is not
supported by Firefox, it would certainly make sense to a) put it to the
bottom of the block of code, and b) to setup an alert to any errors
which might be caused by it.

Sorry I couldn't be of any more help. If you find that the 'mousedown'
line, and the 'ondrag' line aren't throwing errors, then perhaps you
have a bug that might be worth reporting. Another thing to do, would be
to comment out the ondrag addEventHandler function call, and see if
that makes any difference.
I did everything like you have said. And it is not working. The only time it's working is when i
have it like this:

var el = document.getEle mentById('contD iv');
addEventHandler (el, 'drag', test);
addEventHandler (el, 'mouseup', test);
document.getEle mentById('contD iv').onmousedow n=test;// This line does the trick in FF
addEventHandler (el, 'mousedown', test);
addEventHandler (el, 'mouseover', test);

If anyone wants to see the whole code and try to solve this puzzle here is the link to the code:

http://radioflag.com/sched/

the s.php file is the page with the schedule. The schedule.js is where everything is happening.

If you have any comments let me know.

PS: right now it may be slow because table is generated every time someone enters the page but I
will change it once i have everything working.

Thank you
--

Ralph
Jan 14 '07 #5
VK
var el = document.getEle mentById('contD iv');
addEventHandler (el, 'drag', test);
addEventHandler (el, 'mouseup', test);
document.getEle mentById('contD iv').onmousedow n=test;
addEventHandler (el, 'mousedown', test);
addEventHandler (el, 'mouseover', test);

Now it works in FF and IE.

WHY ?
This is a complicated problem with two overlapping issues here. So
sorry, but some long reading ahead.
Part 1 : Drag Confidential

There is undocumented system-level event in each browser
$MouseDragAtomi cUnit - I placed $ sign before the name to stress out
its internal nature plus the possibility to be called different names
in C++ source code. So do not search for it on MSDN, MDC, W3C or
particular engine's specs. The same $naming $convention further.

It is the fallback option for $MouseSelectDis creteUnits which is
checked first.

Say you started to drag some object - thus pressed down (left) mouse
button and started to move your mouse in any direction without
releasing the button.

1) First the system gets the object where the mouse was pressed.

2) Then it checks object's $AtomicSelectio n property. If true then go
to step 4 (your case)

3) If false then this object consists of discrete units which can be
selected individually: say block of text. In such case the system
checks if $MouseSelectDis creteUnits action is possible to the direction
of mouse move. If yes, then the selection starts.
4) If $AtomicSelectio n is true then the whole object gets selected and
$MouseDragAtomi cUnit starts. Unlike in Flash you are not allowed to
move displayed elements across the page by mouse means. You can only
implement such behavior via your own scripting. Thus
$MouseDragAtomi cUnit gets flag $notAllowed and respectively mouse
pointer changes to "not-allowed" shape. Yet the action itself is not
cancelled until the mouse released. This is because you may drag out of
the active window boundaries and release your mouse on some other
recipient: desktop or other application window. In such case if not
prohibited by security settings and if OLE supported a reference to
dragged object will be passed to recipient. This is how documents
scraps and other interesting things are being made. This way
$MouseDragAtomi cUnit has little practical sense within browser window -
it is almost always not-allowed - but it has big practical sense
overall.

The problem is that browser and specs producers seems mistook dragging
for some nasty sexual perversion :-) : in ten years no one dared to
describe the exact dragging mechanics so developers, generation by
generation, are forced to re-discover it on their own problems. - And
yes, back in 1998 I myself just like your was hitting my head over the
wall why dragging <layereither working or giving me crossed circle in
seemingly random order.
Part 2 : Killing Kenny
In order to bypass this obstacle in programmed dragging we have to tell
to the system in advance that this or that event is not what she thinks
it is. Particularly we have to warn the system that by pressing mouse
button down we are expressing _no_ intention to select something or to
use OLE dragging.
W3C and Microsoft ways to override default event behavior are
completely different, so to make cross-scripting not so painful it was
agreed to implement common shortcut: if event handler returns false
then it means "call $preventDefault EventAction subroutine" however it
is really implemented on this or that browser.
So when you have:
document.getEle mentById('contD iv').onmousedow n=test;
and test() has
return false;
then you call $preventDefault EventAction for mousedown event which
otherwise would be "wait for click, select or drag".

But if you are using addEventListene r / attachEvent methods then return
false; shortcut doesn't work anymore. It happens because in this case
there are not caller->callee relations where callee could return
something to its patiently waiting caller. Instead you have system
event dispatcher that notifies listeners one by one from its table.
System event dispatcher doesn't care what notified listener will do,
what will it return or if it returns anything. It notifies one and
moves to other right away.
It is also important that Gecko event dispatcher stores registered
listeners in internal array while IE in internal hash table. That means
that registered listeners on Gecko will be notified in order they were
added, while in IE they will be notified in an "organized disorder"
imposed by the internal hash storage mechanics.

This way you have two options to choose from in your particular case: a
bad one and a good one. I'll start from the good one :-)
1) You drop addEventListene r/attachEvent all together because in your
case they are not implied by the program logic, they do not add any
simplicity, portability or reliability. Use instead explicit event
handlers and return false; in them to prevent default actions.

2) You keep using addEventListene r/attachEvent. In this case you cannot
use the universal return false; shortcut. Instead you have to use then
underlying browser-specific tools. For Gecko it will be
EventObject.pre ventDefault(); method and for IE
event.returnVal ue=false; property change.

Jan 15 '07 #6
VK wrote:
>var el = document.getEle mentById('contD iv');
addEventHandle r(el, 'drag', test);
addEventHandle r(el, 'mouseup', test);
document.getEl ementById('cont Div').onmousedo wn=test;
addEventHandle r(el, 'mousedown', test);
addEventHandle r(el, 'mouseover', test);

Now it works in FF and IE.

WHY ?

This is a complicated problem with two overlapping issues here. So
sorry, but some long reading ahead.
Part 1 : Drag Confidential

There is undocumented system-level event in each browser
$MouseDragAtomi cUnit - I placed $ sign before the name to stress out
its internal nature plus the possibility to be called different names
in C++ source code. So do not search for it on MSDN, MDC, W3C or
particular engine's specs. The same $naming $convention further.

It is the fallback option for $MouseSelectDis creteUnits which is
checked first.

Say you started to drag some object - thus pressed down (left) mouse
button and started to move your mouse in any direction without
releasing the button.

1) First the system gets the object where the mouse was pressed.

2) Then it checks object's $AtomicSelectio n property. If true then go
to step 4 (your case)

3) If false then this object consists of discrete units which can be
selected individually: say block of text. In such case the system
checks if $MouseSelectDis creteUnits action is possible to the direction
of mouse move. If yes, then the selection starts.
4) If $AtomicSelectio n is true then the whole object gets selected and
$MouseDragAtomi cUnit starts. Unlike in Flash you are not allowed to
move displayed elements across the page by mouse means. You can only
implement such behavior via your own scripting. Thus
$MouseDragAtomi cUnit gets flag $notAllowed and respectively mouse
pointer changes to "not-allowed" shape. Yet the action itself is not
cancelled until the mouse released. This is because you may drag out of
the active window boundaries and release your mouse on some other
recipient: desktop or other application window. In such case if not
prohibited by security settings and if OLE supported a reference to
dragged object will be passed to recipient. This is how documents
scraps and other interesting things are being made. This way
$MouseDragAtomi cUnit has little practical sense within browser window -
it is almost always not-allowed - but it has big practical sense
overall.

The problem is that browser and specs producers seems mistook dragging
for some nasty sexual perversion :-) : in ten years no one dared to
describe the exact dragging mechanics so developers, generation by
generation, are forced to re-discover it on their own problems. - And
yes, back in 1998 I myself just like your was hitting my head over the
wall why dragging <layereither working or giving me crossed circle in
seemingly random order.
Part 2 : Killing Kenny
In order to bypass this obstacle in programmed dragging we have to tell
to the system in advance that this or that event is not what she thinks
it is. Particularly we have to warn the system that by pressing mouse
button down we are expressing _no_ intention to select something or to
use OLE dragging.
W3C and Microsoft ways to override default event behavior are
completely different, so to make cross-scripting not so painful it was
agreed to implement common shortcut: if event handler returns false
then it means "call $preventDefault EventAction subroutine" however it
is really implemented on this or that browser.
So when you have:
document.getEle mentById('contD iv').onmousedow n=test;
and test() has
return false;
then you call $preventDefault EventAction for mousedown event which
otherwise would be "wait for click, select or drag".

But if you are using addEventListene r / attachEvent methods then return
false; shortcut doesn't work anymore. It happens because in this case
there are not caller->callee relations where callee could return
something to its patiently waiting caller. Instead you have system
event dispatcher that notifies listeners one by one from its table.
System event dispatcher doesn't care what notified listener will do,
what will it return or if it returns anything. It notifies one and
moves to other right away.
It is also important that Gecko event dispatcher stores registered
listeners in internal array while IE in internal hash table. That means
that registered listeners on Gecko will be notified in order they were
added, while in IE they will be notified in an "organized disorder"
imposed by the internal hash storage mechanics.

This way you have two options to choose from in your particular case: a
bad one and a good one. I'll start from the good one :-)
1) You drop addEventListene r/attachEvent all together because in your
case they are not implied by the program logic, they do not add any
simplicity, portability or reliability. Use instead explicit event
handlers and return false; in them to prevent default actions.

2) You keep using addEventListene r/attachEvent. In this case you cannot
use the universal return false; shortcut. Instead you have to use then
underlying browser-specific tools. For Gecko it will be
EventObject.pre ventDefault(); method and for IE
event.returnVal ue=false; property change.
Thank you very much! That what I was looking for. Excellent explanation!
I'm still very new to JS especially with cross browser scripting so mentioning the preventDefault
and returnValue did the trick. Once again thank you.

--

Ralph
Jan 15 '07 #7

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

0
1309
by: Bruce D | last post by:
I'm trying to understand MySQL better. I can't seem to figure out why the second query takes 2 minutes and the first query takes 12 seconds. It should be noted that the table, KBM, has 250 million records. I'm using MySQL 5.0.2. I guess I'm trying to get a better understanding of what "using index" means in the "extra" column. Here's the result of the explain on my first query: SQL-query: explain Select count(1) as counter from kbm...
14
20396
by: Ina Schmitz | last post by:
Hello all, I don't succeed in displaying the explain plan. I use IBM DB2 Universal Database 8.2. I tried to do the example given in the online help for "Visual Explain". The tables EXPLAIN_STATEMENT and EXPLAIN_INSTANCE exist. With VESAMPL.DDL, I loaded the predefined execution plans. In the next step, I'ld like to display the loaded access plans. So, I right clicked on "Show Explained Statements History" and got the result:
10
2159
by: Jeff Boes | last post by:
I'm hoping there's someone here with experience in building the Visual Explain tool from Red Hat. I downloaded it and the J2 SDK, but when I attempt to follow the build instructions, I get messages like: error: Type `JTableHeader' not found in the declaration of the local variable `header'. JTableHeader header = null; To me, this indicates that the SDK isn't installed (properly). But I admit I'm pretty much a Java...
5
3635
by: Jon Lapham | last post by:
I have been using the EXPLAIN ANALYZE command to debug some performance bottlenecks in my database. In doing so, I have found an oddity (to me anyway). The "19ms" total runtime reported below actually takes 25 seconds on my computer (no other CPU intensive processes running). Is this normal for EXPLAIN ANALYZE to report a total runtime so vastly different from wall clock time? During the "explain ANALYZE delete from msgid;" the CPU is...
2
1908
by: Dan Sugalski | last post by:
Is there any way to convince explain to go do its thing when given a query with placeholders in it? I'm trying to do some performance checking of some of the queries built into a system I'm building. The SQL's all done with placeholders, for safety and ease of twiddling, but EXPLAIN... EXPLAIN doesn't like them. Trying throws an "ERROR: there is no parameter $1" which is somewhat sub-optimal. Any way, short of hand-replacing the...
4
12729
by: marklawford | last post by:
Not having earned my DBA badge from the scouts just yet I'm a little lost with an error I'm getting. We've just upgraded our development database from 7.2 to 8.2 as the first step in upgrading our wider environment. Of course, development doesn't stop so I'm running some explain plans over some new views. The problem is, when the view is accessed as part of the explain plan script, the following error is returned.
2
1502
by: heming_g | last post by:
two tables with the same table structure : tb_xxx and tb_xxx_tmp in table tb_xxx , column "listno" is the primary key of itself and foreign key of dozen of tables . here is my sql .. " update tb_xxx set ( listno ) = (select listno from tb_xxx_tmp where listno = 11 ) where listno = 11 " the explain result (use db2expln ) is amazing ... about a thousand lines !!!! ,refering all of the dozen of tables . but when i try
0
1582
by: dataguy | last post by:
I have my developers explaining the stored procedures that they write using visual studio. These stored procedures are for DB2 os390. In one case, one of the developers has defined a global temporary table that he uses to put the input parms into and then uses it to join against to create a dataset. When he runs explain (both visual explain, and CA's explain) it chokes on the SESSION.TABLE saying that it doesn't exist. Is there...
5
8108
by: kabotnet | last post by:
Hi, I'm new in db2, I'm trying to execute EXPLAIN command on some queries but i have error like: And message similar to: Token EXPLAIN is not valid, valid tokens ( END GET SET CALL DROP FREE HOLD LOCK OPEN WITH ALTER. I've created tables explain_* How can I start to find solution? Is it possible that my db2 doesn't support explain?
1
3582
by: w.l.fischer | last post by:
Hi, the following sequence: set current explain mode yes; set current explain snapshot yes; update ...; set current explain mode no;
0
10341
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
1
10095
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
0
8979
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own.... Now, this would greatly impact the work of software developers. The idea...
1
7502
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
6741
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert into image. Globals.ThisAddIn.Application.ActiveDocument.Select();...
0
5383
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
0
5513
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
1
4054
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
2
3656
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.