473,809 Members | 2,610 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

My color selector.

Just about finished with an include modual that allows a user to select
a color. Completely dynamic. all you have to do is include the script and
run the main trigger script.

One problem with the event modual is the fact that it resets events for all
TD's. not sure how to specify to cascade down through just the created
table. Any ideas?

Feel free to use this where ever you wish as long as you give me credit.
this was a few weeks of work to tweek correctly. Hopefully this makes up for
my poor menu from earlier. lol!

URL: http://www.shadowdruid.com/colors.html

Matthew Hagston
Jul 23 '05
15 2348
[snipped signatures]
Matthew Hagston wrote:
Would be appriciated if ya get it working in Safari too. I don't
have a [...]

After quite a bit of playing, I can further recommend:

1. You use style.backgroun dColor everywhere instead of .bgColor
Ok, will Make this modification this weekend. Will also add the DIV tag
inside all of the TD's in order to fix the mouse-over/mouse-click problems.

2. Set all backgrounds as rgb(r,g,b) values
I thought that I had tried this but it wouldn't work in Firefox but will
give it another try. Would be nice to get this to work as it would take out
some stupid hex-converting code.

3. You do not need to set or read the id of any table cells to get
their colour, just refer directly to style.backgroun dColor. You only
need the id of the cells that you want to write to, everything else
just grabs the backgroundColor . If you set the background using
rgb(...) IE will return rgb(...), Firefox will return rgb(...) whether
you use rgb(...) or #rrggbb.
Good suggestion. Just habbit i guess to set the ID, but really isn't
nessisary as you point out. Will remove.

4. Modify functions as follows:

colorSel = document.getEle mentById('color sel');

function color_over(e) {
colorSel.value = (ie)?
window.event.to Element.style.b ackgroundColor :
e.target.style. backgroundColor ;
}

function color_out(e) {
colorSel.value = "";
}

Do similar to all other places where you read the id to get the
background colour.

All tested in IE and Firefox. I can supply full working code if you
like, but I'll need a couple of hours to test in Safari first (and
re-apply the DIV fix if still needed).

Cheers, Fred.


Going to keep in the mouse-over color-display. Due to the fact that i
want it to display the actual color as you mouse over, not just the #000000
value. Just not sure how to display this. Perhaps i will make 3 cells on the
top row, 1 for the #input & go button (manual input which i need to add).
2nd TD to display the mouse over, 3rd TD to display the currently selected
color.

Thanks for the help with this and the suggestions. :-)

-Matthew Hagston
Jul 23 '05 #11
Matthew Hagston wrote:
[...]
2. Set all backgrounds as rgb(r,g,b) values
I thought that I had tried this but it wouldn't work in Firefox but will
give it another try. Would be nice to get this to work as it would take out
some stupid hex-converting code.


Good, but when you read the backgroundColou r in Safari, it will be in
#rrggbb regardless of how you set it(!!!). In the changeColorSele ct()
function you need an if statement to see how the colour has come back:

if (clr.substr(0,3 ) == 'rgb') {
var b = clr.substr(4);
b = b.substr(0,b.le ngth-1);
var x = b.split(',')
cn1 = x[0];
cn2 = x[1];
cn3 = x[2];

// Otherwise, must be #rrggbb so convert from hex
} else {
var b = clr.substr(1);
cn1 = parseInt(b.subs tr(0, 2), 16);
cn2 = parseInt(b.subs tr(2, 2), 16);
cn3 = parseInt(b.subs tr(4, 2), 16);
}

But elsewhere you can remove the hex conversion unless you want a
readout in hex, so that:

ca = parseInt(c1).to String(16);
cb = parseInt(c2).to String(16);
cc = parseInt(c3).to String(16);
if (ca.length <2) { ca = "0" + ca; }
if (cb.length <2) { cb = "0" + cb; }
if (cc.length <2) { cc = "0" + cc; }
ct = ca + cb + cc;

is replaced by:

ct = 'rgb('
+ parseInt(c1,10) + ','
+ parseInt(c2,10) + ','
+ parseInt(c3,10) + ')';

You could probably use a string method to truncate c1, c2, c3 rather
than using parseInt and save a few more cycles.

Another that may help is to change:

c1 = c1 - o1; c2 = c2 - o2; c3 = c3 - o3;

to:

c1 -= o1; c2 -= o2; c3 -= o3;

in all the places it appears.

[...]
just grabs the backgroundColor . If you set the background using
rgb(...) IE will return rgb(...), Firefox will return rgb(...) whether
you use rgb(...) or #rrggbb.


