Laden...

Forenbeiträge von Rabban Ingesamt 106 Beiträge

16.07.2014 - 15:10 Uhr

Muss ich leider bestätigen. Im letzten noch voll funktionsfähigen Opera (12.17) läufts nicht.
Und das Design sieht am Anfang arg zerschossen aus, da sich eine Art Dialogbox direkt links oben in die Ecke legt. Diese kann man zwar wegdrücken und einige Sachen auswählen, aber zum Spielfeld kommt man nicht.

06.05.2014 - 13:59 Uhr

Hallo Gongo82,

Warum dein Update nicht funktioniert, kann ich Dir leider nicht sagen, da ich keine Erfahrung mit dem Persister habe den du nutzt. Aber ich kann dir ein paar allgemeine Tipps geben.

Dein DAL sieht schonmal ganz gut aus. Allerdings nutzt man hier keine BOs zum speichern sondern DAOs(Data Access Object). Dies wird dann normalerweise als Domain bezeichnet.

BLL sieht soweit auch gut aus, aber der BLL holt sich aus dem DAL die DAOs und wandelt diese bei bedarf in Business Objects um. Das kommt daher das bestimmte Beziehungen zwischen den DAOs sehr kompliziert sein können. Was wiederum sehr auf die Perfomance gehen bzw. Superfluous Update erzeugen kann. Desweiteren sollten DAOs nur die Daten und keinerlei Logik enthalten.
Um die Logik kümmert sich dann die BOs bzw. der BLL.
Das heisst jetzt nicht das du bei jeder kleinen Aktion im BLL alle DAOs in BOs umwandeln sollst, sondern nur bei komplizierten Vorgängen, dies musst du aber von Fall zu Fall selber entscheiden.

Die UI kann je nach Bedarf auf den DAL bzw. auf den BLL zugreifen um sich die Daten zu holen die man anzeigen will. Hierbei ist aber auch wieder drauf zu achten das keine BOs oder DAOs an die View geschickt werden, das kann sehr unerwartete Fehler erzeugen die man vermeiden kann, indem man ViewModel nutzt. Dafür steht übrigens auch das "M" in MVC^^

Um die die Arbeit mit den ViewModeln bzw. den BO zu erleichtern, kannst du AutoMapper nutzen, das nimmt dir dabei sehr viel langweilige Arbeit ab. Einfach mal Google danach fragen.

Falls du den DAL komplett von deinen Controllern fernhalten willst, so kannst du auch für deine Logik Interfaces und eine StandardLogik nutzen, so wie du es mit dem BaseRepository machst.

Als weiteres würde ich dir noch IOC (Inversion of Control) ans Herz legen z.B. CastleWindsor. Das Ding ist regelrecht gemacht für MVC Anwendungen.

Und als letzten Hinweis: Bitte überdenke dringend die Benennung deiner Klassen.
"tbl_Seminar_Typ" Widerspricht fast jeder Konvention in Sachen Benennung 😄
Benenne die Klassen nach ihrer Funktion und ohne Unterstriche. Wenn du dich an das hälst was ich oben geschrieben habe, dann wäre "SeminarEditModel" eine passende Bezeichnung.

Viel Erfolg
Rabban

20.02.2014 - 16:54 Uhr

Hier der reparierte Link von Abt:

http://www.hanselman.com/blog/ReturningDataSetsFromWebServicesIsTheSpawnOfSatanAndRepresentsAllThatIsTrulyEvilInTheWorld.aspx

Der Link lässt sich leider nicht in die URL-Tags packen, da das Forum immer ein "<br />" mit reinsetzt.

13.12.2013 - 16:34 Uhr

Hallo ilcsh,

den Select N + 1 solltest du bei einer normalen Abfrage eigentlich nicht bekommen. Wenn dann tritt er anschliessend auf, wenn du mit der Entität arbeitest.
Lies dir am besten nochmal genau die Beschreibung von Select N + 1 durch, zusammen mit dem Profiler solltest du die Stelle dann recht schnell finden.

