Laden...

Forenbeiträge von sheitman Ingesamt 1.047 Beiträge

01.09.2016 - 12:21 Uhr

Hallo,

wollte noch anmerken das die Buß und Bettag Berechnung auch fehlerhaft ist.
Ist mir für 2000, 2006, 2017 und 2023 aufgefallen. Es ist jedes mal der 15. statt der 22.

Laut Buß- und Bettag ist der Feiertag so definiert das es der Mittwoch vor dem 23. November ist. D.h. der Code kann auch sehr stark vereinfacht werden.

Mit folgender Hilfsmethode


public static DateTime GetLastWeekday(this DateTime startDate, DayOfWeek targetDayOfWeek) {
    DayOfWeek startDayOfWeek =  startDate.DayOfWeek;
    if (startDayOfWeek == targetDayOfWeek) {
        return startDate;
    }
    int diff = 0;
    if (startDayOfWeek < targetDayOfWeek) {
        diff = targetDayOfWeek - startDayOfWeek - 7; 
    } else if (startDayOfWeek > targetDayOfWeek) {
        diff = targetDayOfWeek - startDayOfWeek; 
    }
    return startDate.AddDays(diff);
}

Lässt sich der Buß und Bettag dann so berechnen


DateTime GetBussUndBettag(int year) {
    return new DateTime(year, 11, 22).GetLastWeekday(DayOfWeek.Wednesday);
}

@juetho
bei GetOstersonntag, die letzte Zeile, da würde ich anstelle

return Convert.ToDateTime(OsterTag.ToString() + "." + OsterMonat + "." + jahr);

einfach den Konstruktor von DateTime verwenden

return new DateTime(jahr, OsterMonat, OsterTag);

Gruß
Sven

18.08.2008 - 16:20 Uhr

hm bin gerade etwas verwirrt... mal geht es mal geht es nicht...
das mit der bindingsource hat funktioniert weil dann garkein event meh hoch geht das sich was geändert hat...

momentan funktioniert das mit suspendlayout aber ich probier mal das mit beginupdate aus

nachtrag: bisher läufts mit beginupdate =)

18.08.2008 - 15:52 Uhr

das rein visuelle bekommst du mit suspendlayout beim befüllen und resumelayout nach dem setzten des selectedindex unter kontrolle.

hat bei mir erst dann funktioniert als ich eine bindingsource dazwischen geschaltet habe, aber immerhin gehts nun =)

Etwas "pfuschiger": Setz das erste Item auf String.Empty 😄

gerade das wollt ich ja vermeiden 😉

18.08.2008 - 12:47 Uhr

Hallo,

ich habe ein Form was zum Suchen dienen soll. Einige Suchparameter werden als ComboBox dargestellt und sind an eine DataSource gebunden.

Mein Problem dabei ist, dass die ComboBox automatisch das erste Element auswählt.

Mein Wunsch ist aber eher das garnix ausgewählt wird. Foglich setz ich immer den SelectedIndex auf -1, allerdings sieht man zu Laufzeit kurz das 1. Item....

Jemand eine Idee wie man das unter Kontrolle bekommen kann?

Gruß,
Sven

22.07.2008 - 13:15 Uhr

wenn ihr mich fragt sollten alle die oben die falsche antwort auswählen auch was bekommen^^
und wenns nen spötticher titel für nen monat oder so is G

22.07.2008 - 12:54 Uhr

Alles Gute dem Forum und der Community.

Vielen dank an das Team und alle Mitglieder im Forum die so oft mit Rat und Tat einem zur Seite standen. Macht weiter so. 🙂

P.S. teilweise passen die Hüte richtig gut auf die Avatare drauf (zu Golo schiel)^^

17.06.2008 - 16:57 Uhr

also wenn ich das richtig verstanden hab, kannst du im admin programm vom kupdater für ein update einstellen, das er dies unter einen besonderen benutzer machen soll

d.h. der kupdater wird das passwort was ich dort eingebe verschlüsseln und in der config für das update hinterlegen

wenn du nun ein update machst wird er sich das passwort aus der config nehmen und wieder entschlüsseln um dann beim prozess zu verwenden

oder hab ich das verfahren nicht richtig verstanden?

mir gehts im grunde darum das ic hein ähnliches problem habe
ich muß ein programm unter einem anderen context ausführen können, welches ein admin mal angegeben hat

