Laden...
J
JasonDelife myCSharp.de - Member
Schüler Anywhere in Worldwide BW ;) Dabei seit 19.06.2008 237 Beiträge
Benutzerbeschreibung

Forenbeiträge von JasonDelife Ingesamt 237 Beiträge

10.10.2009 - 13:11 Uhr

Du musst dazu wohl die php.exe per System.Diagnostics.Process aufrufen und den Output umleiten.
Ein .NET-Wrapper um PHP ist mir nicht bekannt.

Grüße, JasonDelife.

06.10.2009 - 17:38 Uhr

Ich habe das C#-Entwicklerbuch von Microsoft Press.
Davor konnte ich allerdings schon Java.
Es kam mir so vor, als wäre der Grundlagenteil nicht so ausführlich, was für Programmierneulinge allerdings nicht so gut ist.

Grüße, JasonDelife.

02.10.2009 - 21:17 Uhr

Das steht garantiert im OpenBook. Du musst es nur suchen.
Solltest du es nicht verstehen, dann solltest du dir die Grundlagen und OOP nocheinmal anschauen.

Siehe auch: [Hinweis] Wie poste ich richtig? Punkt 1.1 und 1.1.1

Grüße, JasonDelife.

01.10.2009 - 16:39 Uhr

Wurde mehrfach gefragt: mehrere Programminstanzen verhindern?

Grüße, JasonDelife.

27.09.2009 - 19:26 Uhr

Ich habe zwar das Glück, jetzt schon Windows 7 nutzen zu können, aber ich habe mal die Preise auf den Herstellerseiten bzw. durch Google recherchiert:


Acer - 14,90€
Asus - 14,99€
Fujitsu - 29,95€
Medion - 19,95€
MSI - 20,54€
Packard Bell - 14,90€
Samsung - 19,00€
Sony - 25,00€
Toshiba - 29,90€
Wortmann - 0€

Alle Angaben ohne Gewähr!

Grüße, JasonDelife.

27.09.2009 - 18:40 Uhr

Das steht in jedem Grundlagenbuch:


byte b = 254;

Wie man mit Variablen umgeht, solltest du wissen.

Grüße, JasonDelife.

27.09.2009 - 18:14 Uhr

Wenn der Server ein anderes Encoding benutzt, dann kann es u. U. dazu führen, dass die Bytewerte unterschiedlich sind.
Warum schickst du denn nicht direkt Bytes?

Grüße, JasonDelife.

26.09.2009 - 11:43 Uhr
  1. Falls deine Steuerelemente wirklich button2 und richTextBox1 heißen, bennene sie bitte (zu deinen Gunsten) um.
  2. Im Load-Ereignis des Forms kannst du die Datei einlesen. RichTextBox bietet dafür afaik eine Methode an.

Grüße, JasonDelife.

22.09.2009 - 17:01 Uhr

Dazu müsste man wissen, wie man eine Methode aufruft und einen int in einen string wandelt. Aber das sind ja Sachen, die kommen ja erst sooo spät dran...
Falls das nicht nur als Beispiel ist: Du solltest Steuerelementen sprechende Namen geben.

Grüße, JasonDelife.

22.09.2009 - 15:09 Uhr

Du musst sie mit dem VB-Compiler kompiliern.
Dann kannst du einen Assembly-Verweis hinzufügen.

EDIT: Typo
Grüße, JasonDelife.

22.09.2009 - 15:08 Uhr

In button2_Click wird evc nocheinmal definiert und instanziiert. Somit verdeckt es das evc in der Klasse.
PS: Der Button heißt nicht wirklich button2, oder? 😉

Grüße, JasonDelife.

21.09.2009 - 13:16 Uhr

Du musst beim Button im onclick denselben Namen angeben, wie die Methode heißt.
Dann darf der Fehler nicht mehr kommen.
Hast du das denn so gemacht?

Grüße, JasonDelife.

18.09.2009 - 23:18 Uhr