Was der Profiler zwar nicht anmeckert, mir aber negativ auffällt ist, das die Entität "Roles" heisst und somit suggeriert das sich mehrere Rollen darin befinden,
die Property heisst aber "Role", womit du widerum suggeriest das es doch nur eine Rolle ist. Hier solltest du eindeutiger benennen.

Desweiteren nennst du den Identifier "rID" was sicherlich für RoleID stehen soll.
Dies ist überflüssig, da jede Entität immer nur einen Identifier ID hat. Bei ForeignKeys ist die Benennung dann wieder sinnig, aber auch hier würde ich dir empfehlen sprechendere Bezeichnungen zu wählen.

29.07.2013 - 11:35 Uhr

der passt doch super auf der Nase^^

23.07.2013 - 14:21 Uhr

Hui, dann will ich aber auch nicht fehlen:

Herzlichen Glückwunsch und ein dickes Lob ans ganze Team und die Community 😉

29.04.2013 - 15:11 Uhr

Hallo dcpacky,

was klappt denn nicht?

MfG
Rabban

23.04.2013 - 15:26 Uhr

Noch als Tipp, zum Einlesen von csv dateien würde ich immer FileHelpers benutzen.

MfG
Rabban

18.04.2013 - 10:14 Uhr

Hallo g0su,

in String-Klasse steht eigentlich alles wichtige drin.

MfG
Rabban

16.04.2013 - 10:44 Uhr

S#arp Lite ist ein schönes Framework das NHibernate nutzt. Wirf einfach mal nen Blick drauf.

MfG
Rabban

11.04.2013 - 15:06 Uhr

Hallo schuppsl,

wenn ich mich nicht täusche, unterstützt http keine Urls die länger als 264 Zeichen sind.

MfG
Rabban

11.04.2013 - 10:50 Uhr

Wieso sollten die Daten zum schluss abgeschnitten sein?
So wie ich es skizziert habe, sind alle Daten zum Schluss vorhanden und auch in der GUI.

MfG
Rabban

11.04.2013 - 10:10 Uhr

Sind wir hier nicht wieder bei genau der gleichen Situation?

Eigentlich nicht. Du hast vorher geschrieben das du das Byte-Array direkt an den Drucker gesendet hast, dies bringt aber nichts da der Drucker daraus keine verwertbare Datei machen kann.
Wenn wir z.B. mal PDFs nehmen, so wirst du nicht drum herum kommen, eine externe Komponente zum drucken zu benutzen. Je nachdem welche du wählst, kannst du dieser auch Streams übergeben und somit deine gewünschte Datei drucken.
Deshalb ist es aus meiner Sicht nicht erforderlich die Dateien zu speichern.

MfG
Rabban

11.04.2013 - 09:51 Uhr

Du würdest damit sogesehen die Ladezeit künstlich erhöhen

Das sehe ich nicht so. Seine Aufgabe kann der GUI einfach mitteilen wenn die Aktion abgeschlossen ist, die löst eine letzte Aktualisierung aus und schon ist das GUI wieder synchron.

Der Weg den Crone aufgezeigt hat, geht natürlich auch, allerdings stellt er viel weniger Informationen dar, es hängt also ab ob man so viel benötigt oder nicht.

MfG
Rabban

10.04.2013 - 17:51 Uhr

Du brauchst die Dateien nicht speichern, eigentlich sollte es reichen wenn du die Dateien als Stream vorrätig hälst.

10.04.2013 - 17:16 Uhr

Hallo inflames2k,

ich glaube nicht das man jede beliebige Datei einfach so drucken kann. Du solltest schon vorher definieren welche Dateitypen du bekommen kannst um dann ensprechend den Drucker anzusprechen. Was bringt es dir z.B. die Bytes eines PDFs an den Drucker zu schicken? Der kann doch daraus nicht wieder den inhalt herstellen und dann dann einfach drucken.
Ich musste vor ein paar monaten ein ähnliches Tool realisieren, aber da haben wir uns dann auf PDFs und Textdateien geeinigt.

