Laden...

Forenbeiträge von ikaros Ingesamt 1.739 Beiträge

10.05.2008 - 21:11 Uhr

Hallo PeterJHaas,

das ist einfach eine super Antwort. Freut mich wenn ich dich dazu angeregt habe hier teilzunehmen. 😉

Bin gerade darüber gestolpert und möchte das nicht so stehen lassen. Hättest du mal nicht nur einen Blick auf, sondern mehr als einen Blick in die Spec getan.

Hab ich sogar mal.

Doppelt falsch: Zum einen sind JPEGs sind keine TIFFs.

Das wollte ich zum Ausdruck bringen.

Zum anderen können TIFFs nach JPEG Standard komprimierte Inhalte haben (siehe Kapitel 22 in der TIFF 6.0 Spec von 1992).

Das betrifft lediglich die verlustlose Kompression(92). Von einer kompletten Jpeg-Einbindung ist da keine Rede.

Tiffs jedenfalls unterstützen keine JPEG-Komprimiering, lediglich LZW.
Das ist völlig falsch, TIFF unterstützt eine ganze Reihe von Kompressionsverfahren, LZW und Komprimierungen nach dem JPEG Standard sind nur zwei davon.

Genaugenommen unterstützt Tiff inzw. beliebigen Content. LZW only war halt noch früher.

Tiffs komprimieren zwar(bei Bedarf), aber wenn dann Verlustlos.
Seit Version 6.0 ist dem nicht mehr so. TIFF unterstützt sowohl verlustlose (Tag 512 = 14) als auch verlustbehafte (Tag 512 = 1) Teile des JPEG Standard. Der komplette Standard wird allerdings nicht unterstützt (z.B. keine arithmetische Komprimierung).

Die verlustbehaftete Kompression in einem Tiff empfinde ich als suboptimal. In meinen Augen ist damit dieses Format absurd geworden.

BTW: Dateien mit der Endung jpg oder jpeg (landsläufig als JPEG-Dateien bezeichnet), also JFIF-Dateien, unterstützen auch nur einen Teil des JPEG Standards, und zwar den verlustbehafteten.

Dem würde ich jetzt aus dem Stehgreif widersprechen.

Snip: da es eh nur völligen(von mir geposteten) Quatsch betrifft.

Um weiteren Anfragen vorzubeugen: Ja, es sind auch Videos im Voc-Format möglich. Aber jetzt schweifen wir ab.

Das würde mich interessieren. Links?

mfg
und vielen Dank für dein Posting

ikaros

01.05.2008 - 00:37 Uhr

Hallo Herbivore,
Ein Blick auf die Spec von 92 wird dir mitteilen, das mein Zynismus kein solcher ist.

Nüscht für ungut.

01.05.2008 - 00:30 Uhr

also Olivenöl oder Oliveoil, du musst dich entscheiden...

01.05.2008 - 00:25 Uhr

Ich freue mich das mein ebenfalls etwas wirres Posting(ich war halt verwirrt) etwas weiterhelfen konnte.
Nun:
Es gibt Serviceseitig auch einen SessionTimeout(Einstellbar).
Normalerweise, ist der Server zuständig für solche Sachen wie Userstate. Es gibt natürlich auch andere Szenarien, doch dazu fehlen mir Details für mehr Hilfe, ich kenne nicht mal den UseCase.
Technisch gehts auch: welche Informationen sollen wo wie gehalten werden(es geht nicht um das Geheimnis der Infos, sondern nur um Transport).

01.05.2008 - 00:14 Uhr

dem kann nicht widersprechen...

26.04.2008 - 01:50 Uhr

Möchtest du ein eigenständiges WPF-Fenster starten oder in einem WinFormsfenster hosten?

26.04.2008 - 01:47 Uhr

Falls du keins findest, nimm einen vertikalen Processbar + Bildchen(zb. aus VS). Das Control entsteht quasi im Handumdrehen.

26.04.2008 - 01:41 Uhr

Klasse Video ist woher?

26.04.2008 - 01:36 Uhr

