mich wundert, dass du die Methode überhaupt aufrufen kannst, denn laut MSDN Doku wird sie im CF gar nicht unterstützt.
-.-
Das erklärt ja einiges. Das ist nicht das erste mal, dass ich über Methoden und andere Aufrufe stolper die zwar nicht verborgen sind, aber im CF nicht unterstützt werden.
OK vielleicht gibt es aber eine andere Möglichkeit mein Handy zum Tönen zu bringen. Vielleicht auch eine Vibration?
Hast du oder jemand anderes vielleicht einen Hinweis, wie ich das bewerkstelligen kann ?
(Google frustriert, da zumeist von aktuelleren WindowsPhones die Rede ist)
Hallo,
ich arbeite mit einem Steinzeitgerät WindowsPhone 5.0 mit minimalem .NET compactFrameWork...
Auf jeden Fall brauche ich die Sounds.
System.Media.SystemSounds.Beep.Play();
bringt leider keine Reaktion mit sich. Ebenso, die anderen Sounds.
Auch bleibt der Soundplayer beim Abspielen einer Wave-Datei stumm.
(Gerät ist laut)
Woran es liegt, kann ich mir nicht erklären. Habe alle möglichen Foren abgesucht, aber das Problem scheint keiner zu haben.
Ich bitte also um Hilfe 😮)
Hallo,
ich hab nun einige Zeit mit Eclipse und Java gearbeitet und bin nun verwöhnt.
Dort konnte man für das Kommentieren von Klassen, Methoden, andere Member usw. jeweils eigen Dokutemplates einstellen.
Hat man zum Beispiel eine Methode void xyz() definiert und möchte die kommentieren, so tippt man über der Methode /***, dann [Enter] und Eclpise fügt dann automatisch das, durch das entsprechende Template vordefinierte, Kommentar ein.
Das sieht dann zum Beispiel so aus:
/***
\*
\* @author ich
\* @date 04.11.2011
\***/
void xyz() { return; }
In VS wird ja beim Tippen von /// auch ein Kommentarrumpf eingefügt.
Kann man irgendwo einstellen, was da eingefügt wird?
Ich arbeite in einem großen Team und beim Kommentieren müssen wir am besten immer unseren Namen, das aktuelle Datum und eben den Kommentar eingeben.
Wäre dies vergleichbar zu Eclipse möglich, würde doch ein wenig Zeit gespart werden.
Danke im Voraus für eure Tipps.
Ok du hast recht. Hab es erst überflogen. Aber wie dem auch sei, dieses Problem ist bereits gelöst. Danke noch mal...
Zum Thema FileDialog habe ich nichts spezielleres zu PDAs und co. gefunden. Ich bleibe daher bei meinem selbst entworfenen Dialog.
Dieses Thema kann also geschlossen werden, wenn keiner mehr einen anderen Hinweis hat...
Grüße
@herb
Wie gesagt ich arbeite im CompactFrameWork, und dort stehen mir halt nur eingeschränkte Möglichkeiten zur Verfügung.
Der Tipp von MyUndertaker hat mein erstzes Problemchen bereits gelöst.
@rollerfreak
Nun gut, ich hab auf CodeProject auch keine genaueren hinweise gefunden, und habe dann also selbst ne Form entwickelt um durch die Ordnerstruktur der PDAs zu navigieren. Funktioniert soweit auch ganz gut.
Meine eigentliche Frage war aber eher, ob es auch vom CompactFramework aus möglich ist, einen StandartFileDialog zu nutzen, um durch alle Ordner eines PDAs zu navigieren, oder ob ich mir selbst ne Form basteln muss.
Der StandartFileDialog des CompactFrameworks beinhaltet, auf nen Windows-PC übertragen, nur alle Unterunterordner von Eigene Dateien.
Ist doch schön, dass es für kleine Probleme auch eine einfache Lösung gibt. Das aktuelle Verzeichniss kann ich nun so ausgeben. Danke erstmal.
Für mein 2. Teilproblem wäre es noch schick zu wissen, wie man den FileDialog derart manipuliert, dass er mir mehr als nur die Standart-Ordner anbietet...
Hallo,
ich muss ein kleines Problem lösen, weiß aber nicht weiter.
Also es geht um ein Projekt welches bspw für PDAs gedacht ist.
Ich muss den aktuellen Pfad ermitteln. Doch im CompactFramwork, fliegt mir bei
Directory.GetCurrentDirectory()
eine NotSupportetException um die Ohren.
Enviroment.GetCurrentDirectory()
steht mir nicht zur Verfügung
Wenn das nicht klappt, habe ich mir gedacht, könnte der Nutzer doch in dem StandartFileDialog die Datei im gewünschten Verzeichniss auswählen. Doch im CompactFramework stehen in dem Dialog nur die Ordner Musik, Bilder, Persöhnlich, Geschäftlich usw zur Verfügung.
Ich möchte aber in diesem bspw. auch zu Program Files navigieren können, was so schlicht und einfach nicht möglich ist.
Vielleicht kann mir jemand einen Hinweis geben, wie ich einem der Probleme auf die Schliche komme.
Im Anhang ist ein kleines Projekt, welches die beiden Probleme angehen soll.
Danke schonmal
Nun gut,
das habe ich befürchtet. Aber: Fragen kostet ja nix.
Danke dennoch für die schnellen Antworten.
@herbivore
Rechenaufwand klar, aber wo kommt der Speicheraufwand her? Wenn du Graphics.DrawImage (Image, Rectangle, Int32, Int32, Int32, Int32, GraphicsUnit, ImageAttributes) verwendest, musst du doch überhaupt nichts zwischenspeichern.
Unter der Annahme habe ich auch Anfangs gearbeitet. Ich habe jedoch festgestellt, dass der reservierte Speicher der Anwendung extrem in die Höhe schnellte, bei Verwendung des genannten Aufrufes. Bis hin zur OutOfMemoryException. Das konnte ich zwar abfangen, aber mit dem einfachen Skalieren der PictureBox war ich dennoch deutlich effektiver und konnte weiter hineinzoomen.
Dir ist aber schon klar, dass man bei einem Faktor von 1.2 beim Hineinzoomen um den Faktor von 0,8333... herauszommen müsste, um wieder bei Faktor 1 zu landen?
Guter Hinweis, danke. Aber darauf kommt es im moment nicht an.
@Th96
Die Suchfunktionhat leider keinen Treffer gelanded der 100%ig zu meinem Problem passt.
@MrSparkle
Die Exception enthält folgende Informationen:
[System.ComponentModel.Win32Exception] = {"Die angegebene Prozedur wurde nicht gefunden"}
bei System.Drawing.BufferedGraphicsContext.CreateCompatibleDIB(IntPtr hdc, IntPtr hpal, Int32 ulWidth, Int32 ulHeight, IntPtr& ppvBits)
bei System.Drawing.BufferedGraphicsContext.CreateBuffer(IntPtr src, Int32 offsetX, Int32 offsetY, Int32 width, Int32 height)
bei System.Drawing.BufferedGraphicsContext.AllocBuffer(Graphics targetGraphics, IntPtr targetDC, Rectangle targetRectangle)
bei System.Drawing.BufferedGraphicsContext.AllocBufferInTempManager(Graphics targetGraphics, IntPtr targetDC, Rectangle targetRectangle)
bei System.Drawing.BufferedGraphicsContext.Allocate(IntPtr targetDC, Rectangle targetRectangle)
bei System.Windows.Forms.Control.WmPaint(Message& m)
bei System.Windows.Forms.Control.WndProc(Message& m)
bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
bei System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
bei System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
bei System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
bei System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
bei System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
bei System.Windows.Forms.Application.Run(Form mainForm)
bei TheoCAD.Program.Main(String[] args) in C:\Profile\s2466930\Desktop\Neuer Ordner\Schnittpkt\TheoCAD_PDA\Program.cs:Zeile 98.
Eine genaue Codezeile kann ich nicht liefern. Es tritt auf, nachdem die Picturebox vergrößert wurde und mit Invalidate() das Neuzeichnen angestuppst wurde. Ich kann die Exception daher wiegesagt nicht direkt abfangen.
@Big Al:
Ja, ich ändere die Größe der PictureBox. Selbst zeichnen ist eben auch mit Rechenaufwand und Speicheraufwand verbunden. Da die Applikation auch auf einem PDA laufen soll, wird es hier eng.
Hallo,
Zum Anzeigen eines Bildes habe ich einer PictureBox das Bild zu gewiesen.
Um die Zoom-Funktionalität zu erreichen, scaliere ich die PictureBox einfach bei Zoom in um den Faktor 1.2 und zum herauszoomen um den Faktor 0.8. Das funktioniert soweit ganz gut. Leider treten ab einer bestimmten Größe unerwartete Exceptions (Win32Exception) auf, die ich auch ganz gut vermeiden konnte, indem ich das hineinzoomen, in Abhängigkeit der PictureBoxGröße begrenze. Gerade bei großen Bildern, (ca. 10 MPixel) wird das Maximum schnell erreicht.
Die Win32Exceptions kann ich leider nicht verhindern, es sei denn ich übernehme das Zeichnen des Bildes per Hand, was ich aber auch nicht unbedingt will. Davon bin ich erst weggekommen, um den Speicherverbrauch zu reduzieren.
Mein Auftraggeber hat nun die Vorstellung, dass ich den Zoom aber quasi unbegrenzt vorbereiten soll. Schließlich möchte er auch in große Bilder weit genug hineinzoomen.
Meine Frage lautet also:
Wie schaffe ich es, dass die Zoomfunktionen ähnlich nutzbar werden, wie die der Standart Windows Bild- und Faxanzeige?
Verdammt.
Woran Kann das liegen, dass diese Methode Image.ImageFromStream() in meinem Testprogramm zur verfügung steht, aber nicht in meinem richtigen Programm??? 8o Dabei ist auf die selbe dll verwiesen.
Danke erstmal für die Hinweise.
Verzeiht meine Unfähigkeit, wie "schiebe" ich denn ein Objekt vom Typ Image in ein ByteArray? 🤔
Hallo Leute,
Ich habe folgendes Problem:
In meinem Programm werden Bilder aus Dateien geladen. Jetzt will ich aber nicht alle Bilder einzeln speichern, sondern per "Speichern unter" meine Bilder in meine Programmspezifische Datei (hier "test.test") ablegen und diese später wieder öffnen.
Zum Speichern verwende ich einen StreamWriter, über den ich alle Programm Infos speichere.
Bisheriger Ansatz:
StreamWriter writer = new StreamWriter(test.test);
writer.WriteLine("Hallo");
image.Save(writer.BaseStream, ImageFormat.Bmp);
Diese Anweisung image.Save() scheint meinen bisherigen Datenstrom einfach zu überschreiben.
"Hallo" steht dann nicht mehr in der Datei.
Außerdem: Wie lese ich den Datenstrom wieder korrekt aus?
Meine Idee:
StreamReade reader = new StreamReader(test.test);
string hallo = reader.ReadLine();
image = new Bitmap(reader.BaseStream
Hier kracht es dann Total.
Solange ich nur eine einzige Bilddatei ohne weiteren String oder dergleichen speichere geht das so, aber sobald mehr drin steht, naja...
Über hilfreiche Antworten würde ich mich freuen. Danke.
OK. Also anscheinend liegts wirklich am Compact Framework. Ich werd dann meine Icons wie du sagst auf mehrere Dateien verteilen. Ist zwar aufwendiger, aber besser als nichts.
Danke an der Stelle für die schnellen Antworten. 👍
Ja dort steht der drin.
Vielleicht liegt es an dem Kompakt-Framework. Mir stehen als Konstruktoren lediglich Icon(), Icon(Stream), Icon(Stream, int, int) zur Verfügung... ?(
Nicht persönlich nehmen. 😃
Danke für die Dateien.
Ich muss mir das aber nochmal in Ruhe anschauen. Du holst dir die Formate aus dem Stream, richtig? Aber gibt es auch die Möglichkeit es direkt aus dem Typ Icon zu erhalten?
@Wax Es hält um genau zu sein eine Eigenschaft icon vom Typ Icon. Und einen Skalierungsfaktor, der repräsentieren soll, welches Format ausgelesen werden soll.
0 ... 50 x 50
1 ... 100 x 100
2 ... 150 x 150
Nur geht wie komm ich jetzt an die Formate in den Icondateien? Das Problem ist ja unabhängig von meinem Control.
Hallo, also ich habe ein Problem mit Icons.
Ich habe für ein Projekt .ico-Dateien anlegen sollen, die 3 verschiedene benutzerdefinierte Formate beinhalten (50 x 50 x 24Bit, 100 x 100 x 24Bit, 150 x 150 x 24Bit).
Diese Icons sind dann an selbstgeschriebene Iconboxes zugewiesen worden. Idealerweise, soll nun zu beliebigen Iconboxgrößen das beste Format ausgewählt werden.
Aber egal was ich bisher versucht habe, es wird immer das kleinste Format, also 50x50 gezeichnet.
Kann mir jemand vielleicht einen Hinweis geben, wie ich an das jeweilige Format rankomme?
Das wäre super.
Jetzt kommt bestimmt als erste Antwort mit dem Icon-Konstruktor(Icon, size, size),
aber einen solchen Konstruktor finde ich leider nicht.
Danke schonmal.