And Safari always gives #rrggbb (arrgghh).

[...]
Going to keep in the mouse-over color-display. Due to the fact that i
want it to display the actual color as you mouse over, not just the #000000
value. Just not sure how to display this. Perhaps i will make 3 cells on the
top row, 1 for the #input & go button (manual input which i need to add).
2nd TD to display the mouse over, 3rd TD to display the currently selected
color.

[...]

Good idea. I have played with lots of optimisations but to keep IE,
Firefox and Safari all behaving is tough. Even adding the events
whilst building the tables was no faster than your current method of
building the tables, then adding the events (though to my mind it
should be). Putting the divs inside the tds slows things a bit.

I have been testing on some slow platforms (PIII 500 MHz & G3
400MHz)where it takes 4 seconds to run ChangeColorSele ct each time you
click, so I notice performance...

Cheers, Fred.

Jul 23 '05 #12
"Fred Oz" <Oz****@iinet.n et.auau> wrote in message
news:2S******** *********@news. optus.net.au...
Matthew Hagston wrote:
[...]
2. Set all backgrounds as rgb(r,g,b) values


I thought that I had tried this but it wouldn't work in Firefox but will
give it another try. Would be nice to get this to work as it would take out some stupid hex-converting code.


Good, but when you read the backgroundColou r in Safari, it will be in
#rrggbb regardless of how you set it(!!!). In the changeColorSele ct()
function you need an if statement to see how the colour has come back:

if (clr.substr(0,3 ) == 'rgb') {
var b = clr.substr(4);
b = b.substr(0,b.le ngth-1);
var x = b.split(',')
cn1 = x[0];
cn2 = x[1];
cn3 = x[2];

// Otherwise, must be #rrggbb so convert from hex
} else {
var b = clr.substr(1);
cn1 = parseInt(b.subs tr(0, 2), 16);
cn2 = parseInt(b.subs tr(2, 2), 16);
cn3 = parseInt(b.subs tr(4, 2), 16);
}

But elsewhere you can remove the hex conversion unless you want a
readout in hex, so that:

ca = parseInt(c1).to String(16);
cb = parseInt(c2).to String(16);
cc = parseInt(c3).to String(16);
if (ca.length <2) { ca = "0" + ca; }
if (cb.length <2) { cb = "0" + cb; }
if (cc.length <2) { cc = "0" + cc; }
ct = ca + cb + cc;

is replaced by:

ct = 'rgb('
+ parseInt(c1,10) + ','
+ parseInt(c2,10) + ','
+ parseInt(c3,10) + ')';

You could probably use a string method to truncate c1, c2, c3 rather
than using parseInt and save a few more cycles.

Another that may help is to change:

c1 = c1 - o1; c2 = c2 - o2; c3 = c3 - o3;

to:

c1 -= o1; c2 -= o2; c3 -= o3;

in all the places it appears.

[...] just grabs the backgroundColor . If you set the background using
rgb(...) IE will return rgb(...), Firefox will return rgb(...) whether
you use rgb(...) or #rrggbb.
And Safari always gives #rrggbb (arrgghh).

[...]

Going to keep in the mouse-over color-display. Due to the fact that

i want it to display the actual color as you mouse over, not just the #000000 value. Just not sure how to display this. Perhaps i will make 3 cells on the top row, 1 for the #input & go button (manual input which i need to add). 2nd TD to display the mouse over, 3rd TD to display the currently selected color.

[...]

Good idea. I have played with lots of optimisations but to keep IE,
Firefox and Safari all behaving is tough. Even adding the events
whilst building the tables was no faster than your current method of
building the tables, then adding the events (though to my mind it
should be). Putting the divs inside the tds slows things a bit.

I have been testing on some slow platforms (PIII 500 MHz & G3
400MHz)where it takes 4 seconds to run ChangeColorSele ct each time you
click, so I notice performance...

Cheers, Fred.


Just thinking, could nearly get rid of the table if using divs, though
it requires more work I will play with an alternate version to do this.
Should just be setting the Div to relative and then BR for each new line.
could end up looking slopy but 'should' be workable. Oh, and even on my
machine the change-color is a bit slow and it's 2.1ghz. so yeah, there's
still an issue there. Started working on this because i was making an
in-page html editor type thing, basicly just an over-rated rich text box.
All the color selectors i did fine pretty much sucked. Getting close to the
weekend so I can make all these changes. Need to get my shadowdruid site
back online. bleh! Stupid webhost dumped all my data. *cries*
--
Matthew Hagston
Hungates Creative Toys and Hobbies
ma************@ hungates.com ........ http://www.hungates.com
Jul 23 '05 #13
Matthew Hagston wrote:
[...]
Just thinking, could nearly get rid of the table if using divs, though