Ich habe kein Problem mit Tiffs die im JPeg-Verfahren komprimiert sind, Entweder sind es JPEGS oder TIFFs.
Tiffs jedenfalls unterstützen keine JPEG-Komprimiering, lediglich LZW. Tiffs komprimieren zwar(bei Bedarf), aber wenn dann Verlustlos.
Nächste Frage: Warum unterstützt BMP(ausser RLE) keine Komprimierung von Videos im Ogg-Vorbis-Format.

Vielleicht kannst du mal ein paar Tiffs reinstellen die JPeg komprimiert sind, oder Midi-Dateien im Voc-Format(mit Midi-Infos natürlich).

26.04.2008 - 01:25 Uhr

Wenn es völlig legal sein soll, warum gehst du mit deinem Soundkartenausgang nicht auf den Line-Input und schneidest dort mit?

26.04.2008 - 01:22 Uhr

Splitten, indizieren, Zoomstufen erstellen mit entsprechender Indizierung und Splittung. Weiterhin Positionen bestimmen und einfach drüber zu legen)Quasi ein Layer von Vektordaten über ein Layer von Pixelbrei)
Wie bei Virtual Earth. MS war auch so nett das Konzept zu Beschreiben, ziemlich simpel.
Ich denke die Erwähnung von Virtal Earth sollte reichen(Google, MSDN), falls nicht schreib einfach nochmal rein(dann geb ich mir Mühe so ein Verfahren zu erklären oder mit Links zu helfen).

Ich wurde erst vor kurzem auf die Webseiten geschubst, die solche Verfahren erklären aber in ihren Datenformaten geizen. Alte Hüte mit Exklusivmaterial, aber MS beschreibt zumindest das Verfahren ganz gut, GoogleEarth geizt etwas in der API - beschreibung hat dafür die besseren Karten... Die Darstellungsweise selbst muss älter als ich sein...

Vielleicht ist dein Lageplan auch in Vektordaten, dann kann es vielleicht noch simpler werden.

26.04.2008 - 01:00 Uhr

Wenn John recht hat und die Spalte verrutscht ist, hast du eín Problem in der Typisierung bzw. das ManagementStudio.
Das Managementstudio kenne ich nicht, aber c#, VS, viele andere DB-Tools.
Kannst du mehr Details posten?

26.04.2008 - 00:54 Uhr

Wenn ich mich richtig erinnere sollte die vom Listener erzeugte Gegenstelle nicht gleich wieder schliessen.

26.04.2008 - 00:47 Uhr

Winforms?
Kekse nein. Cookies benötigen dann eine spezielle Behandlung(geht wenn man mag)
habe ich auch eine HttpRequest an Server geschickt?
Was sonst? nur in Seife gepackt(SOAP).
Dann schickt server mir wieder ein HttpResponse?
Ja, wenn er noch lebt.

Du vergisst das du eine Abstraktion höher arbeitest. Deine App ist kein Browser, sie arbeitet nur mit remote Calls, die zufällig auf dem Http-Protokoll basieren und in XML gepackt wurden dessen Sonderfall Seife heisst.

Das jetzt mal so dahingerotzt. Ich kann als Antwort kein Buch schreiben.
Was möchtest du wissen?
-Theorie der verwendeten Protokolle?
-Verwendung von XML-Schemata?
-Verwendung von HTML?
-Verschwendung von Sockets?
oder wie ich Annehme den Einstieg zur Benutzung von Webservices auf Basis von SOAP(Seife)?

Deine Art der Fragestellung ist schon etwas verwirrend.
Selbstverständlich hast du einen HttpRequest geschickt, und darfst bei lebenden Server auch die Antwort(HttpResponse) erwarten. Kekse sind keine Seife und werden normalerweise ignoriert, es sei denn man betreibt Aufwand für dieses Gebäck.
Was interressiert den Client SID? Und wenn, warum sollte der Server dann geizig mit der Info sein?

Ein Soapmonitor dient nur der Analyse und ist teuer(ob Einkauf oder eigene Zeit).