Die ShFileOp kommt aus der WinAPI.
In .NET gibt es für sowas die Directory-Klasse.
Und das, was man einbinden muss, nennt sich Namespace 😉.

Grüße, JasonDelife.

18.09.2009 - 17:51 Uhr

Ist das nicht eher was für Silverlight als für ASP.NET?
In ASP.NET wird die Seite ja gerendert und über HTTP zum User geschickt. Fertig.
Silverlight wird dagegen beim Client ausgeführt. Da kann man dann auch zeichnen. Allerdings ist es eher an WPF als an WinForms orientiert.

Grüße, JasonDelife.

17.09.2009 - 19:28 Uhr

Ich habe nun Windows 7 Professional x64 RTM (von MSDN-AA).
Unter dem RegisteredOrganization-Registrykey habe ich die Organisation angegeben.
winver zeigt es auch korrekt an.
Visual Studio 2008 Prof. und auch TeamViewer zeigen aber sowohl als Name als auch als Organisation "Microsoft" an. Das stört bei Visual Studio aber, da ich dann jedesmal die Assembly-Attribute ändern muss.

Habt ihr das Problem auch? Wisst ihr was es damit auf sich hat? Liegt es daran, dass VS im 32-Bit-Modus läuft?

EDIT: Hat sich geklärt, unter Win7 x64 muss man mehrere Registryeinträge ändern. (Einfach nach "RegisteredOrganization" suchen...)

Grüße, JasonDelife.

06.09.2009 - 20:35 Uhr

Ja so sieht es aus. Aber ich kann beim besten Willen nichts finden.
Naja, dann werde ich wohl warten müssen, bis ich mein System mit Windows 7 komplett neu aufsetze.
Trotzdem danke an alle!

Grüße, JasonDelife.

06.09.2009 - 20:02 Uhr

Ich habe trotz des Prozessmonitors nicht viel herausgefunden.
In der Zeit, in der der Fehler auftritt, greift er nur mit Erfolg (SUCCESS) zu.
Ich habe hier mal die Einträge der Install-Log vom Auswählen von "Visual Basic" bis zum Auftreten des Fehlers:


[09/06/09,19:42:07] Selection_Next: 
[09/06/09,19:42:07] Selection_Comp_Select: Visual Basic, 0x1
[09/06/09,19:42:07] Diskspace_check: C:\|455665 E:\|103264 
[09/06/09,19:42:07] Setup.exe: ISetupManager::GetFullComponents()
[09/06/09,19:42:07] TargetDriveSize: 0x1bc
[09/06/09,19:42:08] Setup.exe: AddGlobalCustomProperty
[09/06/09,19:42:08] VS70pgui: ***ERRORLOG EVENT*** : Unable to retrieve the install directory for  in COptionsPage::IsGoodAllComponenentsPath
[09/06/09,19:42:08] vs70uimgr: Entering DisplayMessage() method.
[09/06/09,19:42:08] vs70uimgr: DisplayMessage_START:Das ausgewählte Laufwerk ist ungültig. Überprüfen Sie den Installationspfad, bevor Sie Setup fortsetzen.

Ich werde aber nicht schlau daraus.

Grüße, JasonDelife.

06.09.2009 - 18:14 Uhr

Ich habe die setup.exe in "C:\Program Files\Microsoft Visual Studio 9.0\Microsoft Visual Studio 2008 Professional Edition - DEU" als Administrator gestartet, mit und ohne DVD im Laufwerk. Aber der Fehler bleibt. Und Speicherplatzmangel kann es auch nicht sein, ich habe auf C: über 400 GB frei. Ich habe mal einen Screenshot angehängt.

06.09.2009 - 17:32 Uhr

OS: Windows Vista Home Basic
Verwendete Version: Visual Studio 2008 Professional mit SP1 und XNA Game Studio 3.1

