Laden...

Forenbeiträge von DeveloperX Ingesamt 462 Beiträge

02.04.2007 - 21:24 Uhr

Hallo ganymedes!

OT: Einen Variablenbezeichner im Such-Begriff zu haben ist nie gut, zumal jeder die Variable anders benennen kann. "SqlCommand ExecuteNonQuery" wäre zielführender gewesen, da Klassen- und Methodennamen bei jedem gleich sind. Hätt jemand das gleiche Problem gehabt und in der betreffenden Zeile aber "command.ExecuteNonQuery()" geschrieben, hättest du den Beitrag nicht gefunden ...

mfg

31.03.2007 - 09:01 Uhr

Hm ... was für ein Wert steht in command.Parameters["?vrn"].Value (im Debugger nachsehen oder per Console ausgeben lassen) ?

31.03.2007 - 00:54 Uhr

Das wird dir wahrscheinlich helfen:
MySQL Parameters

mfg

30.03.2007 - 23:55 Uhr

Hallo!

Du musst die Fragezeichen mit den entsprechenden Parameter-Namen ersetzen.

cmd_Insert.CommandText = "INSERT INTO kundendaten(anrede, vorwahl, telefon, vrn) VALUES(@anrede,@vorwahl,@telefon,@vrn)";

mfg

30.03.2007 - 23:03 Uhr

Hallo!

Ich habe zwar noch nie was damit gemacht, aber der "Object Test Bench" von VS2005 (Prof) könnte das sein, was du brauchst. Da kannst du eine Instanz einer Klasse erstellen und Methoden invoken und deren Ergebisse ansehen.

View -> Other Windows -> Object Test Bench

mfg

28.03.2007 - 22:03 Uhr

Hallo baer999!

Da dieser Editor HTML darstellt, würd ich die Hintergrundfarbe des HTML-Dokumentes umändern.

mfg

28.03.2007 - 20:42 Uhr

Hallo!

Schleifenvariablen nenn ich immer i,j,k,.. manchmal auch idx (für Index).

Bei Steuerelementen btn_close, also ein Kürzel für den Typ, ein Unterstrich, und dann die Funktionalität. Für Kürzel verwende ich wirklich kurze Bezeichner: btn (Button), lv (ListView), tb (Textbox), lb (Listbox), clb (CheckedListBox), tv (Treeview), cb (ComboBox), chb(Checkbox) etc ...

Für dein Beispiel mit der Test-Chechbox im GroupPanel würde ich chb_test schreiben. Wenn es aber mehrer Checkboxen mit Test-"Charakter" haben würde ich chb_SettingsTest schreiben (also mit GroupBox-Namen).

mfg

24.03.2007 - 23:24 Uhr

Hallo Birgit!

Folgender Code würde eine InvalidClassCast-Exception zur Folge haben:

object o = "ich bin kein Student-Objekt";
Student student = (Student) o;  //"hard" cast

Um dies zu vermeiden, kannst du entweder die Exception abfangen oder eine der anderen 2 Varianten verwerden.

Einen Cast ohne is-Abfrage/as-Operator/Exception-Handling würde ich nur dann machen, wenn ich mir absolut sicher sein, dass die Typen übereinstimmen.

BTW: Die Variante mit Exception ist wohl die schlechteste, da man Exceptions (also Fehler) nicht provozieren, sondern von vorn herein vermeiden sollte.

mfg

24.03.2007 - 18:06 Uhr

Hallo!

Die Icons sind in der VS-ImageLibrary vorhanden:
Programme\Microsoft Visual Studio 8\Common7\VS2005ImageLibrary\VS2005ImageLibrary\VS2005ImageLibrary\bitmaps\outline\24bitcolor

und heissen VSObject_XXX (z.B. VSObject_Enum.bmp, VSObject_Event.bmp, ...)

BTW: Darf man diese Icons in eigenen, kommerziellen Produkten verwenden?

mfg

22.03.2007 - 22:03 Uhr

Hallo burning snow!

Das soll über ActiveSync laufen, weil die Anforderungen vom Vorgesetzten so sind.

Nachdem ich heute den ganzen Tag damit verbracht habe, erfolglos eine Möglichkeit zu finden ein Gerät zu emulieren, hat mich dein Beitrag jedenfalls dazu gebracht, zu versuchen meinen Chef vom ActiveSync wegzubringen und ne eigene Komponente zum Synchronisieren zwischen eigenem Programm und Outlook zu entwerfen (für die eventuelle Erweiterung Sync Outlook->MobileOutlook kann ich dann ja immernoch ActiveSync verwenden wenns sein muss).

Vielen Dank jedenfalls, burning snow!

mfg
DeveloperX

22.03.2007 - 19:43 Uhr