MfG
Rabban

10.04.2013 - 11:51 Uhr

Hallo Froggie,

Ein Timer oder Backgroundworker wäre schon der richtige Ansatz, übertrage deine Infos einfach wie gewohnt mehrmals in der Sekunde über die Events aber aktualisier die Controls in deiner Form nur 1 mal in der Sek.

MfG
Rabban

08.04.2013 - 17:06 Uhr

Hallo Chrizzo84,

das Berichttool von VS ist meiner Meinung nach nicht so dolle, du kannst dir aber alternativ mal CrystalReports ansehen, das gibts auch in einer kostenlosen Version für VS, oder wenn du etwas Geld investieren magst, kann ich dir Telerik sehr ans Herz legen.

MfG
Rabban

12.02.2013 - 14:43 Uhr

Timer-Klasse (System.Timers)
Schau dir dazu mal die "Start()"-Funktion und "AutoReset"-Eigenschaft an, gepaart mit dem was Jamikus gesagt hat.

MfG
Rabban

12.02.2013 - 11:56 Uhr

Hallo chanderegg,

aus deiner Beschreibung ist leider nicht viel raus zu lesen. Welchen Sinn würdest du denn darin sehen einen PK aus 3 verschiedenen Schlüsseln zusammen zu bauen?
Grundsätzlich ist ein PrimaryKey ein durchlaufender Zähler, ganz unabhängig für welche inhaltlichen Daten er benutzt wird.

MfG
Rabban

12.02.2013 - 11:51 Uhr

Hallo Maliko,

wie Jamikus schon richtig erkannt hat, rufst du "Actualisation" immer wieder nach dem starten das BackgroundWorkers auf. Laut deiner Beschreibung sollte das ganze wohl sequenziel abgearbeitet werden, aber durch den aufruf vom BackgroundWorker ist das ganze nebenläufig.
Packe einfach die Funktion, die der Worker abarbeiten sollte in "activationTimer_Tick" und dann sollte es passen.

MfG
Rabban

Ps: ein kurzes debuggen von "activationTimer_Tick" hätte dir eigentlich zeigen müssen, das er den Timer sofort wieder startet.

06.02.2013 - 13:58 Uhr

Wenn ich für jede Entity das Ganze von Hand machen müsste, geht mir einiges an Zeit flöten

Diesen Aufwand sehe ich jetzt nicht so. Wir haben hier auch einige größere Webprojekte in unserem Haus und erfahrungsgemäß müssen wir eh die meisten Views nochmal anfassen, bzw. komplett überarbeiten. Somit ist, aus meiner Sicht, die Zeitersparnis minimal, da die Vorlage nur die Dateien anlegt.
Wenn du dir aber Zeit sparen willst, dann kannst du doch mit Snippets arbeiten, die genau das gleiche für dich machen. Dann ist dein einziger Aufwand, die Dateien anzulegen.

MfG
Rabban

06.02.2013 - 13:36 Uhr

ich glaub das klappt auch nicht nicht glauben! Regex ist ein sehr mächtiges Werkzeug, wenn auch am Anfang sehr verwirrend. Also lies dir das tutorial durch, und du wirst sehen, so schwer ist das nicht.

MfG
Rabban

06.02.2013 - 13:23 Uhr

Hallo Karill Endusa,

Warum erstellst du nicht von Hand eine Klasse die sich von "Controller" ableitet?
Wenn ich mich nicht täusche ist "Controller hinzufügen..." nichts anderes als eine Vorlage die ein bißchen Schreibarbeit erspart.

Mfg
Rabban

06.02.2013 - 11:01 Uhr