Hallo liebe Community.
Ich wollte heute zusätzlich zum C#- und Web-Feature das VB-Feature von VS installieren, um ein VB.NET-Projekt zu öffnen. Wenn ich nun in der Systemsteuerung unter "Programme und Funktionen" den Eintrag "Visual Studio 2008 Professional Edition - DEU" auswähle und auf "Ändern/Entfernen" klicke, so lädt das Setup und ich wähle "Komponenten hinzufügen oder entfernen" aus. Dann setze ich den Haken bei "Visual Basic" und drücke "Aktualisieren". Es erscheint folgende Fehlermeldung:


Microsoft Visual Studio 2008-Setup

Das ausgewählte Laufwerk ist ungültig. Überprüfen Sie den Installationspfad, bevor Sie Setup fortsetzen.

OK

Ich habe schon gegoogelt und habe nichts gefunden. Ich hoffe, ihr könnt mir da helfen.

EDIT: Hat sich für mich erledigt, mit Windows 7 habe ich es neu installiert.

Grüße, JasonDelife.

04.09.2009 - 18:07 Uhr

Goto ist ganz böse. Immer vermeiden!
Ich hätte das ganze mit dem BackgroundWorker gemacht:


private void startBtn_Click(object sender, EventArgs e) {
    startBtn.Enabled = false;
    bgw.RunWorkerAsync((int) maxNumberUpDwn.Value);
}

private void bgw_DoWork(object sender, DoWorkEventArgs e) {
    int max = (int)e.Argument;
    StringBuilder sb = new StringBuilder();
    for(int i = 1; i <= max; ++i) {
        if(IsPrime(i)) // IsPrime muss noch implementiert werden
            sb.AppendLine(i.ToString());
    }
    e.Result = sb.ToString();
}

private void bgw_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) {
    resultTextBox.Text += (string)e.Result;
    startBtn.Enabled = true;
}

Die ProgressBar ist über ProgressChanged schnell eingebaut.

Grüße, JasonDelife.

21.08.2009 - 18:41 Uhr

Hi PC17.
Das Problem: Listen() ist static.

Grüße, JasonDelife.

12.08.2009 - 19:27 Uhr

Mein Nickname kommt von den Monaten:
Juli
August
September
Oktober
November
Das "Delife" ist von jemandem, der sich auch so nennt. Ich kenne ihn nicht, aber habe mal auf YouTube was von C# und "JasonDelife" gelesen. Als ich dann einen Nick brauchte sah ich auf meinen Kalender und mir ist dieser YouTube-JasonDelife wieder eingefallen. Wenn ihr im Internet einen JasonDelife findet, bin das immer ich, nur nicht auf YouTube.

Grüße, JasonDelife. <- Daran kann man mich erkennen, das vergesse ich so gut wie nie 😁

10.08.2009 - 17:03 Uhr

Das Exited-Ereignis.
EDIT: Wichtig! EnableRaisingEvents muss true sein!

Grüße, JasonDelife.

10.08.2009 - 14:39 Uhr

List<MyType>, ist zu umständlich, da ich für jede Typkombination eine eigene Klasse definiieren müsste

Eine x-spaltige und y-zeilige (auch wenn es hier nur zwei Spalten sind) Tabelle würde ich schon mit List<MyType> realisieren. Denn KeyValuePair<TKey, TValue> ist eigentlich speziell für Dictionary. Außerdem sagt "Customer" mehr als "KeyValuePair<int, string>". Und "Customer" ist dann auch einfach und typsicher mit LINQ zu benutzen.
Ein Beispiel:


public class Customer {
 // Besser wären natürlich private-Felder und Properties
 public int Id;
 public string Name;
}

// Somewhere else
List<Customer> table = new List<Customer>();
table.Add(new Customer { Id = 42, Name = "Max Mustermann" });
// ...
// Nun kann man mit LINQ einfach Abfragen tätigen

Grüße, JasonDelife.

09.08.2009 - 22:23 Uhr

Nennt sich System.Runtime.Serialization.IDeserializationCallback.

Grüße, JasonDelife.

06.08.2009 - 18:22 Uhr