Hallo!

Ja das ist richtig, ich habe wirklich kein physisches Gerät.

Aber an dem ActiveSync soll festgehalten werden, da später auch noch andere Synchronisationsvorgänge stattfinden sollen (andere Daten und eventuell auch von PC auf ein wirkliches mobiles Gerät).

Daher bleibt weiterhin die Frage, wie ich ein mobiles Gerät simulieren kann und mit dem die ActiveSync-Vorgänge abgehandelt werden.

mfg
DeveloperX

21.03.2007 - 20:02 Uhr

Hallo zusammen!

Ich habe folgendes Problem:
Ich soll Kontakte aus dem eigenen Programm mit Outlook synchronisieren, und zwar mit ActiveSync. Nun habe ich gesucht was geht, bin aber zu folgenden Fragen nicht fündig geworden:

  • ActiveSync ist ja für mobile Geräte ausgelegt, die man ansteckt und dannach deren Daten synchronisiert werden. Wie kann mein separates Programm ein ActiveSync-fähiges Geräte simulieren, damit ActiveSync die Arbeit aufnimmt?

  • Wie ich die eigenen Daten für ActiveSync bereitstellen muss, weiss ich schon. Aber welche Assemblies benötige ich dafür und wo findet man diese?

Und ja, das ganze soll wirklich mittels ActiveSync realisiert werden und nicht mittels Outlook-PIA oder CDO.

Besten Dank im Vorraus!

DeveloperX

16.03.2007 - 16:06 Uhr

Fall du einen ATi-Chip hast, installier dir den Catalyst-Treiber. Der kann auch das Bilder einzelner Monitore drehen.

16.03.2007 - 14:14 Uhr

Hallo golo!

1.0: 2246 Klassen
1.1: 2303
2.0: 4528
3.0: ca. 9000

Quelle: http://www.gfu.net/semicolon6.pdf [Seite 16]

Gefunden via Google "anzahl klassen .net 2.0": 10. Suchergebnis 😜

mfg

edit: seitenzahl hinzugefügt

14.03.2007 - 18:30 Uhr

Hallo!

Richtig, die Variale i ist nicht global. Entweder du speicherst die im ViewState oder im Session-Objekt.

mfg

14.03.2007 - 13:05 Uhr

Hallo!

Das ist kein Bug vom VS oder vom Framework.

Hier siehst du, dass dies allgemeiner Standard ist (ganz unten):
http://cloford.com/resources/colours/namedcol.htm

mfg

12.03.2007 - 13:50 Uhr

müsste in MSOutlook.Application.Version stehen 😉

Du solltest jedoch überlegen, ob es Sinn macht, zwischen den Versionen zu unterscheiden. Wenn du alles auf einen gemeinsamen Nenner bringen kannst, brauchst du alles nur einmal zu coden. Wenn du allerdings die speziellen Features der Versionen verwenden willst, musst du unterscheiden.

Nur weil bei der neuen Version foreach geht, und bei der alten nicht, würd ich keine Versionsunterscheidung machen.

mfg

12.03.2007 - 12:09 Uhr

Hallo!

Du musst mit einer for-Schleife (0 bis objFolder.Items.Count-1) und per objFolder.Items.Count[index] darauf zugreifen.

mfg

11.03.2007 - 01:06 Uhr

Hallo!

Versuch doch mal folgenden Code (hab ich für Outlook 2003 verwendet und funktioniert auch wenn Outlook nicht geöffnet ist):

using OL = Microsoft.Office.Interop.Outlook;
// ...

OL.ApplicationClass o = new OL.ApplicationClass();

OL.NameSpace session = o.GetNamespace("MAPI");

OL.MAPIFolder folder = session.GetDefaultFolder(OL.OlDefaultFolders.olFolderContacts);

mfg

09.03.2007 - 23:16 Uhr

Hallo!

Kann dir zwar keinen Erfahrungsbericht drüber geben, weil ich selber erst im Herbst damit anfange, aber in Graz gibt es die Studienrichtung "Softwareentwicklung - Wirtschaft". Vielleicht ist das auch eine überlegenswerte Möglichkeit für dich?

mfg

09.03.2007 - 02:56 Uhr

Du musst dem Compiler schon sagen, dass 'object sender' eine TextBox ist:

private void FocusText(object sender, EventArgs e)
{
     TextBox textBox = (TextBox)sender;            
     textBox.SelectAll();
}

mfg

08.03.2007 - 21:31 Uhr

Hallo!

Packe jede "Seite" in ein eigenes UserControl und stelle dieser UserControls nacheinander in einem Dialog dar.

Btw.: dieses Thema wurde schon oft besprochen. Die Suche nach Wizard / Frames bringt einige Ergebnisse.

