Eine mögliche Alternative, bei der auch Text auf dem Bildschirm eingefügt werden kann:
\documentclass[margin=5mm]{standalone}
\usepackage{tikz}
\makeatletter
\pgfdeclareshape{computer}
{
\savedanchor\outernortheast{%
%
% Calculate width and height of screen (inner rectangle)
%
\pgf@xa=.5\wd\pgfnodeparttextbox%
\pgfmathsetlength\pgf@xc{\pgfkeysvalueof{/pgf/inner xsep}}%
\advance\pgf@xa by\pgf@xc%
\pgf@ya=.5\ht\pgfnodeparttextbox%
\advance\pgf@ya by.5\dp\pgfnodeparttextbox%
\pgfmathsetlength\pgf@yc{\pgfkeysvalueof{/pgf/inner ysep}}%
\advance\pgf@ya by\pgf@yc%
%
% Calculate width and height of screen (outer rectangle)
%
\pgf@x=1.17\pgf@xa%
\pgf@y=1.17\pgf@ya%
%
% Check against minimum height/width
%
\pgfmathsetlength\pgf@xb{\pgfkeysvalueof{/pgf/minimum width}}%
\pgf@xb=.5\pgf@xb%
\ifdim\pgf@x<\pgf@xb%
% yes, too small. Enlarge...
\pgf@x=\pgf@xb%
\fi%
\pgfmathsetlength\pgf@yb{\pgfkeysvalueof{/pgf/minimum height}}%
\pgf@yb=.3125\pgf@yb%
\ifdim\pgf@y<\pgf@yb%
% yes, too small. Enlarge...
\pgf@y=\pgf@yb%
\fi%
%
% Add outer border
%
\pgfmathsetlength\pgf@xa{\pgfkeysvalueof{/pgf/outer xsep}}%
\advance\pgf@x by\pgf@xa%
\pgfmathsetlength\pgf@ya{\pgfkeysvalueof{/pgf/outer ysep}}%
\advance\pgf@y by\pgf@ya%
}
\savedanchor\text{%
\pgf@x=-.5\wd\pgfnodeparttextbox%
\pgf@y=-.5\ht\pgfnodeparttextbox%
\advance\pgf@y by.5\dp\pgfnodeparttextbox%
}
%
% Anchors
%
\anchor{text}{\text}%
\anchor{center}{\pgfpointorigin}%
\anchor{mid}{%
\pgf@process{\text}%
\pgf@x=0pt%
\pgfmathsetlength\pgf@ya{.5ex}
\advance\pgf@y by\pgf@ya%
}
\anchor{base}{\pgf@process{\text}\pgf@x=0pt }
\anchor{north}{\pgf@process{\outernortheast}\pgf@x=0pt}
\anchor{south}{\pgf@process{\outernortheast}\pgf@x=0pt\pgf@y=-2.2\pgf@y}
\anchor{west}{\pgf@process{\outernortheast}\pgf@x=-\pgf@x\pgf@y=0pt}
\anchor{north west}{\pgf@process{\outernortheast}\pgf@x=-\pgf@x}
\anchor{south west}{\pgf@process{\outernortheast}\pgf@x=-\pgf@x\pgf@y=-2.2\pgf@y}
\anchor{east}{\pgf@process{\outernortheast}\pgf@y=0pt}
\anchor{north east}{\pgf@process{\outernortheast}}
\anchor{south east}{\pgf@process{\outernortheast}\pgf@y=-2.2\pgf@y}
\anchorborder{%
\pgf@xb=\pgf@x% xb/yb is target
\pgf@yb=\pgf@y%
\outernortheast%
\pgf@xa=-\pgf@x%
\pgf@ya=-2.2\pgf@y%
\advance\pgf@x by-\pgf@xa%
\advance\pgf@y by-\pgf@ya%
\pgf@xc=.5\pgf@x%
\pgf@yc=.5\pgf@y%
\advance\pgf@xa by\pgf@xc%
\advance\pgf@ya by\pgf@yc%
\edef\pgf@marshal{%
\noexpand\pgfpointborderrectangle
{\noexpand\pgfqpoint{\the\pgf@xb}{\the\pgf@yb}}
{\noexpand\pgfqpoint{\the\pgf@xc}{\the\pgf@yc}}%
}%
\pgf@process{\pgf@marshal}%
\advance\pgf@x by\pgf@xa%
\advance\pgf@y by\pgf@ya%
}
\backgroundpath{
%%% DRAW OUTLINE OF SHAPE %%%
% store lower left in xb/yb and upper right in xa/ya
\outernortheast \pgf@xa=\pgf@x \pgf@ya=\pgf@y
\pgfmathsetlength\pgf@xb{-\pgf@xa}
\pgfmathsetlength{\pgf@yb}{-2.2\pgf@ya}
% move to point xa/ya (north east)
\pgfpathmoveto{\pgfpoint{\pgf@xa}{\pgf@ya}}
% draw a line between upper right (xa,ya) and upper left (xb,ya)
\pgfpathlineto{\pgfpoint{\pgf@xb}{\pgf@ya}}
\pgfpathlineto{\pgfpoint{\pgf@xb}{-\pgf@ya}}
\pgfpathlineto{\pgfpoint{.3\pgf@xb}{-\pgf@ya}}
\pgfpathlineto{\pgfpoint{.3\pgf@xb}{.6\pgf@yb}}
\pgfpathlineto{\pgfpoint{\pgf@xb}{.6\pgf@yb}}
\pgfpathlineto{\pgfpoint{\pgf@xb}{\pgf@yb}}
\pgfpathlineto{\pgfpoint{\pgf@xa}{\pgf@yb}}
\pgfpathlineto{\pgfpoint{\pgf@xa}{.6\pgf@yb}}
\pgfpathlineto{\pgfpoint{.3\pgf@xa}{.6\pgf@yb}}
\pgfpathlineto{\pgfpoint{.3\pgf@xa}{-\pgf@ya}}
\pgfpathlineto{\pgfpoint{\pgf@xa}{-\pgf@ya}}
\pgfpathclose
}
\beforebackgroundpath{
%%% DRAW SCREEN %%%
\begin{pgfscope}
\pgfsetfillcolor{black}
\pgfpathmoveto{\pgfpoint{.85\pgf@xa}{.85\pgf@ya}}
\pgfpathlineto{\pgfpoint{.85\pgf@xb}{.85\pgf@ya}}
\pgfpathlineto{\pgfpoint{.85\pgf@xb}{-.85\pgf@ya}}
\pgfpathlineto{\pgfpoint{.85\pgf@xa}{-.85\pgf@ya}}
\pgfpathclose
\pgfusepath{fill,stroke}
\end{pgfscope}
%%% DRAW UPPER RECTANGLE OF CASE %%%
\begin{pgfscope}
\pgfsetfillcolor{gray!90}
\pgfpathmoveto{\pgfpoint{\pgf@xb+.5\pgflinewidth}{.6\pgf@yb-.5\pgflinewidth}}
\pgfpathlineto{\pgfpoint{\pgf@xb+.5\pgflinewidth}{.64\pgf@yb-.5\pgflinewidth}}
\pgfpathlineto{\pgfpoint{\pgf@xa-.5\pgflinewidth}{.64\pgf@yb-.5\pgflinewidth}}
\pgfpathlineto{\pgfpoint{\pgf@xa-.5\pgflinewidth}{.6\pgf@yb-.5\pgflinewidth}}
{\pgftransformyshift{-.5\pgflinewidth}
{\pgftransformxshift{.5\pgflinewidth}
\pgfpathmoveto{\pgfpoint{\pgf@xb}{.6\pgf@yb}}
\pgfpathlineto{\pgfpoint{\pgf@xb}{.64\pgf@yb}}
}
{\pgftransformxshift{-.5\pgflinewidth}
\pgfpathlineto{\pgfpoint{\pgf@xa}{.64\pgf@yb}}
\pgfpathlineto{\pgfpoint{\pgf@xa}{.6\pgf@yb}}
}
}
\pgfpathclose
%%% DRAW LOWER RECTANGLE OF CASE %%%
\pgfpathmoveto{\pgfpoint{\pgf@xb+.5\pgflinewidth}{.97\pgf@yb+.5\pgflinewidth}}
\pgfpathlineto{\pgfpoint{\pgf@xb+.5\pgflinewidth}{\pgf@yb+.5\pgflinewidth}}
\pgfpathlineto{\pgfpoint{\pgf@xa-.5\pgflinewidth}{\pgf@yb+.5\pgflinewidth}}
\pgfpathlineto{\pgfpoint{\pgf@xa-.5\pgflinewidth}{.97\pgf@yb+.5\pgflinewidth}}
{\pgftransformyshift{.5\pgflinewidth}
{\pgftransformxshift{.5\pgflinewidth}
\pgfpathmoveto{\pgfpoint{\pgf@xb}{.97\pgf@yb}}
\pgfpathlineto{\pgfpoint{\pgf@xb}{\pgf@yb}}
}
{\pgftransformxshift{-.5\pgflinewidth}
\pgfpathlineto{\pgfpoint{\pgf@xa}{\pgf@yb}}
\pgfpathlineto{\pgfpoint{\pgf@xa}{.97\pgf@yb}}
}
}
\pgfpathclose
%%% DRAW LEFT TRIANGLE %%%
\pgfpathmoveto{\pgfpoint{\pgf@xb+.5\pgflinewidth}{.6\pgf@yb-.5\pgflinewidth}}
\pgfpathlineto{\pgfpoint{\pgf@xb+.5\pgflinewidth}{\pgf@yb+.5\pgflinewidth}}
\pgfpathlineto{\pgfpoint{.5\pgf@xb+.5\pgflinewidth}{\pgf@yb+.5\pgflinewidth}}
{\pgftransformxshift{.5\pgflinewidth}
{\pgftransformyshift{-.5\pgflinewidth}
\pgfpathmoveto{\pgfpoint{\pgf@xb}{.6\pgf@yb}}
}
{\pgftransformyshift{.5\pgflinewidth}
\pgfpathlineto{\pgfpoint{\pgf@xb}{\pgf@yb}}
\pgfpathlineto{\pgfpoint{.5\pgf@xb}{\pgf@yb}}
}
}
\pgfpathclose
%%%% DRAW RIGHT TRIANGLE %%%
\pgfpathmoveto{\pgfpoint{\pgf@xa-.5\pgflinewidth}{.6\pgf@yb-.5\pgflinewidth}}
\pgfpathlineto{\pgfpoint{.5\pgf@xa-.5\pgflinewidth}{\pgf@yb+.5\pgflinewidth}}
\pgfpathlineto{\pgfpoint{\pgf@xa-.5\pgflinewidth}{\pgf@yb+.5\pgflinewidth}}
{\pgftransformxshift{-.5\pgflinewidth}
{\pgftransformyshift{-.5\pgflinewidth}
\pgfpathmoveto{\pgfpoint{\pgf@xa}{.6\pgf@yb}}
}
{\pgftransformyshift{.5\pgflinewidth}
\pgfpathlineto{\pgfpoint{.5\pgf@xa}{\pgf@yb}}
\pgfpathlineto{\pgfpoint{\pgf@xa}{\pgf@yb}}
}
}
\pgfpathclose
\pgfusepath{fill}
\end{pgfscope}
}
}
\makeatother
\tikzset{
shape example/.style={
text=green,
draw=red,
fill=blue!30,
draw=blue!50,
fill=yellow!30,
line width=.1cm,
minimum size=5cm, text width=3cm, align=center
size=5cm,
}
}
\begin{document}
\begin{tikzpicture}
\node[shape example, computer, name=s] at (0,0) {\Huge Text};
\foreach \anchor/\placement in
{
north west/above left, north/above, north east/above right,
west/left, center/above, east/right,
text/below left,base/below,
south west/below left, south/below, south east/below right%
}
\draw[shift=(s.\anchor),red] plot[mark=x] coordinates{(0,0)}
node[\placement] {\scriptsize\texttt{(s.\anchor)}};
\end{tikzpicture}
\end{document}
![alt text][1]
[1]: http://texwelt.de/wissen/upfiles/computer2.pnghttp://texwelt.de/wissen/upfiles/computer3.png