die frage ist nun, wie verwalte bzw. hinterlege ich diese daten richtig?

das primitivste wäre, ich schreib mit benutzernamen und passwort im klartext in eine datei, wo der admin alles eintragen kann und mein programmdas wieder ausliest

da dann jeder 0815 benutzer das auch auslesen könnte wäre das schlecht

also nochmal meine frage:
wie könnte so ein konzept aussehen bzw. wie ist es beim kupdater geregelt?

17.06.2008 - 14:19 Uhr

ich hab da mal ne frage zu den inpersofinizieren:

für die ver- und entschlüsselung brauch man ja einen key, und in die anwendung hart codieren is ja sicherlich nicht das gelbe vom ei...

wie genau sähe denn so ein konzept aus?
d.h. wo liegt das verschlüsselte passwort und der dazugehörige key?

19.03.2008 - 17:38 Uhr

Keiner? Rainbird du auch nicht? 🙁

18.03.2008 - 10:49 Uhr

Hallo,

ich wollte mal einige grundsätzliche Fragen zum Thema Office und LateBinding stellen.
Folgender Ausgangspunkt: Word 2003 ist installiert.

Wenn ich nun über die Interop Assemblies arbeiten möchte müßte ich die ja in mein Projekt einbinden udn dann quasi mit auf den Rechenr ausliefern wo Office läuft damit das funktioniert. Im Falle von Office 2003 kann man die dort ja sogar mit installiren. Soweit so gut.

Nun soll das ganze aber über LateBinding geschehen, d.h. die Referenz wird aus meinem Projekt entfern und alles durch Reflection ersetzt.

Meien Frage nun ist, benötigt der Zielrechner immernoch im Falle von Office 2003 die InteropDateien? Was genau passiert teschnich im Hintergrund beim LateBinding? Wie greift er nun wirklich auf die Objekte zu?

Wenn man nicht ie Interopdateien referenziert sondern den COM-Typen, generiert das studio ja eine Interop Datei. Geschieht das dann hier auch?

Gruß,
Sven

11.03.2008 - 13:40 Uhr

Tatsächlich wird aber index nach uint gecastet, was der Reflector erkennen kann, aber nicht tut.

Dann schick dem Lutz Roeder mal ne Email^^

11.03.2008 - 13:38 Uhr

jup, keine angst, das is ja auch net was ich wollte

letzlich war


class A {}
class B {}

class A<T> : A where T : B{}

class B1 : B {}
class B2 : B {}

class A1 : A<B1> {}
class A2 : A<B2> {}

A1 a1 = DoSomething<A1>();
A2 a2 = DoSomething<A2>();

aber das ging so ja nicht 😕

was geht (es compiliert) ist


T DoSomething<T,K>() where T : A<K> where K : B

A1 a1 = DoSomething<A1, B1>();
A2 a2 = DoSomething<A2, B2>();

denk mal damit is das thema auch abgeschlossen =)

11.03.2008 - 12:01 Uhr

Zum Thema TryXY hab ich noch was nettes gefunden

Consider the TryParse pattern for members that may throw exceptions in common scenarios to avoid performance problems related to exceptions.

To implement The TryParse pattern, you provide two different methods for performing an operation that can throw exceptions in common scenarios. The first method, X, does the operation and throws the exception when appropriate. The second method, TryX, does not throw the exception, but instead returns a Boolean value indicating success or failure. Any data returned by a successful call to TryX is returned using an out (ByRef in Visual Basic) parameter. The Parse and TryParse methods are examples of this pattern.
Do provide an exception-throwing member for each member using the TryParse pattern.

It is almost always not correct design to provide only the TryX method because it requires understanding out parameters. Also, the performance impact of exceptions is not an issue for most common scenarios; you should provide methods that are easy to use in most common scenarios. Exceptions and Performance

In deinem Falle ist aber der fehlerhafter Index-Zugriff eine Ausnahme und nicht die Regel. Deswegen die explizite Prüfung in der Regel unnötig. In einem sauberen Programm nie. Also sind Exceptions angezeigt und verbessern die Performance.

Verstehe worauf du hinaus willst.

Mit sind Methode, die boolsche Werte statt Exceptions liefern eher suspekt. Hier würde ich die jedenfalls nicht verwenden.