http://www.mycsharp.de/wbb2/forum.php
Ganz oben in der mitte, und das gleiche gibts nochmal für jedes Unterforum.

MfG
Rabban

25.01.2013 - 15:31 Uhr

Hallo Tossi65,

kann es sein das du mit "dr**" auf eine Lazy-Property zugreifst und er sich die Daten erstmal noch aus der DB holen muss? Wenn ja, dann musst du die Sachen nur Eager laden.

MfG
Rabban

23.01.2013 - 17:16 Uhr

Zur Nutzerverwaltung in der Programmlogik, dann kann ich die Formular Aufrufe ja sicher nicht über den "Bindingnavigator"(Siehe Anhang) abwickeln, wo/wie kann ich denn in der Programmlogik meine Datenbank Werte abrufen?(auch hier versuche ich mich mal selber schlau zu machen)

Ich persönliche arbeite nicht mit solchen Bindungen, die nehmen dir zwar viel arbeit ab, aber auch viel Kontrolle, deshalb nutze ich NHibernate. Dort kannst du dir explizit die benötigen Rechte deines angemeldeten Benutzers einfach aus der DB laden und dann entsprechend handeln.

Falls du nocht nicht weißt was ein O/R-Mapper ist, würde ich mich an deiner Stelle auf jedenfall mal reinlesen.

Das Formular soll eigentlich eine Art Wochen "Tagebuch" darstellen, d.h. hatte ich erst gedacht ich speichere die einzelnen Tage mit gemeinsamen "Wochen-Datum"(Erster Tag der Woche) aber dann werde ich wohl jedes Formular gesamt speichern mit den Werten:

Ich würde nur jeden einzelnen Termin speichern und nicht komplette Tage. Das ganze würde als Poco in etwa so aussehen:


public class Termin
{
	/// <summary>
	/// Jede Entität braucht eine Id
	/// </summary>
	public long Id { get; set; }

	/// <summary>
	/// Der Zeitpunkt des Termins mit Uhrzeit.
	/// </summary>
	public DateTime DateTime { get; set; }

	/// <summary>
	/// Eine Beschreibung des Termins
	/// </summary>
	public string Beschreibung { get; set; }
}

Natürlich gehören da noch der Benutzer rein und alle anderen Infos die du für den Termin brauchst, aber im groben und ganzen reichen die 3 Informationen aus um einen Termin zu erstellen.

MfG
Rabban

23.01.2013 - 16:52 Uhr

Hallo Tac,

als erstes würde ich dir empfehlen einen O/R-Mapper zu nutzen, die bekanntesten sind NHibernate und Entity Framework, schau einfach mal ob dich einer davon anspricht.

Ich habe jetzt nur das Problem, dass Visual meine Primärschlüssel-Kombination aus Name/Wochen-Anfangsdatum/Wochentag irgendwie nicht so akzeptieren will wie ich das gerne hätte.

Als nächstes würde ich dir davon abraten solche wilden Schlüsselkombinationen zu nutzen, benutze einfach einen int bzw. long für die ID, es sei denn es ist zwingend notwendig solche zusammen gesetzten Schlüssel zu nutzen, aber die Notwendigkeit sehe ich zumindest in deiner Beschreibung nicht.

Des Weiteren würde ich eigentlich gerne in dem gesamten Programm eine Benutzer-Verwaltung mit verschiedenen Rollen und Zugriffsrechten auf die Datenfelder einbauen. (Also Benutzer X kann nur Einträge mit seinem Namen sehen, Benutzer Y kann alle sehen)

Sowas löst man über die Programmlogik und nicht über die Datenbank. In der DB exisitiert normalerweise nur ein Benutzer der alle schreibrechte hat und dein Programm meldet sich dann als dieser Nutzer an. Es macht nur selten Sinn alle Benutzer deines Programms als eigenständige Benutzer der Db anzulegen.