Wenn du einen Browser auf einen Webservice mit Seife ansetzt siehst du die Servicebeschreibung in Form von WSDL(wie benutze ich diese Seife).
Wie ich schon irgenwo erwähnte: XML ist die beste Erfindung seit der Kreide.

Klingt vielleicht alles irgendie chaotisch, ist aber schon nicht unchaotischer als die Frage
😉

26.04.2008 - 00:14 Uhr

Kerberos ist ein gutes Zertifikatssystem.
Asymetrisch, dann symetrisch. und sehr verbreitet.

Das übliche SSL ist auch nett und läuft ähnlich, wie auch Treiberzertifizierung.
Problem ist wie immer die Herkunft vertrauenswürdiger Information...
Schlüsselproblem halt.
Synchron, Asynchron, Bücherfüllend.
Praktisch läuft das derzeit Asynchron im Vertrauensbeweis, nach Herstellung des Vertrauens Synchron.
Warum Synchron?
Schneller.
Warum Asynchron?
Sicherer.
Warum kombiniert?
Asynchron ist zu teuer(Last). Asynchron bedeuted nicht unbedingt die Sicherheit den richtigen Kommunikationspartner erreicht zu haben.
Es gibt auch dort genügend Angriffsszenarien.

Fazit: gegenwärtige Praxis.
Asynchron:
Es wird ein sicherer Kanal zum Austausch von Infos hergestellt.
(wer bin ich wer bist du)
Der Client prüft ob der Service das ist wofür er sich ausgibt(Drittstelle).
Bei Bestätigung wird der Schlüssel für die performantere Fstenübertragung transportiert.
Synchron:
Unbeschwerte Gelaber ohne Mithörmöglichkeit, bei entsprechend starken Algorithmus oder langen Schlüssel(OTP).

Entscheidend ist das Handshake(mit asynchroner Verschlässelung) mit vertrauenswürdiger Kontrollinstanz.

Dafür ist die dritte Instanz entscheidend.
Vertraue z.B. Verisign bei Zertifkatsvergabe oder einem anderen. Ist die
Verschlüsselungtiefe noch genug für die Dauer des Lebenszyklus deiner App? Ist das alles zu teuer?

Ich beschrieb nur das Höchstmass an Sicherheit über ein unsicheres Netz in einer unsicheren Welt...

Problem ist immer die Authentifikation der Gegenstelle als richtigen Partner und dann das Ausschalten der Lauscher(Schlüsseltransport).
Möglicherweise sollte man auch überlegen ob die übermittelten Daten einer Sicherheit bedürfen, wenn ja welcher.

25.04.2008 - 23:39 Uhr

Nimm den Rawsocket, am besten du leitest davon ab.
Das Ding ist ok aber nicht nativ, kommt drauf an was nativ für dich bedeuted.
Arbeit ist es jedenfalls genug.

29.02.2008 - 21:50 Uhr

Ok,
vermutlich hast du keine Webfreigabe mehr für C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\ASP.NETClientFiles\Themes?
Begrüssenswert diese Fehlerbehebung...
Styles sollten wohl da abgelegt werden, wo man sie braucht, Rechtefreigabe sollte auch so funktionieren.
Da dein "neues Studio": 2.0.5xxx ist heisst das wohl das die alte Beta jetzt abgelaufen ist...?

Nimm doch fertige Lösungen(Express)...

Scherz beiseite, Details bitte.

29.02.2008 - 21:39 Uhr