mfg

08.03.2007 - 14:46 Uhr

Hallo!

ich denk mal ein "group by user_id" dürfte schon abhilfe schaffen. Aber ob es die performanteste Lösung ist, weiss ich auch nicht.

Eine andere Idee wäre, "... where user_id in (select distinct user_id from projects)"

mfg

03.03.2007 - 17:03 Uhr

Nicht zwingend: entweder du speicherst binär oder im XML-Format

03.03.2007 - 02:08 Uhr

Hallo!

Ein paar Stichwörter, die dir helfen werden:
SelectedIndex, SelectedIndices, SelectedIndexChanged

mfg

03.03.2007 - 01:45 Uhr
// Syntax: foreach-Schleife
foreach(Datentyp Bezeichner in Array-Bezeichner) {/*...*/} 

kombiniert mit frisch´s beitrag ergibt ja schon ein halbwegs brauchbares Grundgrüst:

foreach (<Datentyp> zeile in listView1.Items)
{ /* ... */ }

Nun musst du nur noch herausfinden, welcher Datentyp in dieser Items-Auflistung enthalten ist (ich weiss es, nur solltest du lernen, solches Wissen in der Dokumentation zu suchen) und den Typ-Bezeichner anstelle von "<Datentyp>" einsetzen.

mfg

03.03.2007 - 01:27 Uhr

Hallo X-Gamer!

Nur weil du dich nicht mit foreach auskennst bzw. nicht bereit bist, dass nötige Grundlagenwissen aus dem Open-Book (auf dass du bereits desöfteren verwiesen wurdest) zu erlernen, heisst das nicht dass es nicht geht.

Ein foreach-Loop ist hier ein äußerst angebrachter Vorschlag mit dem is definitiv geht!

Anstatt nur zu schreiben, dass es nicht geht, wäre es u.U. angebracht, deine bisherigen Code-Versuche zu posten (nur den Teil, der wirklich Probleme macht).

mfg

28.02.2007 - 12:24 Uhr

Hallo!

Du kannst dir die Rectangles merken, also in einer Liste oder Dictonary speichern.

Wenn du mit Event zuweisen meinst, dass irgendwas ausgeführt wird, wenn der Benutzer darauf klickt, muss du das Click-Event des Controls, in das zu zeichnest, anzapfen und dort prüfen ob eines der gemerkten Rechtecke den Klick-Punkt enthält.

mfg

27.02.2007 - 22:48 Uhr

Hallo!

Vielleicht mit folgendem Ablauf:

  • das neue UserControl instanziieren
  • dieses zum Panel hinzuzufügen (und vorher eventuell neuesUC.Visible=false)
  • beim alten Visible=false setzen
  • beim neuen Visible=true setzen
  • das alte löschen

bzw.: gibt es einen grund, warum du currentUsercontrol.parent zuweisst, anstatt meinPanel.Controls.Add() verwendest?

mfg

26.02.2007 - 16:25 Uhr

Hallo!

Zeig uns mal den Code, den du versucht hast.

mfg

26.02.2007 - 03:48 Uhr

Hallo!

Laut eigener Aussage deinerseits müsstest ja eh wissen, was vb ist:
Kill??

Ansonsten einfach mal google, wikipedia oder diverse Bücher bemühen!

mfg

25.02.2007 - 17:53 Uhr

Hallo!

Process.Start ist genau das richtige dafür.

mfg

18.02.2007 - 19:38 Uhr

Hallo Golo!

Quelle google-Suche: http://www.winhistory.de/more/betas/readyboost.gif

😉

mfg

17.02.2007 - 19:47 Uhr

Hallo!

Ich habe einen Server-Klasse und eine Client-Klasse (beide MBR).
Ein Server-Objekt enthält eine Liste von Verweisen auf Client-Objekte.

Die Client-Objekte gelangen in diese Liste, wenn sie RegisterClient() des Server-Objektes aufrufen; bei UnregisterClient() werden sie wieder entfernt. Klappt soweit sehr gut.

Nur was mache ich wenn ein Client-Objekt disposed wird? Wenn ich auf ein disposed-Client zugreifen will, bekomm ich natürlich ne Exception. Es hilft auch nicht in Client.Dispose() die Unregister-Methode aufzurufen, da diese ja nicht zwingend aufgerufen wird. Das selbe im Konstruktur geht auch nicht, da der nicht (rechtzeitig) aufgerufen wird.

Wie kann ich nun erkennen, dass ein Client ungültig geworden ist? Gibts da irgendein Event für? Momentan mache ich es so, dass ich mittels Timer alle 200ms überprüfe, ob die Clients noch gültig sind, ansonsten werden sie aus der Liste gelöscht.