Naja beim Dictionary find ich sie gut, da sie mir letzlich einen Aufruf mehr spart und für den Fall gemacht ist das ich ein Item haben möchte und vorher aber prüfe ob es auch da ist.
Paßt im dem Fall mit dem Index sicher nicht, aber bei Key -> Value Situationen schon wie ich find.

11.03.2008 - 11:43 Uhr

Ist allerdings richtig, diese Klasse ist auch kein Array. Ich würde allerdings - wenn schon denn schon - auf eine Prüfung verzichten und stattdessen über ein Exception-Handling arbeiten. Spart Performance.

Glaub das Thema wäre einen witeren Thread wert.
Mein Chef mag keine Exceptions so gern, da ja doch rel. teuer und man soll Exception afaik auch nicht als Kontrollstrukturen a la if else benutzen... von daher wäre wohl

bool GetInt(int index, out int i)

für sowas wohl sogar noch eleganter, oder?

11.03.2008 - 11:32 Uhr

Eine List<T> ist ja auch kein Array.

glaube ich nicht

* Do not create methods that throw NullReferenceException or IndexOutOfRangeException.


>

Naja aber es hat intern ein Array, genau wie meine Klasse oben.
Meine Klasse hat auch einen Indexer der aber nichts darüber sagt das ich ein Array intern benutze.

Also wie ich das so sehe hat herbivore (mal wieder 😉) schon die besten Argumente angeführt:

also sauberer wäre schon eine ArgumentOutOfRangeException, damit für den Verwender der Klasse klar ist, dass er "schuld" ist, weil er falsche Argumente übergeben hat. Bei einer IndexOutOfRangeException muss er ja erstmal ermitteln, ob die an seinen falschen Argumenten lag oder an einem Programmierfehler der benutzen Klasse - wobei ich bei einer IndexOutOfRangeException erstmal letztes vermuten würde.

Außerdem ist es für das Verständnis des Codes besser, wenn die Argumente am Anfang geprüft werden und man - quasi durch Code als Dokumentation - gleich sieht, was zulässig ist und was nicht.

Werd mir jetzt mal die Guidelines anschaun^^

Nachtrag:
im Grunde stehts ja auc in de Guidelines bzw interpertiere ich sie so das ich auf den Konsens von herbivore komme:

Do not create methods that throw NullReferenceException or IndexOutOfRangeException.

wollte ich ja nie werfen, die Frage war vorher zu prüfen auf das sie nciht auftreten und ne passende Exception werfen oder einfach zulassen, Jacklena's Weg war ja doppelt gemoppelt der eh nicht zur Diskussion stand und auch diesem Guide wiederspricht.

Viel interessanter find ich

All code paths that result in an exception should provide a method to check for success without throwing an exception. For example, to avoid a FileNotFoundException you can call File.Exists. This might not always be possible, but the goal is that under normal execution no exceptions should be thrown.

und

Throw an ArgumentException or create an exception derived from this class if invalid parameters are passed or detected.

was herbivores Post auch untermauert. ^^

D.h. also ich könnte wenn der Index nicht paßt ne Exception werfen oder aber einen Standardwert zurück geben sodaß keien Exception aufritt, man müßte das halt in der Hilfe vermerken.
Häufig haben solche Methoden ja auch ein boolschen Rückgabewert der angibt ob die Fkt ausgeführt werden konnte. Und für Fälle wo man sowas nicht machen kann gibts ja immernoch die ArgumentExceptions^^

11.03.2008 - 10:14 Uhr

Guten Morgen.

Gegeben ist folgende Klasse:

class A {
    private int[] iArray;

    public A (int[] iArray) {
        if(iArray == null) {
            throw new ArgumentNullException("iArray");
        }
        this.iArray = iArray;
    }

    public int GetInt_1(int index) {
        if(index < 0 || index >= iArray.Length) {
            throw new ArgumentOutOfRangeException("index");
        }
        return iArray[index];
    }

    public int GetInt_2(int index) {
        //wenn index < 0 || index >= iArray.Length wird eine
        //IndexOutOfRangeException vom System geworfen
        return iArray[index];
    }
}