Bei Mht-files hoffe ich auf 'ne Sperre.
(kann man auch zippen und mit 'nem Warnhinweis verbinden)

29.02.2008 - 21:36 Uhr

manche Leute haben Probleme...

Vielleicht müssen Sie Elefanten jagen... Ist gerade aktuell in Südafrika.
Ansonsten geb ich dir recht(sowieso alles so veraltet, das das ein einfaches Lächeln Mühe macht).
😉 -> Wer's braucht, ist doch ok.

29.02.2008 - 20:31 Uhr

Gute Idee, nur ist so eine GUID ein tolles Ding zur Schlüsselgenerierung von Datensätzen und Komponenten aber leider für OTP völlig ungeeignet. Das liegt ganz einfach am Generator für GUIDS...

29.02.2008 - 20:20 Uhr

Hmm.
1.
In C#(oder anderen neueren OO-Sprachen) gibt es keine Mehrfachvererbung von Implementationen(aus Gründen, die aber nicht wirklich interessieren).
Da die C++ Variante aber dieses verwendet ist nunmal ein Redesign notwendig.
2.
Leider sind die Eigenschaften und das Sollverhalten der genannten Fahrzeuge völlig unbekannt(vielleicht nicht der Fahrzeuge selbst aber zumindest die benötigte Informationsmenge und das Sollverhalten in deiner Applikation.
Herbivore schlägt vor: 3 gleichberechtigte Ableitungen, trotz Redundanz
Svenson sagt: eine Klasse, die eine Menge anderer Klassen assoziiert, bzw. allein alle Möglichkeiten bereitstellt reicht.
Ich sage: ein Interface Fahrzeug, eine Klasse Fahrzeug, ein Interface für Antrieb + Klassen, eins für Medium + Klassen usw. + eine Klasse für Eigenschaften(die entsprechende Kombinationen erlaubt oder ausschliesst) als Subinterface für IFahrzeug und konkret für Fahrzeug. Achja: Status nicht vergessen.

Die Spannweite reicht also von minimal bis AllInOne Legosatz, also kann von Unter- bis Überdimensioniert reichen.

3.
Fazit: Man kann keine Designvorschläge geben ohne konkrete Anforderungen.
😉

29.02.2008 - 19:43 Uhr

GDI+ ist schon ok. GDI und DirektDraw(WPF) können unter Umständen(Graka-abhängig) zwar schneller malen, das ist aber nicht unbedingt wesentlich bei dieser Form der Darstellung.
Ich halte es für wichtig das möglichst wenig Rechenzeit für das bisschen Visualisierung verbraten wird. Die meisten frei schwebenden/erhältlichen Komponenten malen einfach die Kurve(n) komplett neu und das frisst einfach zuviel Rechenzeit(egal ob GDI, GDI+ oder DD). Ein Grund wäre einfach die Datenumwandlung in Zeichenoperationen(das jedesmal neu für eigentlich bereits erledigte Daten).

Der simple Trick ist einfach die Zeichnung zu puffern und nur neue Daten periodisch dazu zu geben.
Der einfachste und performanteste Fall wäre eine Bitmap als Puffer, muss aber nicht der angemessenste Fall sein. Für einen angessenen Lösungsvorschlag fehlt es an detallierteren Informationen zur Darstellung(fixer Bereich, scrollbar, zoom, variable Achsenbereiche).

29.02.2008 - 19:15 Uhr

Ein 8 Pixel-Font ist halt klein und grob, vermutlich ist ein Antialiasing eingeschaltet.

26.02.2008 - 23:40 Uhr

Zusammenfassend:
-Es gibt also die Möglichkeiten des Auskommentierens von Sonderzeichen in einer Query.
(Ist suboptimal?)

  • es gibt die Übergabe als Parameter(Auflösung macht die ProviderSW)
    (besser?)

Ausser acht gelassen wurden bisher die Möglichkeiten der DB selbst also SP(SP= Stored Procedures).
ME macht der 2. Punkt wenig Sinn, da zu Providerspezifisch. Da kann man auch direkt ans Eingemachte gehen...(die Unterschiede in der Handhabung sind marginal).
Sofern die DB solches unterstützt(keine Frage bei SQL-Server und Konsorten).

26.02.2008 - 22:47 Uhr

Schliesse mich P.B. an. Clientseitig oder Serverseitig?
.Net impliziert Serverseitig. Serverseitig wäre ein einfacher Http-POST an einen anderen Server wohl eher Spezialfall...
Problem mit .Net Steuerelementen, HTML oder Java(ECMA)script clientseitig?

26.02.2008 - 22:37 Uhr

Also Steuer abschaffen?
Ich finde die Argumentation im Artikel eher abstossend.

Edit: das Steuermodell selbst ist überholt und unpraktisch, hat aber im Artikel so nicht die Reflektion erhalten.

26.02.2008 - 22:27 Uhr

Nur arbeitest du dann nicht mehr mit einem Array sondern mit einer indizierten Liste(falls das eine Rolle spielen sollte).

26.02.2008 - 22:10 Uhr

Stichwort: Splash?

16.02.2008 - 01:12 Uhr
  1. Du erstellst kein Metafile sondern nur Pixelgrafik, gekapselt in ein Metafile(es sei denn du hast wesentlichen Code ausgelassen.
  2. mm sind daher Pixelabstände
  3. Welches Metafile? 😉
    a) wird keins erstellt, bzw. erstellt, gespeichert und vernichtet(Ctor der Form)
    b) in Pixeln darin rumgemacht(buttonclick). Geladen, gespielt verworfen.
    c) Darstellung(Onpaint) ist unabhängig von Grafik und selbstgemalten.