Siehe: [Hinweis] Syntaxfehler selbst lösen (Compilerfehlermeldungen)
Ich denke, die DockPanel Suite hat eine Doku. Wirf mal einen Blick rein.

Grüße, JasonDelife.

04.08.2009 - 18:58 Uhr

Stichwort: Binary Search
MSDN: System.Array.BinarySearch-Methode
EDIT: Das Array muss vorher sortiert werden!

Grüße, JasonDelife.

03.08.2009 - 18:43 Uhr

Wie wär's mit Operatorenüberladung?

Grüße, JasonDelife.

01.08.2009 - 20:44 Uhr

Doch, wegen des breaks und sr.Close() in if und else.

Grüße, JasonDelife.

31.07.2009 - 19:02 Uhr

Im Ressourcen-Tab der Projekteinstellungen ganz oben rechts auf "Public" stellen.

Grüße, JasonDelife.

30.07.2009 - 19:34 Uhr

Geb' ich auch mal meinen Senf dazu:
Schüler: 8., bald 9. Klasse auf einem Gymnasium.
Ich habe auch vor, Informatik zu studieren und irgendwo als Informatiker zu arbeiten.
Habe auch einen Klassenkamerad, der das gleiche vor hat (Juhu, ein Verbündeter! :evil: ). Nächstes Jahr soll ich ihm C#-Grundlagen beibringen und das ganz offiziell in der AG, in der wir seid der 7. sind. Der Lehrer hatte die Idee, dann könnten wir zwei ja Programme für den Unterricht schreiben...
Mal sehen wie's kommt.

Grüße, JasonDelife.

30.07.2009 - 19:22 Uhr

Exceptions sollte man nicht zum Steuern (Logik) verwenden.
Rufe lieber eine Method wie Environment.Exit(0) auf (Ob die im CF geht, weiß ich nicht).

Grüße, JasonDelife.

30.07.2009 - 19:18 Uhr

Du musst das ganze in einen Thread (evtl. mit dem BackgroundWorker) auslagern.
Oder die WebRequest-Klasse besitzt schon eine *Async()-Methode.
EDIT: Siehe MSDN: System.Net.WebRequest.BeginGetResponse()-Methode.
Ob du diese Methode brauchst, kann ich nur raten, da du keinen Code gepostet hast.

Grüße, JasonDelife.

28.07.2009 - 19:04 Uhr

textBox1.TextChanged += new EventHandler(txtChanged);
textBox2.TextChanged += new EventHandler(txtChanged);

Oder im Designer einfach in der ComboBox bei TextChanged überall die gleiche Methode auswählen.

Grüße, JasonDelife.

27.07.2009 - 18:49 Uhr

Na ableiten und in "MyLabel : Label" die neue Funktionalität implementieren.
Das Label muss ja seit Version 1.0 des Frameworks da sein 😉.

Grüße, JasonDelife.

26.07.2009 - 19:57 Uhr

Hallo Florian Reischl.
Die Methode mit einer Klasse finde ich auch am elegantesten.
Nur ein Detail deiner Person-Klasse:

  
return (Vorname.GetHashCode() * Nachname.GetHashCode() * Email.GetHashCode() * 3);  
  

-> Der *-Operator ist insofern ungeschickt, da (möglicherweise) das Assoziativgesetz greift und so der HashCode nicht mehr eindeutig ist.

Grüße, JasonDelife.

26.07.2009 - 15:25 Uhr

Für jeden String ToUpper? Dauert das nicht sehr lange? Wegen immutable und so?
Ich hätte damit gearbeitet: MSDN: HashSet<T>-Konstruktor (IEnumerable<T>, IEqualityComparer<T>)
Und im IEqualityComparer<string> dann mit string.Equals(string, StringComparison.*IgnoreCase) vergleichen.

Grüße, JasonDelife.

23.07.2009 - 15:45 Uhr