Nun stellt sich mir die Frage welches Design (GetInt_1 oder GetInt_2) ist "besser" bzw. wendet ihr an, vielleicht auch warum.
Ich hab bisher immer nach methodik GetInt_1 gearbeitet, da ich Argumente eh meist überprüfe und dann bei nem Indexer das einfach mitmache.
Chef meinet aber im Grunde ist es überflüßige Arbeit das ja das System eh ne Exception schmeißt.

Einzigsten Vorteil den ich gerade sehe ist, das ArgumentOutOfRangeException von ArgumentException erbt, d.h. das Exceptionhandling ist etwas anders da ich auch ArgumentNullExceptions darüber mit fangen kann, während IndexOutOfRangeException ja eine SystemException ist.

Was meint ihr dazu?

Grüße,
Sven

11.03.2008 - 09:35 Uhr

also die gegeben Klassen waren

public class A {
}

public class B {
}

public class A<T> : A where T : B {
}

und die Methode ist

public static A<T> DoSomething<T> () where T : B

so, nun hab ich folgende Klassen

public class C : B {}
public class D : A<C> {}

diese Klasse möchte ich nun halt benutzen

D d = DoSomething<C>();

und hier tritt logischer Weise der Fehler auf, da quasi


A<C> a = DoSomething<C>();
D d = a;

steht und ich wette auch das ein cast zu ner Exception führt da es ja klar ist das ein A<C> nicht unbedingt ein D ist, Vererbung is ja gerade anders rum...

Was ich erreichen wollte ist aber so wie der Aufruf oben.

nochmal was mein Ziel ist:
Ich hab ne generische Klasse geschrieben von der ich erbe, und ich möcht eine Methode auf alle Erben anwenden können, die aber in einer anderen Klasse liegt.

Aber so einfach scheint das wohl nicht. -.- Die Lösung von weiter oben mit 2 Argumenten entspricht dem auch genau letzlich. Is halt nur rigenwdi blöd das man dem Typargument nicht sagen kann das es ein Typ von der generischen Klasse ist.
A geht deshalb nich weil es sei kann das es demnächst kein A mehr gibt sondern nur noch A<B>.

Momentan seh ich als Lösung nur das ich sowohl A und B als Typparameter mitgebe.

10.03.2008 - 17:40 Uhr

@herbivore

danke, an sowas hab ich noch garnicht gedacht. =)
klappt auch soweit allerdings hab ich noch das kleinen problem:

Cannot implicitly convert type 'A<B>' to 'A'. An explicit conversion exists (are you missing a cast?)

Ne Idee wie ich das ohne Cast wegbekomm, weil der Sinn der generisch machens war eben auch um das casten zu sparen. 😕

07.03.2008 - 16:21 Uhr

erstmal vielen dank für die hilfe.
hier die ergebnisse: =)

public A<T> DoSomething<A<T>> ()

Type parameter declaration must be an identifier not a type

public T DoSomething<T>() where T : A<T>

The type 'T' cannot be used as type parameter 'T' in the generic type or method 'A<T>'. There is no implicit reference conversion from 'T' to 'A'.

public T DoSomething<T, U>() where T : A<U>

The type 'U' cannot be used as type parameter 'T' in the generic type or method 'A<T>'. There is no boxing conversion or type parameter conversion from 'U' to 'B'.

public T DoSomething<T, U>() where T : A<U> U : B

sagte er mir nen syntaxfehler

public T DoSomething<T, U>() where T : A<U> where U : B

ließ sich erfolgreich compilieren 🙂
aber finds igendwie blöd das ich das U da halt noch angeben darf 😕
aber da ich das U eh in der methode brauche muß ich mir das nicht erst über reflection aus dem T rausholen. hat also auch nen vorteil^^

falls aber jemand ne lösung findet wie man den typen auf einen generischen typen eingrenzt, bitte melden =)

07.03.2008 - 14:57 Uhr

Hi, hab hie ein kleines Problem mit einer gernerischen Methode.

Also zunächst einmal hab ich folgende Klassen


public class A {
}

public class B {
}

public class A<T> : A where T : B {
}

nun möchte ich eine Methode in einer anderen Klasse definieren die generisch ist, wobei der Typ aber von meiner A<T> Klasse ist... nur wie gibt man sowas an?


public T DoSomething<T>() where T : A<> {
}

geht nicht, aber ich kann ja auch keinen Typen bei A<> angeben. Gibts da irgendwie nen Platzhalter?

