<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<!--***********************************************************
 * 
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 * 
 *   http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 * 
 ***********************************************************-->
<HTML>
<HEAD>
	<META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=windows-1252">
	<TITLE>&Ouml;verf&ouml;ring av webbadresser</TITLE>
	<META NAME="GENERATOR" CONTENT="StarOffice 6.0  (Win32)">
	<META NAME="AUTHOR" CONTENT="Tom Verbeek">
	<META NAME="CREATED" CONTENT="19991123;16020428">
	<META NAME="CHANGEDBY" CONTENT="Tom Verbeek">
	<META NAME="CHANGED" CONTENT="19991123;16135661">
</HEAD>
<BODY LANG="de-DE">
<P><BR><BR>
</P>
<P><BR><BR>
</P>
<DL>
	<DL>
		<DL>
			<DD>
			<TABLE WIDTH=529 BORDER=0 CELLPADDING=4 CELLSPACING=0>
				<COL WIDTH=33>
				<COL WIDTH=480>
				<THEAD>
					<TR>
						<TH COLSPAN=2 WIDTH=521 VALIGN=TOP>
							<P ALIGN=LEFT><FONT FACE="Arial, sans-serif"><FONT SIZE=4>&Ouml;verf&ouml;ring
							av webbadresser </FONT></FONT>
							</P>
							<P ALIGN=LEFT><BR>
							</P>
						</TH>
					</TR>
				</THEAD>
				<TBODY>
					<TR VALIGN=TOP>
						<TD WIDTH=33>
							<P ALIGN=LEFT><FONT FACE="Arial, sans-serif"><FONT SIZE=2><B>1.</B></FONT></FONT></P>
						</TD>
						<TD WIDTH=480>
							<P><FONT FACE="Arial, sans-serif"><FONT SIZE=2>Mata in &ouml;nskad
							URL i URL-inmatningsraden i OpenOffice.org eller s&ouml;k en URL
							via s&ouml;kfunktionerna i hyperl&auml;nklisten.</FONT></FONT></P>
						</TD>
					</TR>
					<TR VALIGN=TOP>
						<TD WIDTH=33>
							<P ALIGN=LEFT><FONT FACE="Arial, sans-serif"><FONT SIZE=2><B>2.</B></FONT></FONT></P>
						</TD>
						<TD WIDTH=480>
							<P><FONT SIZE=2><FONT FACE="Arial, sans-serif">Markera URL:en
							som visas i URL-inmatningsraden (till exempel
							<A HREF="http://www.sun.com/staroffice">http://www.sun.com/staroffice</A>).</FONT></FONT></P>
						</TD>
					</TR>
					<TR VALIGN=TOP>
						<TD WIDTH=33>
							<P ALIGN=LEFT><FONT FACE="Arial, sans-serif"><FONT SIZE=2><B>3.</B></FONT></FONT></P>
						</TD>
						<TD WIDTH=480>
							<P><FONT FACE="Arial, sans-serif"><FONT SIZE=2>V&auml;lj
							kommandot Redigera -&gt; Kopiera eller tryck Ctrl+C.</FONT></FONT></P>
						</TD>
					</TR>
					<TR VALIGN=TOP>
						<TD WIDTH=33>
							<P ALIGN=LEFT><FONT FACE="Arial, sans-serif"><FONT SIZE=2><B>4.</B></FONT></FONT></P>
						</TD>
						<TD WIDTH=480>
							<P><FONT FACE="Arial, sans-serif"><FONT SIZE=2>G&aring;
							tillbaka till Ditt dokument. Klistra sedan in URL:en med
							Redigera -&gt; Klistra in eller per Ctrl+V.</FONT></FONT></P>
						</TD>
					</TR>
				</TBODY>
			</TABLE>
		</DL>
	</DL>
</DL>
<P><BR><BR>
</P>
</BODY>
</HTML>