Komisch bei mir ging es. Jetzt geht es aber auch nicht mehr. Hatte wohl beim ersten Test aus versehen beides mal die normale TextBox benutzt.
Aber hier habe ich was gefunden: http://www.eggheadcafe.com/forumarchives/NETVisualBasic/Feb2006/post26035379.asp

Grüße, JasonDelife.

23.07.2009 - 15:14 Uhr

Kann ich nicht nachvollziehen. (.NET 3.5 SP1)


// MyTextBox.cs
public partial class MyTextBox : TextBox {
        public MyTextBox() {
            InitializeComponent();

            TextAlign = HorizontalAlignment.Right;
        }

        protected override void OnEnter(EventArgs e) {
            TextAlign = HorizontalAlignment.Left;
            base.OnEnter(e);
        }

        protected override void OnLeave(EventArgs e) {
            TextAlign = HorizontalAlignment.Right;
            base.OnLeave(e);
        }
}

Grüße, JasonDelife.

23.07.2009 - 15:07 Uhr

Thread.Sleep() blockiert nun mal den Thread.
Außerdem wäre es doch besser einfach einen zweiten Timer mit Interval = 10000 zu benutzen und ihn beim ersten Tick gleich wieder zu stoppen, nachdem der Text gesetzt wurde.

Grüße, JasonDelife.

22.07.2009 - 18:45 Uhr

Man könnte es sogar als Extension-Method implementieren. Dann ist es wirklich einfach zu benutzen.

Grüße, JasonDelife.

22.07.2009 - 18:36 Uhr

Crosspost: http://forum.fachinformatiker.de/net/129867-compact-framework-2-0-using-system-timers.html

EDIT: Gemeldet. Ich denke, dass Crossposten in diesem Fall unangebracht ist.

Grüße, JasonDelife.

22.07.2009 - 18:11 Uhr

Du könntest eine eigene Klasse dafür schreiben. Ich wüsste nicht, dass es sowas schon gibt. Ist aber leicht selbst zu implementiern.
PS: Arrays indiziert man von 0 bis Length - 1.

Grüße, JasonDelife.

20.07.2009 - 18:44 Uhr

Der Fehler von ihm ist, eine Methode in der Methode.
Original-Code (neu formatiert):


private void Form1_Load(object sender, EventArgs e)
{
    static void Main(String[] args)
    {
         MessageBox.Show(args[0]);
    }
}

Grüße, JasonDelife.

20.07.2009 - 18:40 Uhr

In der Program.cs ist die Main-Methode.

Form1.cs


class Form1: Form {
 private string[] args;
 
 public Form1(string[] args) { this.args = args; }
}

Program.cs


Main(string[] args) {
 // ...
 Application.Run(new Form1(args));
}

Bitte beachte: [Hinweis] Wie poste ich richtig? Punkt 1.1 und Punkt 1.1.1

Grüße, JasonDelife.

20.07.2009 - 17:22 Uhr

Wird vermutlich an der blockierenden Aktion im GUI-Thread liegen.
Nutze den BackgroundWorker: MSDN: BackgroundWorker
Dann ist auch Refresh() und das Thread.Sleep() nicht nötig.
Und nenne deine Variablen anders, da blickt ja keiner durch 😉.
PS: Und nutze für C#-Code die CSHARP-Tags.

Grüße, JasonDelife.

20.07.2009 - 15:15 Uhr

Am besten garnicht. Mit Veränderungen im Code kommt der Designer nicht gut klar oder sie werden einfach gelöscht.

Grüße, JasonDelife.

12.07.2009 - 17:45 Uhr

Das sind Grundlagen, das sollte man wissen!

  1. Beim BackgroundWorker ReportsProgress auf true.
  2. Das ProgressChanged-Ereignis behandeln, dort die Labels aus dem User-State füttern.
  3. In DoWork, dort wo die labels aktualisiert werden sollten, rufst du bgw.ReportProgress(prozent, new MeinUserObjekt(label1Text, label2Text)) auf.

Grüße, JasonDelife.