[...]

You must be psychic - I thought exactly the same thing. Here's
something to get you started - all the colour box parameters are
dynamic so you can play with the number of columns and rows. I just
use a crappy algorithm to get some different colours, of course you
will want to use yours.

The position of each div is calculated, just put the enclosing div
wherever you want on the page, the rest will be inside it.

I built it to test if using DOM create methods was faster than
innerHTML, here's my results, yours may differ:

Using Firefox DOM create as a base of 10, innerHTML is about 3 (i.e.
renders in 1/3 the time) - it's amazingly fast. IE is about 12
regardless of which method is used, Safari is about 10 with DOM and 30
with innerHTML (really slow with innerHTML).

I'd stick with DOM for best all round performance.

I meant to also test creating a table as per your original, but didn't
get around to it.

Fred.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><ti tle>Div Boxes</title>
<script type="text/javascript">
function buildBox(p,l,c, w,wu,h,hu) {
for (var i=0; i<l; i++) {
var r = Math.floor(255* i/l); // red component of colour
var x = i*h; // position from top

// Do cells
for (var j=0; j<c; j++) {
var y = j*w; // position from left
var g = Math.floor(255* j/c); // green bit of colour
var b = Math.floor(255-(r+g)/2); // red bit of colour
oDiv = document.create Element("DIV");
oDiv.style.widt h = w + wu;
oDiv.style.heig ht = h + hu;
oDiv.style.posi tion = "absolute";
oDiv.style.top = x + hu;
oDiv.style.left = y + hu;
oDiv.style.back groundColor = "rgb("+r+","+g+ ","+b+")";
oDiv.style.over flow = "hidden";
oDiv.id = i+'-'+j;
oDiv.onmouseove r = wColour;
oDiv.onmouseout = wOut;
document.getEle mentById(p).app endChild(oDiv);
} } }
function buildBox2(p,l,c ,w,wu,h,hu) {
var hStr = '';
for (var i=0; i<l; i++) {
var r = Math.floor(255* i/l); // red component of colour
var x = i*h; // position from top
// Do cells
for (var j=0; j<c; j++) {
var y = j*w; // position from left
var g = Math.floor(255* j/c); // green bit of colour
var b = Math.floor(255-(r+g)/2); // red bit of colour
var ih = ['<div style="',
'width: ' + w + wu + '; ',
'height: ' + h + hu + '; ',
'position: absolute; ',
'top: ' + x + hu+'; ',
'left: ' + y + hu + '; ',
'background-color: rgb('+r+','+g+' ,'+b+'); ',
'overflow: hidden;',
'" ',
// end of styles
' id="' + i + '-' + j + '" ',
'onmouseover="w Colour2(this)" ',
'onmouseout="wO ut2()" ',
'></div>',
]
hStr += ih.join('');
}
}
// alert(hStr);
document.getEle mentById(p).inn erHTML = hStr;
}

ie = document.all;

function wColour(e) {
targ = (ie)?window.eve nt.toElement:e. target;
document.getEle mentById('reado ut').innerHTML =
targ.style.back groundColor;
}

function wOut() {
document.getEle mentById('reado ut').innerHTML = "&nbsp;";
}

function wColour2(d) {
document.getEle mentById('reado ut').innerHTML = d.style.backgro undColor;
}

function wOut2() {
document.getEle mentById('reado ut').innerHTML = "&nbsp;";
}

function moveBox(p,l,c,w ,wu,h,hu) {
alert(document. getElementById( p).style.top);
document.getEle mentById(p).sty le.top = l*h + hu;
}
</script>
</head>
<body >
<form action="">
<input type="text" name="nR" cols="5" value="33">Rows </input><br>
<input type="text" name="nC" cols="5" value="33">Colu mns</input><br>
<input type="text" name="nW" cols="5" value="4">Width (px)</input><br>
<input type="text" name="nH" cols="5"
value="4">Heigh t (px)</input><br>
<input type="button" value="Click to build" onclick="
buildBox('maste r',this.form.nR .value,this.for m.nC.value,
this.form.nW.va lue,'px',this.f orm.nH.value,'p x');
">
<input type="button" value="Click to move" onclick="
moveBox('master ',this.form.nR. value,this.form .nC.value,
this.form.nW.va lue,'px',this.f orm.nH.value,'p x');
"><br>
<input type="button" value="Click to build2" onclick="