Die Exception die du bekommst, sagt etwas anderes als deine Aussage, ich würde die Exception auch so interpretieren das du vergessen hast ein bestimmtes Feld zu füllen. Schau dir mal die ExceptionDetails an, da sollten weiterführende Infos drin stehen.

MfG
Rabban

16.01.2013 - 14:17 Uhr

Ich hab ab und zu ein ähnliches Verhalten in VS2010 Prof.
Bei mir scheint es an der Erweiterung "Productivity Power Tools" von MS zu liegen. Eventuell ist es bei dir ja was ähnliches.

MfG
Rabban

11.01.2013 - 11:47 Uhr

Hallo riehol,

ich würde, wie da anderen schon gesagt haben, die komplette funktionalität in einen Dienst legen.
Diesem Dienst solltest du dazu noch einen kleinen WCF-Service implementieren, der vom Hauptprogramm die einstellungen entgegen nimmt, wie Uhrzeit der automatischen ausführung, etc....
Ich würde sogar so weit gehen das die komplette Funktionalität nur im Dienst stattfindet und dein GUI-Programm nur die Schnittstelle dazu darstellt. Also wenn du ein Backup über deine Gui-Anwendung ausführen willst. Das diese den Auftrag an den Dienst schickt und er sie ausführt.

MfG
Rabban

10.01.2013 - 13:46 Uhr

Heise.de hat auch vollmundig behauptet das C# die Sprache des Jahres war. Allerdings ist dem PYPL auch nicht so recht so trauen, da es darauf fusst wie oft Tutorials für eine bestimmte Sprache gegoogled wurden. Dies ist sicherlich ein guter Indikator um zu sehen wie viele Neulinge sich in eine Sprache einarbeiten, aber die meisten Erfahrenen/Profis werden bestimmt nur noch wenig Tutorials googlen, wenn überhaupt. Somit ist die allgemeine Verbreitung der Sprache leider nicht davon ableitbar.

Aber unabhängig davon, C# ist für MICH definitv die Sprache des Jahres 😄

MfG
Rabban

04.12.2012 - 14:50 Uhr

Hallo Remei,

Realisieren möchte ich eine Textdatei-Zeile lesen und eine Datei hochzuladen

Warum liest du nicht erst alle Zeilen ein, erstellt daraus ein List und verarbeitest diese dann zu den Dateien die du hochladen willst?

Wie kann ich eine Zeile einlesen und später die nachfolgende Zeile einlesen ohne Foreach- oder While-Schleife?

Warum keine Schleife?

Um was für eine Datei handelt es sich? Csv?

Ich danke für eure Hilfe im voraus und bin dankbar für jede Hilfe. In der FAQ, MSDN und weiteren Internetseiten fand ich keine Lösung.

Ohne dir zu nahe treten zu wollen, aber dein gesamter Beitrag klingt sehr nach Anfänger, warum erklärst du nicht erstmal genau was du vorhast, dann können wir dir eventuell auch ein besseren Weg vorschlagen.

MfG
Rabban

29.11.2012 - 14:35 Uhr

hehe, ne ich meine aus der Main deines Setup heraus, sowas wie:


MessageBox.Show(String.Join(",", args));

Dann sollte es viel deutlicher zu sehen sein.

29.11.2012 - 14:27 Uhr

Hast du schon versucht dir testweise mal die Argumente in einer MsgBox ausgeben zu lassen wenn du dein Setup startest? Dann solltest du eigentlich sehen was ankommt.

MfG
Rabban

29.11.2012 - 14:19 Uhr

Hallo SeCuRiiTaS,

versuch mal das Leerzeichen vor deinem Argument weg zu lassen, kann sein das er das sonst als eigenständigen Parameter interpretiert und er dir anstatt einen, zwei Paramter übergibt.

MfG
Rabban

28.11.2012 - 17:17 Uhr

Hallo Chronisch,

Name,Vorname,Strasse,Hausnummer,Postleitzahl,Ort