06.03.2008 - 17:09 Uhr

Schau mal ob dir die Klassen TimeZone oder TimeZoneInfo weiterhelfen.

04.03.2008 - 10:37 Uhr

benutzt mal ToUniversalTime()

Console.WriteLine(d.ToUniversalTime().ToString("R"));

hats bei mir wieder richtig ausgegeben

hier auch mal nen blogeintrag der sich mit dem thema beschäftigt =)
http://blogs.technolog.nl/eprogrammer/archive/2006/05/14/476.aspx

04.03.2008 - 10:11 Uhr

Dort kommt aber als Ergebnis eine Stunde zu viel raus. Also 04.03.08 08:06:00. und welche zeitzone is das?
ich vermute einfach mal das tostring standardmäßig die lokalen einstellungen benutzt und dir das ding in gmt +1 anzeigt, weshalb du ne stunde zusätzlich bekommst

02.07.2007 - 16:12 Uhr

bekommst du den neine exception in der schule? laute hilfe wirft OpenSubKey eine SecurityException wenn du nicht genug rechte hast.

29.06.2007 - 16:05 Uhr

du könntest zertifizierungen anstreben. bei mircosoft gibts da z.b. einige.

28.06.2007 - 17:37 Uhr

ne das sollte eigentlich funktionieren...

schau doch mal im debugger nach welchen wert ic bei dir hat...

28.06.2007 - 16:32 Uhr

Das leuchtet soweit ein, damit nicht für jedes Objekt unnötig Speicher alloliert wird

das ist aber nicht der grund warum ein klassenattribut benutzt wird...

du benutzt statische sachen wenn du "dinge" brauchst die nicht objektgebunden sind
da du hier zählen möchtest wieviel objekte existieren, geht das nur über ein statisches attribut

27.06.2007 - 15:24 Uhr

unter windows is das \r\n
dafür gibt auch eine konstante, die du quasi plattformunabhängig einsetzen kannst -> Environment.NewLine

oder du formulierst das so um das du WriteLine benutzt...

27.06.2007 - 11:08 Uhr

ich würde dir raten jedes " mit &quot; zu ersetzen


string s = "10A\"3\" 20 30F\"n\"\"e\"\"\"R\"\" \"s\"\"th\"\"\" 40D\"$\"";
26.06.2007 - 18:07 Uhr

wie schauts damit aus?


public class Item {
    public int Id;
    public string Name;
    public int Error;

    public Item() {
        Id = -1;
        Name = String.Empty;
        Error = -1;
    }
}

bool foundId = false; //signalisiert ob ein bItem mit entsprechedner Id gefunden wurde

foreach(Item b in bItems) {
    b.Error = -1;
}

foreach(Item a in aItems) {
    foundId = false;
    foreach(Item b in bItems) {
        if(a.Id == b.Id) {
            foudId = true;
            if(a.Name == b.Name) {
                a.Error = 0;
                b.Error = 0;
            } else {
                a.Error = 1;
                b.Error = 1;
            }
            break;
        }
    }
    if(!foundId) {
        a.Error = 3;
    }
}
foreach(Item b in bItems) {
    if(b.Error == -1) {
        b.Error = 2;
    }
}

kurze erklärung:
also deine klasse item hab ich abgeändert so das error als initialwert -1 is, damit man später sieht ob da schon was geändert wurde

so, also beide leisten werden quasi durchgegangen wobei jedes item aus aItems mit jedem item aus bItems verglichen werden
wenn ein item mit derselben id gefunden wird, wird ein bollsche variable auf true gesetzt
das signalisiert ob es für ein item aus aItems auch ein item aus bItems gab (später wichtig)
vergleich von a und b ist ansonsten gleich wie bei dir geblieben, nur das ich danach die innere schleife abbreche, haben ja unser ergebnis
wenn jedes b aus bItems mit einem a verglichen wurde wird geprüft ob die boolsche variable true oder false is
ist sie false heißt das in bItems haben wir nichts gefunden mit der gleichen id, also setzen wir den errorcode in a auf 3
nachdem jedes item aus aItems abgearbeitet wurde, sollte für jedes item auch ein error code gesetzt sein
in bItems ist für jedes Item ein errorcode gesetzt wo entweder der name gleich war oder unterschiedlich, d.h. alle restlichen haben kein entsprechendes item in aItems
daher die 2. schleife die alle items in bItems durchgeht und prüft ob errorcode -1 is (der initialwert) und dafür dann eine 2 einträgt (a in aItems nicht vorhanden)