Wo ist der Fehler?
Anregungen gegeben.
(Falls es nicht ausreicht, nochmals posten)

16.02.2008 - 00:42 Uhr

Hat jemand ne Idee?

Nein, die Definition ist zu schwammig.
(Tool, für irgendwie Verwaltung von Accounts, irgendwie das dir bekannte zu Homeusermässig).
Was für eine Anforderungsqualität...

Davon abgesehen ist dieses Forum primär für Programmierung ausgelegt...

15.02.2008 - 23:55 Uhr

Mixed Patterns.
Entwurfsmuster sind einfach nur Gedankenvorlagen...
Es gibt die typischen Patterns für genau eine (Schulbuch)Aufgabe. In der Praxis passt man Patterns an das eigentliche(konkrete) Problem an. Solche Anpassungen werden nicht publiziert(ok sie werden es manchmal(leider)). Oft werden grundlegende Patterns auch gemischt um ein Problem zu lösen, manchmal entstehen dadurch auch "echte(dh. universelle)" neue die ein Erlernen wert sind.
Bis sie es Wert sind einen eigenen Namen zu tragen fasst man sie unter mixed Patterns zusammen und verweist auf die Eltern des jeweiligen Exemplars.

15.02.2008 - 23:44 Uhr

Wie steigt man ein?
Einfache Antwort: Nicht mit einem Grafikeditor, erst recht nicht mit dem Codeeditor.
Was ist UI-Design? Usability oder Effekte? Beides?
Man muss Talent dafür haben(oder sich dieses durch viel Fleiss aneignen). Eine gute Oberfläche entsteht zuerst im Kopf(eigene Vorstellungen), dann muss man Feedback anderer einholen. Sehr gute Hilfsmittel sind in dieser Phase Papier und Bleistift.

Nächster Schritt ist das Verstehen der Technik(in diesem Fall WPF) um zu wissen wie gut man das Design mit den gegebenen Mittel umsetzen kann(und wie teuer das wird) - technisches Feedback.

Dann stellt sich auch die Frage der Akzeptanz. Man sollte User nicht unnötig mit neuen Konzepten von Bedienung und Aussehen einer Anwendung verwirren. Die Anwendung muss auch passen(Kai Krause lieferte Negativbeispiele die aber gut ausgesehen haben, ausserdem waren die Anwendungen interessant genug um die User nicht gleich davonlaufen zu lassen).
{Design ist nicht allein Effekt, Usability ist wichtiger. Derzeit ist gute Bedienung immer noch wichtiger als Farbverläufe und Effekte(die allerdings nicht schaden müssen)}

Dann trägt man die Informationen zusammen und macht es nochmal neu.

Eigentlich ist die WPF auch dazu da um Dinge(wie Kompetenzen) zu trennen. Der Programmierer kümmert sich um die Funktionalität, der Designer um den Rest...