Aber gibts dafür nicht eine bessere Lösung?

mfg DeveloperX

16.02.2007 - 19:27 Uhr

Hallo!

Warum wandelst du nicht einfach ALLE Umlaute in diesen Vergleichsstring in ue, ae, oe um?
Beispiel (Pseudo-Code)

SELECT * FROM Tabelle WHERE Replace(Name, 'ü', ue) = Replace('Müller', 'ü', ue)

mfg

15.02.2007 - 11:33 Uhr

Hallo!

Hast du schon die Publish-Variante von Remoting probiert? Ein Objekt erzeugen, dieses bearbeiten, und dann erst publizieren. Für genaueres einfach mal bei Codeproject suchen.

mfg

09.02.2007 - 23:14 Uhr

Bei CodeProject gibts bereits ein StarRating-Control: http://www.codeproject.com/useritems/starrating.asp

Dort ist gut erklärt wie man das macht! Du kannst dieses Control verwenden oder es auch selbst implementieren.

mfg

09.02.2007 - 23:01 Uhr

Hallo!

Ich würds Zahlen zwischen 1 und 5 in der DB speichern. Die Anzahl der goldenen/grauen Sterne liegt einzig und allein im GUI-Layer.

mfg

08.02.2007 - 23:26 Uhr

Hallo!

Vorrausgesetzt das Objekt in AddressEntries[x] ist vom Typ "ContactItem" (was ich mal annehme) sind die Properties die du suchst folgende: FirstName, LastName, MobileTelephoneNumber etc.

Die vollständige Auflistung müsste mit Intellisense ersichtlich sein! Ansonsten: Outlook Object Model
bzw. speziell für ContactItem: ContactItem Object

mfg

02.02.2007 - 13:37 Uhr

Hallo!

Es gibt das Event CellPaint, was dir wiederum den Zellenbereich in den EventArgs mitgibt.

mfg

29.01.2007 - 14:12 Uhr

Hallo!

Wenn das ganze nur zum Anzeigen dienen soll, warum dann nicht einfach das WebBrowser-Control verwenden? HTML ist meiner meinung nach einfach zu formatieren als RTF.

mfg

26.01.2007 - 17:54 Uhr

Hallo!

Bei codeproject.com gibts Artikel zu diesem Thema (Suche nach "user idle"):
http://www.codeproject.com/dll/trackuseridle.asp
http://www.codeproject.com/csharp/GetIdleTimeWithCS.asp

mfg

24.01.2007 - 16:48 Uhr

Hallo!

Bei einer Überladung von MeasureString() kannst du auch die maximale Breite angeben.

mfg

13.01.2007 - 01:15 Uhr

Hallo!

Erzeuge eine PictureBox und zeichne direkt in dessen Image-Objekt (also nicht im OnPaint).

mfg

29.12.2006 - 22:30 Uhr

Hallo zusammen!

Ich arbeite mit Remoting und habe einen Client, der ein vorhandenes Objekt marshalt. Dazu 2 Methoden: StartSession() und CloseSession():

In der StartSession-Methode registriere ich einen Channel und speichere diesen ab. Zusätzliche publiziere ich auf diesem Channel ein MBR-Objekt.
In der CloseSession-Methode Disconnected ich dieses Objekt: RemotingServices.Disconnect(this) und hebe die Channel-Registrierung mittels ChannelServices.UnregisterChannel(channel) auf.

Funktioniert soweit einwandfrei. Jedoch wenn ich nach einem CloseSession() ein StartSession() mit selbem Port usw. mache, kommt es zur Fehlermeldung, dass jede Socketadresse nur einmal verwendet werden darf.

Sind zum aufheben einer Registrierung noch weitere Schritte notwendig, oder mache ich etwas falsch?

mfg
DeveloperX

29.12.2006 - 22:14 Uhr

Hallo!

Das geht mit dem para-Tag:

		/// <summary>
		/// <para>asdasd</para>
		/// <para>asdasd</para>
		/// </summary>

mfg

28.12.2006 - 21:49 Uhr

Hallo!

Ich würds selber zeichnen: Einfach von Control erben, ein Image-Property dazugeben und OnPaint überschreiben. Die Y-Koordinate im Minus-Berich beginnen lassen (Image.Height - Control.Height) und bei jedem Elapsed-Event schrittweise hochzählen und neu zeichnen lassen.

mfg

16.12.2006 - 09:03 Uhr

Hallo!

Ich habe zwar noch nie was mit dem CF gemacht, aber ich vermute mal, dass es ".Name" anstatt ".name" heissen muss.

mfg

08.12.2006 - 00:40 Uhr

Hallo!

Die Funktionen Int.Parse() bzw. Int.TryParse() sollten dir behilflich sein.

mfg