nachtrag:
da wir den errorcode von einem Item in bItems als indikator benutzen sollte nwir ihn vor dem ganzen geprüfe auc hwieder zurück setzn auf -1

is halt bissl unschön das wir 2x zusätzlich durch bItems durchlaufen müßen, aber wüßte jetzt auch nicht wie man das eleganter lösen könnten

nachtrag 2:
andere lösung die mir grad einfällt wäre das hier


Dictionary<int, Item> dic = new Dictionary<int, Item>(aItems.Length);
foreach(Item a in aItems) {
    a.Error = 3;
    dic.Add(a.Id,a);
}
foreach(Item b in bItems) {
    Item a = null;
    dic.TryGetValue(b.Id,out a);
    if(a != null) {
        if(a.Name == b.Name) {
            a.Error = 0;
            b.Error = 0;
        } else {
            a.Error = 1;
            b.Error = 1;
        }
    } else {
        b.Error = 2;
    }
}

wäre, schätz ich mal, halt bissl schneller, aber verbrauch bissl mehr speicherplatz
dafür mußt du deine klasse nicht anpassen 🙂

nachtrag: von hashtable auf dictionary umgestellt

26.06.2007 - 15:13 Uhr

zum thema scrollen kannst du unter im thread auf ein Panel mit gdi+ zeichnen mal vorbei schaun

22.06.2007 - 10:44 Uhr

also mit freepdf kannst du ja dokumente als pdf ausdrucken. dann gibts da noch ein kleines programm "pdf join" oder so, das is dabei, womit du mehrere pdf dateien zusammen fügen kannst

ansonstne hilft dir das hier weiter?

22.06.2007 - 10:22 Uhr

@herbivore
ja genau deswegen g
nagut dann halt net... 🙂

22.06.2007 - 09:27 Uhr

Übrigens wäre ich neugierig, ob du ewig den Knecht spielen willst. Warte nur ab bis du an ein Unternehmen gelangst, wo ein Spinner seine eigenen Konventionen in das Projekt einfliessen lässt. Dir wird es nicht gefallen. Beispiel aus der Realität:

  • Properties: _varName nicht erlaubt. Verwendet wird prpVarName. Nun ist es aus mit dem schönen Refactoringtool von VS, nicht? Alles von Hand schreiben.

  • Datentypenersatz: Int32 wird nicht verwendet. Es wird als UGINT32 geführt. looool. Keine zusätzlichen Funktionen hat das Teil, eh klar.

  • Properties nicht erlaubt. Der Leader ist ein alter Javajaner. Statt Properties werden Methoden GET_XXX, SET_XXX verwendet.

wenn es unsinnige konventionen sind dann kann man das ja klären...
führ gegenargumente an, zeige wie mans "besser" machen kann und wenn es kein ganz so großer spinner ist dann wird man es auch entsprechend sinnvoll ändern

Sheitman, hör einfach auf mich in diese Richtung kritisieren zu wollen.

ich kritisiere dich nicht, ich find nur deine art und weise der "argumentation" einfach schlecht... bzw. deine einstellung gefällt mir nicht... aber tut nichts zu sache

Mittlerweile habe ich auch eine Lösung wie ich diesen Schwachsinn umgehe:

  1. Ich lasse programmieren, denn als Auftraggeber brauche ich diese Mülllizenz nicht.
  2. Oder entwickle ich eine neue GUI und "erweitere" das Ribbonkonzept, wie auch MS von anderen abgekupfert und "erweitert" hat.

ja dann mach das doch...

ansonsten wäre ich dafür das der thread langsam mal geschlossen wird...

21.06.2007 - 16:37 Uhr

weil char ein zeichen ist und keine zahl... dafür gibts byte 😉

21.06.2007 - 14:23 Uhr

stimmt... dachte zuerst an substring aber trim... wo hab ich meinen kopf^^

21.06.2007 - 14:08 Uhr

string s = "";
foreach (int k in afd) {
    // mit leerzeichen
    s += k.ToString() + " ";
    
    // ohne leerzeichen
    // s += k.ToString();
}
MessageBox.Show(s.Trim());