Ist das ne CSV-Datei? Wenn ja, dann kannst du es dir total einfach machen.

Lass die Datei von FileHelpers lesen.
Das gibt dir ne Liste aller Datensätze in der Datei wider und diese Liste musst du nur noch nach deinen Bedingungen durchsuchen.

Das sollte aufjedenfall bedeutend einfacher und schneller als jeder händische Leseversuch sein.

Mfg
Rabban

27.11.2012 - 16:19 Uhr

Bist Du im Linux Umfeld würde ich zu PostGreSQL raten

Wir nutzen PostGres unter Windows und dort läuft er auch super und natürlich kostenlos, kann zwar keinen vergleich zu MS SQL Server Express ziehen, aber denke PostGres sollte auch unter Win die bessere Wahl gegenüber SQL Server Express sein, da dies nur ein abgespeckte Variante der richtigen DB-Lösung ist und bei PostGres kriegst du das volle Programm.

MfG
Rabban

26.11.2012 - 15:01 Uhr

Hallo Vicky,

ein bißchen mehr Eigeninitiative wäre wirklich wünschenswert. Hast du dich schonmal schlau gemacht was eine FaultException ist? Verstehst du die Fehlermeldung? Hast du versucht die Funktion "updateBasicsDetails" serverseitig zu debuggen? Btw. Funktionsnamen werden groß geschrieben.

MfG
Rabban

23.11.2012 - 15:17 Uhr

is mein erstes prog in c#

Gibt es einen Grund warum du dich gegen Wcf entschieden hast? Mit Wcf sollte die Kommunikation bedeutend einfacher zu handhaben sein.

MfG
Rabban

23.11.2012 - 14:05 Uhr

Eins vorweg, ich habe keinerlei Erfahrung mit .Net.Sockets, nur etwas mit Wcf und da funktioniert es genauso wie ich es geschildert habe. Habe hier meine Frage nur aus reiner Neugier angebracht, ich hoffe es ist nicht zu sehr OT.

Ist bei Dir "nichts zurueckliefern" ein Timeout? Wenn Du ohne Timeout liest, dann blockiert das Lesen vom Stream.

Stream.Read gibt die Anzahl der Bytes zurück die gelesen wurden, laut msdn gibt es 0 zurück wenn der Stream komplett gelesen wurde. Das meine ich mit "nichts zurückliefern".
Sollte man aus irgendeinem anderen Grund nicht mehr den Stream lesen können, so wird eine Exception geworfen. 0 ist somit immer das Signal wenn man fertig ist.

Anschliessend würde ich dann einfach einen zweiten Stream öffnen und die andere Datei übertragen. Allerdings scheint das bei .Net.Sockets einiges anders zu laufen als bei Wcf(Wie ich das bis jetzt aus dem Thread hier verstehe).

das Problem ist eben das wenn ich dem Server mehrere Daten nacheinander schicke und diese sich stauen weil er zulangsam ist is alles nur noch eine Datei.

Benutzt du dann einen oder zwei Streams um die beiden Dateien zu übertragen?

MfG
Rabban

Ps: sorry falls ich zu sehr OT werde, wenn es überhand nimmt gebt einfach kurz bescheid.

23.11.2012 - 13:39 Uhr

noch viel einfacher sollte es aber hiermit gehen: Galileo Visual C# 2010

MfG
Rabban

23.11.2012 - 13:12 Uhr

Hallo gfoidl,

sollte das der Stream nicht von selber wissen? Wenn ich vom Stream lese und er mir nichts mehr zurückliefert, dann kann ich doch davon ausgehen das der Stream komplett übertragen wurde oder nicht? Ansonsten müsste er mir ja eine Exception werfen, wenn ich aus irgendeinem grund nicht mehr lesen kann.
Hab grad diesbezüglich die msdn überflogen und die empfiehlt unter anderem "NetworkStream.DataAvailable" für sowas zu nutzen.