buildBox2('mast er2',this.form. nR.value,this.f orm.nC.value,
this.form.nW.va lue,'px',this.f orm.nH.value,'p x');
">

<input type="button" value="Click to move2" onclick="
moveBox('master 2',this.form.nR .value,this.for m.nC.value,
this.form.nW.va lue,'px',this.f orm.nH.value,'p x');
"><br>
</form>
<div style="position : relative; background-color: #ffffdd;"><span
id="readout">&n bsp;</span></div><br>
<div id="master" style="position : relative; background-color: #0000ff;
line-height: 0pt;">
</div><br>
<div id="master2" style="position : relative; background-color: #ff0000;
line-height: 0pt;">
</div>
</body>
</html>
Jul 23 '05 #14
Fred Oz wrote:
[...]
oDiv.style.over flow = "hidden";


This is critical in IE, otherwise the divs will be lineheight
regardless of the height you specify.

Oh yeah, tested in Firefox, IE 6 an Safari so should be pretty robust
(sorry no Opera but you seem to know the issues there...)

Fred.
Jul 23 '05 #15
"Fred Oz" <oz****@iinet.n et.auau> wrote in message
news:41******** **************@ per-qv1-newsreader-01.iinet.net.au ...
Matthew Hagston wrote:
[...]
Just thinking, could nearly get rid of the table if using divs,
though [...]

You must be psychic - I thought exactly the same thing. Here's
something to get you started - all the colour box parameters are
dynamic so you can play with the number of columns and rows. I just
use a crappy algorithm to get some different colours, of course you
will want to use yours.

The position of each div is calculated, just put the enclosing div
wherever you want on the page, the rest will be inside it.

I built it to test if using DOM create methods was faster than
innerHTML, here's my results, yours may differ:

Using Firefox DOM create as a base of 10, innerHTML is about 3 (i.e.
renders in 1/3 the time) - it's amazingly fast. IE is about 12
regardless of which method is used, Safari is about 10 with DOM and 30
with innerHTML (really slow with innerHTML).

I'd stick with DOM for best all round performance.

I meant to also test creating a table as per your original, but didn't
get around to it.

Fred.
Aye, will stick with DOM, far as i know innerHTML is suppose to be phased
out anyways which is why I switched from using it. Firefox generates
everything fast, ;-) it even handles the events a lot faster than IE does.
The way i was thinking of generating the DIV's is pretty simple, Should be
able to just utilize a master div (to go where the <TABLE> tag is generated.
it's position is set to relative, or absolute. shouldn't matter. Then
generate a series of divs with position: relative inside those. top:0; left:
0; top: 0; left: 4, top: 0; left: 8;....ect. just keeps track of a masterX,
and masterY, and adds' 4 to that. (since it's the current width & height).
Would be farily easy to modify to make it more dynamic and change the # of
colors. Would only be so many different 'styles' or # of colors you would be
able to change too due to the math. I need to come up with the math to
generate a table of 'web-safe' colors also. Give the person using the code a
few more options. Also thought would be kind of cool to have an 'advanced'
option with 3 slide bars, Red Blue & Green. But those two things are after
the initial bugs are worked out.
--
Matthew Hagston
Hungates Creative Toys and Hobbies
ma************@ hungates.com ........ http://www.hungates.com
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><ti tle>Div Boxes</title>
<script type="text/javascript">
function buildBox(p,l,c, w,wu,h,hu) {
for (var i=0; i<l; i++) {
var r = Math.floor(255* i/l); // red component of colour
var x = i*h; // position from top

// Do cells
for (var j=0; j<c; j++) {
var y = j*w; // position from left
var g = Math.floor(255* j/c); // green bit of colour
var b = Math.floor(255-(r+g)/2); // red bit of colour
oDiv = document.create Element("DIV");
oDiv.style.widt h = w + wu;
oDiv.style.heig ht = h + hu;
oDiv.style.posi tion = "absolute";
oDiv.style.top = x + hu;
oDiv.style.left = y + hu;
oDiv.style.back groundColor = "rgb("+r+","+g+ ","+b+")";
oDiv.style.over flow = "hidden";
oDiv.id = i+'-'+j;
oDiv.onmouseove r = wColour;
oDiv.onmouseout = wOut;
document.getEle mentById(p).app endChild(oDiv);
} } }
function buildBox2(p,l,c ,w,wu,h,hu) {
var hStr = '';
for (var i=0; i<l; i++) {
var r = Math.floor(255* i/l); // red component of colour
var x = i*h; // position from top
// Do cells
for (var j=0; j<c; j++) {
var y = j*w; // position from left
var g = Math.floor(255* j/c); // green bit of colour
var b = Math.floor(255-(r+g)/2); // red bit of colour
var ih = ['<div style="',
'width: ' + w + wu + '; ',
'height: ' + h + hu + '; ',
'position: absolute; ',
'top: ' + x + hu+'; ',
'left: ' + y + hu + '; ',
'background-color: rgb('+r+','+g+' ,'+b+'); ',
'overflow: hidden;',
'" ',
// end of styles
' id="' + i + '-' + j + '" ',
'onmouseover="w Colour2(this)" ',
'onmouseout="wO ut2()" ',
'></div>',
]
hStr += ih.join('');
}
}
// alert(hStr);
document.getEle mentById(p).inn erHTML = hStr;
}