zu beachten wäre das bei erster variante ein leerzeichen zuviel am ende ist aber was solls 😉
trotz allem lies mal ein buch...

nachtrag:
hab mir mal deine bisherigen posts angeschaut und das sind im großen und ganzen alles grundlagenfragen... vielleicht solltest du in der richtung mal ernsthaft was unternehmen...
zudem fällt mir auf das sie immer mit dem gleichen thema zu tun haben: arrays, wie man sie ausliest, was einträgt usw...

edit: trim eingefügt wegen dem leerzeichen...

21.06.2007 - 12:51 Uhr

hast du mal das setup bei deinem rechner ausprobiert?

21.06.2007 - 10:17 Uhr

hm hab das hier gefunden grade
http://msdn2.microsoft.com/en-us/vbasic/bb419144.aspx

natürlich fraglich ob man damit auch mdi anwendungen hinbekommt o.O

nachtrag:
hm, laut diesem newsgroupeintrag wohl eher nicht 🙁

21.06.2007 - 09:55 Uhr

Guten Morgen

ich wollte mich erkundigen ob es möglich ist .NET Formulare in eine Visual Basic 6.0 MDI Anwendung zu integrieren.
Ziel ist es Schritt für Schritt eine größere Anwendung zu migrieren ohne vorerst die Kernkomponente umzustellen.

Zu dem Thema selbst hab ich C# - Komponente aus VBA ansprechen gefunden. Wollte nun Nachfragen ob man durch diese Herangehensweise (letzter Post) auch unter Visual Basci 6.0 Erfolg haben könnte. Vielleicht hat ja jemand anderes das gleiche Problem schonmal gehabt.

Gruß,
Sven

20.06.2007 - 14:41 Uhr

mach doch mal das hier draus

foreach (int k in afd) {
    System.Console.Write("{0}", k);
}
System.Console.ReadLine();
18.06.2007 - 09:21 Uhr

Original von Sera
@sheitman

Ich will mir einfach die Richtlinien nicht aufzwingen lassen. Gefällt dir das, wenn die Projektleitung zu dir kommt und dir mitteilt, daß die geschwungene Klammer neben der Methodensignatur platziert werden soll, anstatt darunter? Solche überflüssigen Konventionen fördern nicht die Produktivität. Sag nie einem Entwickler WIE er es umsetzen soll!

Solange ich kein "MS Certified" anstrebe, will ich mich nicht an Richtlinen halten, wo was zu stehen hat und wie es funktionieren soll.

wenn die projektleitung mir konventionen zum codeformating vorschreibt werde ich sie annehmen, denn genau dazu sind sie ja da...
ich arbeite hier nicht in einem team sondern alleine, aber es kam schon oft diese diskussionen zwecks codeformatierung auf. alle waren sic hda einig wenn man in einem team arbeitet muß man sich auf 1 einigen und das durchziehen.

nochmal: wenn du keinen bock hast dich an microsofts richtlinien zu halten, dann nutz es einfach nicht... keiner zwingt dich dazu. microsoft hats entwickelt und bietet es dir unter auflagen an... entweder du nimmst es oder läßt es sein...
das eine firma das machen kann mag zwar in deinen augen schlecht sein, aber wart mal bis du was entwickelt hast, was total inovatives, dann wirst du es auch patentieren lassen weil du keine lust hast das irgendeien firma von deinen investitionen profitiert ohne das du was davon hast...

microsoft will ja kein geld mit der ui verdienen denen gehts hauptsächlich darum das dieses ribbonkonzept verbreitet wird damit ihre office produkte auch eher angenommen werden...
und damit das look and feel gleich bleibt haben sie eben bestimmte konventionen

15.06.2007 - 15:17 Uhr

niemand zwingt dich deren konzept zu benutzen... nur wenn du es schon anfängst zu benutzen dann verlang micosoft nur das du es auch vollständig machst und nach deren richtlinien...
is doch deren gutes recht... die haben das entwickelt offenbar... also warum solle ndie nicht bestimmen können wer es wie nutzen darf?

ich finde auch das softwarepatente teilweise absurd sind aber teilweise sind sie gerechtfertigt...

nochmal: was ist dein spezielles problem mit den ribbons?
willst du es einsetzen hast aber keien lust dich an microsofts vorgaben zu halten oder wie?