Ich mag Kunst(Hobby) deshalb fällt mir UI-Design vielleicht leichter(hohe Investition von Zeit), kochen kann ich nicht. Obwohl ich nicht Kochen kann, kann ich eine sehr gute Rezeptverwaltung schreiben. Die Kochrezepte selbst schreib ich lieber nicht, stelle aber die Mittel zur Verfügung. Man muss/kann also nie alles selbst machen.

my 2 Cents

15.02.2008 - 23:02 Uhr

sauberer ist "bewegen", gesetzt den Fall "bewegen" gehört zum Ball und nicht zur Form...
Der Ball müsste dann natürlich ein Active Object sein oder Zeitstempel mit sich herumschleppen.

15.02.2008 - 22:56 Uhr

Dazu habe ich eine Klasse waveletMain erstellt von der wiederrum drei Klassen, die jeweils unterschiedliche Wavelettransformationen (und inverstransformationen) implementieren, erben.

Ich halte die direkte Vererbung für ungünstig(aber nicht schädlich) bzw. unangemessen.
Drei Transformatorklassen mit einem ITransformator-Interface, die mit "waveletMain" assoziieren(genauer "waveletMain" kompositieren) würde ich als bessere Lösung erachten.(Ist aber eher unwichtig).

Das Problem liegt in der umgekehrten Richtung. Wenn ein komprimiertes File eingelesen werden soll, muss ich (abhängig vom ersten byte) eines der drei (inverse-)Transformation Objekte erzeugen.
Die Frage ist nun wie ich das vom Klassendesign (Objektorientierung) her am besten umsetze?

Ich würde ein mixed Pattern verwenden(Factory/Prototype wg. Speed) auch als (Decoder)Provider bekannt.
Das 1.e Byte bildet dann den Schlüssel für den zu liefernden Provider. Das ebenfalls vorgeschlagene Strategy ist vom Muster her eher suboptimal, da das gewünschte Verhalten als solches gleich ist.

16.11.2007 - 22:00 Uhr

KISS-Prinzip halt, verdammt einfach - wenn man weiss wie...

27.10.2007 - 18:52 Uhr

Desktop und so:
Wozu?

27.10.2007 - 18:14 Uhr

@Schamanese
ist auf deinem Bild ein Hund(mit Maske) oder eine Katze?

Visualisierungen von Musik(oder anderen Geräuschen) erfordern oft Frequenzanalyse(Aufspaltung in Pegel) und eine Basisdarstellung. Das Erfordert Kenntnisse in Algebra und Geometrie. Also kein Hindernis...
Schwerpunkt ist Abstaktionsfähigkeit nicht die Programmiersprache oder ein Framework, es läuft auf simple Algorithmen hinaus.
-Wie visualiert man Daten.
Absolut vielfältig.
-Wie setzt man bunte Punkte in einem Fenster.
Leicht beantwortbar, wenn die Frage so gestellt wird.(Sprache + Framework).

Mein Rat:
Definiere die Frage neu.

25.10.2007 - 21:39 Uhr

Hi JLL,
Ich glaube ich versteh das Problem nicht.
Pen.Alignment ausserhalb des Defaults liefert Müll, der Rest läuft normal. Das Inset lässt sich leicht kompensieren.
Was übrigbleibt ist der Monitor/Graka inkl. entspr. Auflösung.
Corel und Adobe und mehr Firmen muten das ihren Kunden zu.
Was ist also noch das Problem? Skalierst Du den Pen immer noch fälschlicherweise mit?
Falls nicht musst du ein Oszi missbrauchen...

25.10.2007 - 21:28 Uhr

Ich schliesse mich Rainbird an.
Lokal und Remote löst man nicht über ein und das selbe Interface.
Remoting(als Technologie) ist ne tolle Sache, nur sollte man Remote und Lokal nicht gleichwertig ansehen.
MS ist damit bei DCom schon auf die Nase gefallen, bei Remoting hat der Entwickler/Designer die Probleme selbst verursacht.
Fakt ist nunmal das zwischen Systemen die Kommunikation streambasiert sein sollte(oder man mag lustige Effekte), auf einem geschlossenen Sytem ist der stackbasierte Ansatz im Vorteil(Performance).
Remoting ist also ok, wenn man es richtig anwendet. Remoting mit Events oder DCom...