MfG
Rabban

21.11.2012 - 15:25 Uhr

Hallo Astrix,

da der MS SQL-Server kein boolean kennt, wird praktisch überall empfohlen ein Bit dafür zu verwenden. Warum dein Chef auf ein TinyInt besteht ist mir nicht klar, frag ihn doch einfach mal warum er kein bit möchte. Selbst das EF ist so ausgelegt, das es ein Bit in der Datenbank als Bool auf der Entität interpretiert, du musst also keine umwandlungen und interpretationen von TinyInt auf Bool machen.

es muss immer zusätzlich ein Feld mit dem Präfix "Is" existieren

Damit hat dein Chef recht, aber dies hängt von der Anforderung ab.
Wenn er die Anforderung so definiert, das die "Is..."-Property das eigentliche AussageFeld ist, dann ist deine DateTimeProperty nur also ProtokollInformation anzusehen.

Mein Chef besteht jedoch darauf, dass diese Datumsfelder für solche Prüfungen nicht herangezogen werden sollen

Wie oben schon erwähnt, hängt das mit der Anforderung zusammen, sollte das DateTime nur die Protokollierung sein, so ist das prüfen auf das Bool der richtige Weg. Du kannst allerdings auch testweise mal deine Querys direkt in der DB mit einem Analyze bzw. Explain ausführen und schauen welche Abfrage schneller läuft, die mit Bool oder die mit der Prüfung auf null.

Es wäre schön wenn du deine Ergebnisse hier dann posten würdest.

MfG
Rabban

20.11.2012 - 12:05 Uhr

Wie viele Datensätze hast du denn vorher pro Session importiert?
Würde dir vorschlagen alle 100k- 300k mal nen flush aufzurufen. Und nicht alle 2-4Mio DS im gesammten committen.

Sollte dein jetziger Lösungsansatz nicht ewigkeiten dauern, da du für jeden einzelnen DS einen commit machst?

Desweiteren ist gfoidls Tipp gold wert. Schalte die Keys und Contraints aus, das spart richtig massig resourcen und Zeit.
Wir benutzen in unserem Hause auch PostGres, hantieren zwar nur mit ein paar 100k DS rum, aber so ein verhalten wie du es beschreibst, konnte ich dort noch nicht beobachten.

*edit:*
eventuell liegt es am Mapping, hast du dir mal angesehen was er zur DB schickt? Es könnte sein das du "Superfluous update" erzeugst und somit die Statement anzahl massiv erhöhst.

MfG
Rabban

19.11.2012 - 16:14 Uhr

Ja, das doppelte "und" ist aufgefallen und meiner Meinung nach auch kein Problem anderer Leute(PaL) nach Adams Definition.

Am wahrscheinlichsten finde ich, das das prüfen auf 12 Monate zu banal war.
Man hätte aber wirklich, wie vorher schon angemerkt wurde, zumindest testen können ob sich Termine in allen Monaten anlegen lassen.

MfG
Rabban

19.11.2012 - 10:08 Uhr

Hallo Quaneu,

reicht es nicht aus, wenn du dein neues Control von TabControl ableitest?

MfG
Rabban

16.11.2012 - 13:07 Uhr

Hallo neo,

die Bioszeit kann man auch sehr einfach umstellen, wenn du eine unmanipulierte Zeit haben willst, bleibt dir wohl nichts anders übrig als sie irgendwo aus dem Netz zu holen. Sollte einiges an Webservices geben wo man die aktuelle Zeit abrufen kann.

MfG
Rabban

15.11.2012 - 16:01 Uhr

Welche Lösung hast du denn jetzt genutzt?

die Zerlegung der Methode ist wichtig fürs Invoke, da "SetImage" sich selber rekursiv aufruft falls ein Invoke benötigt wird.

jetzt laggt die GUI immerhin nur noch.

Was meinst du damit? Blockiert Sie?

MfG
Rabban