15.06.2007 - 14:47 Uhr

welches problem damit hast du?
microsoft hat viel zeit und kosten rein gesteckt um diese art von ui zu entwickeln... von daher find ich das ok
es kostet dich ja nichts.. keiner will geld von dir haben

das du das design und die richtlinien einhälst hat einfach den grund das microsoft ihren standard durchsetzen wollen und ihr qualitätsstufe gehaten wird, vom design her... so wie sie diese entwickelt haben
du sollst halt das gesamtkonzept übernehmen und nicht nur teile wie es dir paßt

bei ribbons gehts übrigen nicht "nur" um tabgesteuerte menüs... da hängen noch paar andere dinge dran. lies dir mal deren beschreibung (da gibts ne pdf) durch...

15.06.2007 - 10:55 Uhr

schau dir mal den post hier an

http://groups.google.de/group/microsoft.public.dotnet.languages.vb/msg/ff181692e9766931?dmode=source&hl=de

man kann das ganze auch pber eine .net assemblie bzw. auch vbscript aktivieren aber ich denke die msi version ist schon optimal^^

05.06.2007 - 16:48 Uhr

Original von BerndFfm
Wie soll das gehen ?

Was ist der Sinn dahinter ?

Zum Zugriff auf die Daten eines SQL Servers benötigt man immer eine laufende SQL-Server-Instanz, egal ob grosse Version oder Express-Version.

Grüße Bernd also soweit ich das gesehen hab ists ein feature des 2005ers das diese datenbankdateien quasi beim benutzen in den server eingebunden und geladenwerden
du kansnt also quasi deine datenbank mit der software ausliefern und die kann dann automatisch in einen schon laufenden server beim betrieb eingehangen werden

nachteil war ds die nach dem ende net automatisch wiede raus genommen wird...

daher für so single client anwendgunge würd ich auch sowas wie mssql ce benutzen...

05.06.2007 - 16:43 Uhr

Das ist auch der Grund, warum ich mich mit Java noch nie besonders anfreunden konnte

es klang halt so 😉

hab mal grad nachgesehn und du hast recht, mittlerweile haben die das wohl umgestellt... kann mich noch dran erinnern wie ich das imer manuell einstellen mußte^^

da man ja ides benutzt hat man durch deren features wie code-folding, hervorheben von passende klammern etc. denk ich mal auch weniger problem durch den kompakteren dodeblock durchzusehen...

aber letzlich mußt du bzw euer team euch auf etwas einigen... oder ihr formatiert jedes mal die quellcodes erstmal um^^

wenn du erstmal die kurze schreibweise bentutz hast wirst du auch schnell mitbekommen das sie im endeffekt garnicht so schlimm ist und die zusätzlichen leerzeilen wirklich nicht notwendig sind. 😉

05.06.2007 - 16:13 Uhr

der connectionstring sieht bisdsl anders aus (dateiname) aber wird die dann nicht automatisch in den sql server express eingehangen wenn du sie bentuzt?

oder verwechselst du das ganze mit der compact edition jetzt?

05.06.2007 - 15:12 Uhr

Das ist auch der Grund, warum ich mich mit Java noch nie besonders anfreunden konnte, denn alle Java-IDEs (Eclipse, NetBeans, JBuilder) benutzen die 1. Variante(ich weiß, kann man umstellen).

tut mir leid das sagen zu müßen aber das hat nix mit java zu tun.
deine zweite variante entspricht sogar der von sun vorgeschlagenen javakonvention...

die erstere, kompaktere kommt afaik aus der c ecke und wie du schon geschrieben hast kann man sie umstellen (und per default ist in eclipse auch variante 2 eingestellt wenn ich mich recht erinner)

ich persönlich benutze auch die variante 1... talla hat ganz gut beschrieben warum

ich find die diskussion von daher sinnlos das sie zu keinem ergebnis führt, außer der erkenntnis das jeder das bentuzt was ihm gefällt und jeder ein für und wieder hat...

aber sie bringt dahingehend was, dass wir mal unsere meinung äußern können =)
vielleicht kann der ein oder andere duch die argumente einzelner leute ja auch der anderen variante was abgewinnen 😉

05.06.2007 - 13:40 Uhr

hab ich wieder nur die hälfte gelesen^^