Fazit:
Interfaces als Kontrakt kapseln keine zusätzlichen Fehler in Form von Technologieabhängigkeiten. - Alles was kein Kontrakt ist hat in einem MK nichts zu suchen(Spezialitäten obliegen den entsprechenden Implementationen bzw.Subdesigns).
Fazit simplex:
Kontrakte enthalten z.B. keine Events oder spezielle Technologieabhängigkeiten. Sie enthalten nur Datenanforderungen und sind unidirektional.

23.10.2007 - 17:10 Uhr

Ist die Höhe nicht sowieso bekannt(Fontgrösse)?

18.10.2007 - 17:41 Uhr

Irgendwie hab ich das schon geahnt 😉


      foreach (Control c in pictureBox1.Controls)
      {
        c.Left -= pictureBox1.Left;
        c.Top -= pictureBox1.Top;
      }

ciao

18.10.2007 - 17:34 Uhr

nein, einfach eine ForEach-Schleife über die Childs der Picturebox machen.

18.10.2007 - 17:29 Uhr

Ich hatte es so gemacht und es gab keine Probleme:

label1.Left -= pictureBox1.Left;
label1.Top -= pictureBox1.Top;

18.10.2007 - 17:15 Uhr

Die Koordinaten der Labels beziehen sich auf den übergeordneten Container. Das ist jetzt die Picturebox.
Du kannst das z.B. so lösen in dem du nach der Parentzuweisung die Koordinaten der Picturebox von den Labelkoordinaten abziehst.

18.10.2007 - 16:46 Uhr

Im Formkonstruktor oder sonstwo muss natürlich noch die Parentzuweisung für die Labels erfolgen.
zB. so: label1.Parent = label2.Parent = pictureBox1;

18.10.2007 - 16:34 Uhr

Ich nahm an genau das beschrieben zu haben.

18.10.2007 - 16:30 Uhr

Du kannst auch den GraphicsContainter verwenden um Transformationen und Zeichenoperationen zu kapseln. Das erspart das Zurücksetzen.


      GraphicsContainer gc = e.Graphics.BeginContainer();
      e.Graphics.RotateTransform(45);
      e.Graphics.DrawEllipse(Pens.CornflowerBlue, rect);
      //do Transformations & Drawings
      e.Graphics.EndContainer(gc);
 
    e.Graphics.DrawEllipse(Pens.CornflowerBlue, rect);
 

18.10.2007 - 16:25 Uhr

Du kannst den Labels die Picturebox als Parent zuweisen, dann die picturebox in ein Bild rendern.



      Bitmap bm = new Bitmap(pictureBox1.Width, pictureBox1.Height);
      pictureBox1.DrawToBitmap(bm, Rectangle.FromLTRB(0, 0, bm.Width, bm.Height));
      Clipboard.SetImage(bm as Image);//test
      bm.Dispose();


17.10.2007 - 15:48 Uhr

Die Frage ist halt wo und wie die Instanziierung stattfindet. Das Singletonpattern ist bei Remoting verschwendet bzw. unwirksam, da sich der Remotinghost darum kümmert.

In diesem Dokument ist das glaube ich recht gut beschrieben.
Netter Remotingartikel

Server Activated Object(SAO) als Singleton aus MSDN:


using System;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels.Http;
using System.Runtime.Remoting.Channels;
public class RemoteObject: MarshalByRefObject 
{
   public String GetGreeting(String name) 
   {
      return ("Hallo " + name);
   }
}
public class RemotingServer 
{
   public static void Main(String[] args) 
   {
      IChannel chnl = new HttpChannel(1234);
      ChannelServices.RegisterChannel(chnl);
      RemotingConfiguration.RegisterWellKnownServiceType(typeof(RemoteObject), 
         "RemoteObject.Soap", WellKnownObjectMode.Singleton); ///<---------------
      Console.WriteLine("Server gestartet. Drücken Sie  zum Beenden.");
      Console.ReadLine();
   }
}