ie = document.all;

function wColour(e) {
targ = (ie)?window.eve nt.toElement:e. target;
document.getEle mentById('reado ut').innerHTML =
targ.style.back groundColor;
}

function wOut() {
document.getEle mentById('reado ut').innerHTML = "&nbsp;";
}

function wColour2(d) {
document.getEle mentById('reado ut').innerHTML = d.style.backgro undColor;
}

function wOut2() {
document.getEle mentById('reado ut').innerHTML = "&nbsp;";
}

function moveBox(p,l,c,w ,wu,h,hu) {
alert(document. getElementById( p).style.top);
document.getEle mentById(p).sty le.top = l*h + hu;
}
</script>
</head>
<body >
<form action="">
<input type="text" name="nR" cols="5" value="33">Rows </input><br>
<input type="text" name="nC" cols="5" value="33">Colu mns</input><br>
<input type="text" name="nW" cols="5" value="4">Width (px)</input><br>
<input type="text" name="nH" cols="5"
value="4">Heigh t (px)</input><br>
<input type="button" value="Click to build" onclick="
buildBox('maste r',this.form.nR .value,this.for m.nC.value,
this.form.nW.va lue,'px',this.f orm.nH.value,'p x');
">
<input type="button" value="Click to move" onclick="
moveBox('master ',this.form.nR. value,this.form .nC.value,
this.form.nW.va lue,'px',this.f orm.nH.value,'p x');
"><br>
<input type="button" value="Click to build2" onclick="

buildBox2('mast er2',this.form. nR.value,this.f orm.nC.value,
this.form.nW.va lue,'px',this.f orm.nH.value,'p x');
">

<input type="button" value="Click to move2" onclick="
moveBox('master 2',this.form.nR .value,this.for m.nC.value,
this.form.nW.va lue,'px',this.f orm.nH.value,'p x');
"><br>
</form>
<div style="position : relative; background-color: #ffffdd;"><span
id="readout">&n bsp;</span></div><br>
<div id="master" style="position : relative; background-color: #0000ff;
line-height: 0pt;">
</div><br>
<div id="master2" style="position : relative; background-color: #ff0000;
line-height: 0pt;">
</div>
</body>
</html>

Jul 23 '05 #16

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

Similar topics

1
2118
by: John Rowe | last post by:
I run the web site for a University department. A few of my authors will carefully write: <h3>Title</h3> <p>Some text here.</p> <p>Second paragraph.</p> Most of us can't be bothered(!): <h3>Title</h3>
0
3650
by: Patrick | last post by:
I'm working on a contact management application, and need a hand with one aspect... Here's what I want to create: ------------------------------------ A form split into two parts. There is a datagrid on the left side that lists names and perhaps a couple of other key fields. The user can click on a record in the datagrid, which should automatically pull up details on that record in the various text boxes and other controls on the right...
8
2341
by: sajid | last post by:
The CSS 2.1 Specification describes how to sort a list of selectors in order of specificity, but it doesn't provide a method to calculate the specificity of a single selector in isolation. I've devised a method to do this, which I describe in the following article: http://calculating-css-selector-specificity.blogspot.com/ Comments and/or criticisms welcome.
3
1939
by: JakDaniel | last post by:
is it possible, create a selector as alias of another selector... (maybe) in another stylesheet file? ex: html page .... <link rel="stylesheet" type="text/css" href="style1.css" /> <link rel="stylesheet" type="text/css" href="style2.css" /> ....
3
2010
by: RobG | last post by:
The link below is to a CSS selector test suite that tests 6 popular libraries: <URL: http://ajaxian.com/archives/slickspeed-css-selector-testsuite It might be of interest to some. -- Rob
0
9721
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look ! Part I. Meaning of...
0
9603
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
0
10640
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
10387
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
10120
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
0
9200
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...
0
6881
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
5550
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
5689
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?

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.