Laden...

Forenbeiträge von darefilz Ingesamt 123 Beiträge

06.06.2010 - 01:16 Uhr

Hallo herbivore,

danke für die Antwort.

Das bedeutet, dass zuerst nach a gesucht wird und danach die zusätzliche Bedingung (?≤.{0,30}) geprüft wird. Das macht Sinn, stimmt. Und dann hat das Ganze auch schon nichts mehr mit lazy oder greedy zu tun. Alles klar, danke.

darefilz

03.06.2010 - 21:00 Uhr

Guten Abend,

ich bin gerade auf eine interessante Sache gestoßen, bei der ich den Fehler nicht bei mir finden kann (was nicht heißt, dass es nicht mein Fehler ist): und zwar verhalten sich alle Quantifizierer in allen Lookarounds lazy.
Beispiel: der reguläre Ausdruck ".{0,30}a" verhält sich wie angegeben greedy (und trifft (nach den anderen Zeichen) das letzte 'a' im Bereich von 30 Zeichen), aber der Ausdruck "(?≤.{0,30})a" trifft das erste 'a' und verhält sich somit lazy (obwohl kein ? angegeben ist).

Ich habe das mit allen anderen Lookarounds und allen anderen Quantifizierern getestet und sie verhalten sich ebenso faul, wie der im Beispiel.
Soll das so?
Ich habe kräftig gegoogelt und bei Microsoft selbst nachgelesen, aber nirgends ist dieser Sachverhalt beschrieben.

Freue mich über jeden Beitrag.
Danke, df

05.11.2008 - 17:26 Uhr

Okay. Danke für die Antworten. Werde gucken, dass ich das Ganze etwas anders umsetze...

04.11.2008 - 08:44 Uhr

Hallo.

Ich habe folgendes Problem und komme einfach nicht wirklich weiter.
Ich habe ein generisches Interface. Ich will aber sicherstellen, dass der generische Typ serialisierbar ist.
Also habe ich sowas versucht:

interface I<T> where T : ISerializable

Das funktioniert aber irgendwie nur indirekt, da Klassen, die ISerializable implementieren nicht zwingend auch das SerializableAttribute haben müssen.
Also habe ich intuitiv das hier probiert.

interface I<T> where T : SerializableAttribute

Das funktioniert aber natürlich nicht, weil SerializableAttribute sealed ist.

Und jetzt weiß ich nicht weiter. 🙁
Hat von euch vielleicht einer einen Tipp für mich?

Grüße

01.11.2008 - 03:00 Uhr

Hallo JAck30lena.

welchem argument??

Mit dem ersten Argument meinte ich

public static void F(this string str) { }

das "this string str". War vielleicht etwas unglücklich ausgedrückt.

die interfacemember sind explizit implementiert. das bedeutet, das du die dictionary klasse explizit gegen das interface casten musst um an die methoden händisch zu kommen.

Das ist klar, aber um die Methoden des Interfaces geht es mir nicht, sondern um die Erweiterungsmethoden für dieses Interface.

Aber wie auch immer, das Ganze hat sich insofern geklärt, dass das gar nicht stimmt, was ich erzählt habe. Dictionary<K, V> wird sehr wohl um die besagten Methoden erweitert, nur aus irgendeinem Grund habe ich das nicht gesehen. Vielleicht fehlte mir eine Using-Direktive oder ein Assemblyverweis oder so, keine Ahnung.
Aber trotzdem vielen Dank.
_void.

31.10.2008 - 23:59 Uhr

Einen wunderschönen Abend zusammen.

Also, mir ist vorhin etwas aufgefallen, das ich leider nicht verstehe:
Die Klasse Dictionary<K, V> ist scheinbar nicht von den diversen Erweiterungsmethoden der Enumerable-Klasse betroffen. Aber warum nicht?!
Nach meinem Verständnis sollten diese Methoden doch alle Klassen erweitern, die im ersten Argument hinter dem this stehen; in diesem Fall alle Klassen, die IEnumerable<T> implementieren. Dictionary<K, V> implementiert IEnumerable<T> auch (genau wie z.B. List<T>, bei der die Erweiterungsmethoden greifen), aber trotzdem wird es nicht erweitert.

Kann mir da jemand weiter helfen, irgendwie scheine ich da was zu übersehen...

Vielen Dank und liebe Grüße, _void

15.10.2007 - 22:44 Uhr

Na gut. Nervt zwar, aber wenn's nichts ernstes ist...

15.10.2007 - 18:03 Uhr

Hi.

Hm... eigentlich wollte ich das nicht über DirectInput machen, aber ich habe mich da mal ein bisschen eingelesen und gemerkt, dass es doch schon Vorteile birgt.
Vielen Dank für den Code, ist bestimmt eine gute Starthilfe.

_void

edit:
hm... bei mir kommt immer die Fehlermeldung

LoaderLock wurde erkannt.
Message: Die DLL "C:\WINDOWS\assembly\GAC\Microsoft.DirectX\1.0.2902.0__31bf3856ad364e35\Microsoft.DirectX.dll" unternimmt einen Versuch,
innerhalb der Sperre für den OS-Loader eine verwaltete Ausführung durchzuführen.
Versuchen Sie nicht, verwalteten Code innerhalb einer DllMain- oder Bildinitialisierungsfunktion auszuführen,
da dies ein Hängen der Anwendung zur Folge haben kann.

Hattest du die auch, bzw. weißt du, was das ist und wie man das wegkriegt?

13.10.2007 - 16:47 Uhr

Mir geht es nicht um die Shifttasten, sondern um die Control- und die ALT-Tasten.
Allerdings gibt es auch bei den Shifttasten keine Unterschiede bei den in den KeyEventArgs enthaltenen Properties. Oder ich sehe sie nicht, bitte zeig mir, welche du meinst.

Die Shifttasten sind aber eher deswegen kein Problem, weil die beiden Tasten verschiedene Scancodes haben. Die Control- und ALT-Tasten haben dummerweise die gleichen Scancodes und entziehen sich somit einer genaueren Unterscheidung.

12.10.2007 - 23:07 Uhr

Hi winSharp93. Die Antwort kam schneller als ich dachte. Danke.

Ja, an Hooks hatte ich auch schon gedacht. Und die PrintScreen-Taste kriege ich wirklich wenn ich die WH_KEYBOARD_LL hooke. Ist zwar etwas umständlich, aber geht.
Die Windows-Taste kriege ich aber nicht unterdrückt. Vielleicht mangelt es mir aber an der Stelle auch am entsprechenden Skill.

Aber das mit dem Merken der Control-Keys habe ich nicht verstanden... Was genau soll ich mir da merken?

12.10.2007 - 21:22 Uhr

Hallo ihr.

Ich habe drei Probleme beim Handling von vom Benutzer gedrückten Tasten:

1.: Wie kann ich unterscheiden, ob die rechte oder die linke Control-Taste gedrückt wurde? Das gleiche betrifft die ALT-Tasten.

Das klingt erstmal simpel, aber ich zerbreche mir echt den Kopf drüber.
Ich habe zwar einen Ansatz und bin auch schon recht weit, aber um euch nicht zu beeinflussen, will ich den noch zurückhalten. Vielleicht bin ich ja voll auf dem Holzweg...

2.: Wie bringe ich mein Programm dazu zu verhindern, dass Windows beim Druck auf die linke oder rechte Windows-Taste das Startmenü zeigt?

3.: Wie kann ich die Print-Taste (bei der Windows einen Screenshot macht) abfangen?

Vielen Dank und liebe Grüße, _void

21.08.2007 - 18:13 Uhr

Hallo zusammen.
Ich habe ein merkwürdiges Problem:

Ich habe ein selbstgebautes Control (abgeleitet von ContainerControl), das ein Panel und noch ein paar andere Elemente enthält.

Ich habe die Controls-Eigenschaft meines Controls überschrieben und verweise auf die des Panels:

[Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
public new Control.ControlCollection Controls
{
	get { return this.container.Controls; }
}

(this.container ist das besagte Panel)

Im Prinzip funktioniert auch alles super.
Aber im Designer sind alle Controls, die ich meinem Control (und damit dem Container-Panel) hinzufüge, unsichtbar. Beim draggen meines Control werden sie sichtbar, nach dem droppen wieder unsichtbar.

Dieses Thema hier beschreibt das selbe Problem, es hat aber leider keine Lösung gegeben.
Weiß irgendjemand was?

Vielen Dank. _void

14.07.2007 - 16:35 Uhr

Hallo, ich nochmal.

Also, ich habe eine Lösung gefunden. Und zwar geht's mir dem API-Aufruf SetWindowText ganz gut.
Beispiel:


public class Form1 : Form
{
	[DllImport("user32.dll")]
	private static extern int SetWindowText(IntPtr hWnd, string lpString);

	public Form1()
	{
		this.ControlBox = false;
		this.Text = string.Empty;

		SetWindowText(this.Handle, "Irgendein Text");
	}
}

Grüße, _void

14.07.2007 - 15:07 Uhr

Hm, das ist ja mieß.
Naja, wenn ich nicht drumrum komme... vielen Dank für Antworten!

Grüße.

14.07.2007 - 13:49 Uhr

Hi
Danke für die schnelle Antwort.

Den Artikel habe ich auch schon durchgelesen, aber es scheint mir ein wenig zu viel Aufwand für mein kleines Problem. Außerdem hat der Code an einigen Stellen Fehler und um die zu beheben, müsste ich mich da erst richtig einarbeiten und dazu fehlt leider die Zeit.

Danke trotzdem. Bitte um weitere Vorschläge.

14.07.2007 - 13:38 Uhr

Hallo zusammen.

Ich brauche ein Fenster komplett ohne Titelleiste.
Es soll aber trotzdem ein Rahmen gezeichnet werden, der auch in der Größe veränderlich ist, deswegen fällt BorderStyle = None leider weg und es kommt nur BorderStyle = Sizable in Frage (glaube ich).
Die einzige Möglichkeit, die ich gefunden habe, ist ControlBox = false und Text = "" zu setzen, aber dann wird natürlich auch in der Taskleiste nichts angezeigt. Dort soll aber ein Text stehen und ein Icon soll auch hin.

Weiß jemand, wie ich das realisieren kann?

Vielen Dank.

07.06.2007 - 22:44 Uhr

Werde mir das mal anschauen, vielen Dank.

07.06.2007 - 22:00 Uhr

Hi TeDe1408.

Soweit ich weiß, klappt das nicht.
Es wird zwar gewartet bis dein EventHandlers durch ist (sprich, du kannst eine MessageBox oder so dazwischen schieben), aber das Fenster wurde vorher schon erstellt und der Befehl zum Zeigen des Fensters wird in jedem Fall gegeben. Selbst wenn du direkt Application.Exit(); aufrufst, wird dein Fenster einmal kurz aufflackern.

Du wirst das vor dem Show-Aufruf deines Fensters überprüfen müssen, wenn du's sauber haben willst.

Grüße.

07.06.2007 - 21:42 Uhr

Hallo zusammen.

Hier mal was schwierigeres:
Wie kriege ich ein neues MenuItem, das beim Klick auf meine Anwendung verweist, in das Kontextmenü des Desktops?

_void

09.05.2007 - 17:32 Uhr

Ja, ich weiß.
Ich bin nur auf der Suche nach einer eleganten Lösung.
Würde mich aber nicht wundern, wenn es die für mein Problem nicht gibt.

09.05.2007 - 16:43 Uhr

Danke erstmal.

Mit zwei Panels hatte ich das auch schon, funktiert auch, aber gefällt mir nicht.
Und ehrlich gesagt, ist selbst die Variante mit der externen ScrollBar nicht mein Favorit.

Hm... hätte ich vielleicht mal direkt mal angesprochen, aber ich vermute, dass mir da nicht helfen ist:
Am liebsten möchte ich nämlich die ScrollBars des Panels komplett durch meine eigenen ersetzen.
Am besten so, dass ich am Ende ein einziges Control habe. Und halt nicht zwei oder sogar drei.

Hat damit schonmal jemand zu tun gehabt?

09.05.2007 - 13:28 Uhr

Hallo, ihr lieben.

Ich möchte gerne ein Panel über eine eigene ScrollBar steuern.
Das scheint irgendwie schwieriger zu sein als erwartet...

Also, ich habe AutoScroll auf false und AutoScrollMinSize auf (0; 0), da die ScrollBars vom Panel ja niemals angezeigt werden sollen.

Im Scroll-EventHandler meiner eigenen ScrollBar habe ich folgendes stehen:


this.panel1.VerticalScroll.Value = this.vScrollBar1.Value;

Das funktioniert auch eigentlich ganz gut, aber bei jedem Scroll flackert die Panel interne ScrollBar einmal kurz auf.
Sieht natürlich total kacke aus!

Weiß da vielleicht jemand Abhilfe?

Vielen Dank

27.04.2007 - 12:48 Uhr

Hallo Forum.

Hat jemand von euch eine Ahnung, wie ich ein Steuerelement einer Form (in meinem Fall ein UserControl) topmost kriege, sodass es auch über den Clientbereich der Form herausragen kann?
Ich denke da an einen ähnlichen Effekt, wie bei dem Listenteil einer ComboBox.

Habe es schon mit der SetWindowPos-API versucht, bin aber erfolglos geblieben...

Vielen lieben Dank schonmal.

14.04.2007 - 17:40 Uhr

Hallo zusammen.

Ich weiß, dass das Thema schon lange geschlossen ist und ich will auch sicher nicht rumklugscheißern.
Ich habe nur ähnliche Probleme mit dem ListView-Control und bin über die Suche in dieser Diskussion gelandet. Für alle, die noch nach mir hier landen, soll nur zumindest am Ende etwas "richtiges" stehen, wenn ich selbst die Lösung schon nicht geben kann.

Mit dem "base"-Schlüsselwort hat das Ganze nichts zu tun!
"base" (bei Konstruktoren) ist lediglich dafür da, um ggf. überladene Konstruktoren der Basisklasse zu steuern. Gibt man "base" nicht an, wird standardmäßig der parameterlose Konstruktor der Basisklasse aufgerufen.

Ich selbst habe auch schon alles ausprobiert, um das Flackern beim Sortieren von den Items wegzubekommen; keine Chance. Theoretisch soll DoubleBuffered ja helfen, praktisch ist es aber für die Katz! SuspendLayout/ResumeLayout bzw. BeginUpdate/EndUpdate bringen auch nichts. ControlStyles.AllPaintingInWmPaint | ControlStyles.UserPaint | ControlStyles.OptimizedDoubleBuffer, alles schon ausprobiert - Essig!
Das ListView flackert eben; ich habe noch nirgends eine brauchbare Lösung gefunden.

Liebe Grüße, _void

13.02.2007 - 20:21 Uhr

Hm, ich glaube sogar gar nicht mal, dass es mit den Generics steht oder fällt.
Die Sache ist ja, dass

listBox2.DataBindings.Add("DataSource", listBox1, "SelectedValue");

so erstmal nicht klappen kann, weil hinter dem SelectedValue ja eine Hashtable steht.
Ich habe versucht, dass über das Format-Event zu machen,


private void binding_Format(object sender, ConvertEventArgs e)
{
	e.Value = arrayVonDataItems((Hashtable)e.Value);
}

aber er sagt mir immer, dass die Datenquelle weder IList noch IListSource implementiert...

Ich weiß aber nicht, wie es sonst gehen soll.

_void

12.02.2007 - 14:41 Uhr

Hallo.

Es gab schonmal ein Thema zu Hashtable <-> Databinding.
Ich habe mir das durchgelesen, aber entweder Hashtables sind gänzlich ungeeigenet für DataBinding oder mein Problem ist einfach ein anderes. (Wobei ich mittlerweile der Überzeugung bin, dass ersteres auf jeden Fall zutrifft).

Wie auch immer. Mein Problem ist eigentlich ganz simpel:
Erstmal habe ich eine Hashtable. Die Hashtable hat als Keys Strings und als Values wieder Hashtables, die nach dem gleichen Schema gebaut sind.
Jezt habe ich noch eine oder mehrere ListBox(en), an die ich diese Hashtables binden will.

Ich dachte mir das folgendermaßen:
Da Hashtable ja nicht IList implementiert, habe ich mir eine Hilfsklasse gebaut.


public class ListControlDataItem<TData>
{
	private string text;
	private TData data;

	public ListControlDataItem(string text, TData data)
	{
		this.text = text;
		this.data = data;
	}

	public TData Data
	{
		get { return this.data; }
	}

	public string Text
	{
		get { return this.text; }
	}
}

Generisch deswegen, weil ich die Klasse auch noch für andere Dinge brauche.
Auf jeden Fall werden die Keys in das Text-Property und die Values (wieder Hashtables) in TData gekapselt.

Ich schreib's mal eben auf...


private List<ListControlDataItem<Hashtable>> arrayVonDataItems(Hashtable hashtable)
{
	List<ListControlDataItem<Hashtable>> list = new List<ListControlDataItem<Hashtable>>();

	foreach(DictionaryEntry e in hashtable)
	{
		list.Add(new ListControlDataItem(e.Key, e.Value));
	}
	return list;
}

Hab ich jetzt von Hand geschrieben, müsste aber stimmen...

Das Setzen der DataSource der ersten Listbox sieht dann quasi so aus:


private void setDataSource()
{
	listBox1.DisplayMember = "Text";
	listBox1.ValueMember = "Data";
	listBox1.DataSource = arrayVonDataItems(hashtable1); oder so
}

Klappt auch.

Aber wie binde ist jetzt die weiteren Listboxen an die verschachtelten Hashtables?

Ich sowas versucht:


private void bind()
{
	listBox2.DisplayMember = "Text";
	listBox2.ValueMember = "Data";
	listBox2.DataBindings.Add("DataSource", listBox1, "SelectedValue");
}

oder auch versucht mit den Format- und Parse-Events der Binding-Klasse zu arbeiten.
Aber nichts funktioniert. Er verheddert sich immer mit den Typkonvertierungen. Ist ja auch irgendwie klar, aber ich weiß nicht, wie ich ihm beibringen soll, dass das arrayVonDataItems((Hashtable)listBox1.SelectedValue) die DataSource der zweiten ListBox sein soll.

Ich hoffe, ich habe das Problem klar geschildert und hoffe auf Lösungsvorschläge. Die können auch durchaus ganz anders sein, als meiner, nur die bekloppte Hashtable-Verschachtelung ist leider fest.

Vielen Dank und liebe Grüße, _void

05.02.2007 - 10:58 Uhr

Auch ein sehr guter Artikel. Hilft.

Vielen Dank.

05.02.2007 - 09:55 Uhr

Danke.

Mit dem ConfigurationManager scheint das aber nicht viel zu tun zu haben(?)

04.02.2007 - 19:06 Uhr

Hallo Community.

Ich habe eigentlich kein konkretes Problem, ich habe nur keinen Plan, wie ich den ConfigurationManager handhaben soll, bzw. ob der für meine Zwecke überhaupt geeignet ist.
Habe schon ein bissche im Web gesucht, aber so richtig gefunden habe ich nichts.

Ist er denn dafür geeignet, einfache User-Einstellungen zu speichern.

Vielleicht hat ja jemand Lust, mir einen kurzen Abriss zu gegen, was der kann, was nicht und wie's im groben geht.

Vielen Dank. _void

30.01.2007 - 14:43 Uhr

Okay, lieb dass du das sagst, hatte wirklich ein bisschen das Gefühl.
Ist nämlich mein erstes Projekt, was ich in diesem Forum veröffentliche und ich weiß überhaupt nicht, wie das so ankommt.

Trotzdem natürlich: konstruktieve Kritik kann ich am besten gebrauchen!

30.01.2007 - 13:18 Uhr

Klar, habe ich schon gesehen.
Aber hast du dir meine InputBox überhaupt angeschaut? Es geht ja eben um das etwas andere Prinzip.
Wollte ich sowieso noch hinzufügen: als kleine Demonstration, wie einfach es ist eine neue InputBox zu erstellen, habe ich die VBInputBox mal nachprogrammiert.

30.01.2007 - 00:23 Uhr

Hallo zusammen.

Ich weiß nur zu gut, dass es kaum so ein ausgeleiertes Thema wie "InputBox in C#" gibt. Auch hier im Forum zuhauf diskutiert und desöfteren hierhin oder hierhin verwiesen.

Aber wirklich schön ist das nicht, oder?!
Ausreichend vielleicht, aber schön nicht wirklich.
Außerdem ist man an das feste Layout gebunden und muss sich für die nächstbeste Situation sowieso wieder eine neue InputBox schreiben (z.B. weil man noch eine Checkbox braucht oder so).

Deswegen habe ich mal versucht, eine recht günstige Realisierung für etwas "inputboxartiges" zu finden. Eine, wo man für eine komplett neue InputBox nur noch ein paar Zeilen Code für schreiben muss und trotzdem eine InputBox hat, die wie quick and dirty gecoded aussieht.

Wie gesagt, ich habe es versucht 😉. Ob es mir gelungen ist, sollt ihr (mit)entscheiden.
Ich stell euch die mal hier rein und würde euch bitten, mal drüber zu schauen.
Viele Augen sehen ja bekanntlich mehr als zwei.
Vielleicht findet ihr noch Fehler (hoffentlich nicht), vielleicht habt ihr Verbesserungsvorschläge (hoffentlich), oder sonst irgendeine Meinung dazu.

Würde mich über etwas Resonanz wirklich freuen!

Liebe Grüße, _void

19.01.2007 - 18:13 Uhr

Hi.
Danke für die Antworten und sorry, dass ich mich solange nicht gemeldet habe; keine Zeit gehabt.

Also.
@DaSchroeter:
Diese Variante hatte ich sogar vorher und habe auch überprüft, ob es da zu Fehlern kommt, aber es ändert sich leider gar nichts. Der Fehler muss woanders liegen (wahrscheinlich paddet er automatisch einen Rand dazu).

@Garby:
Super! Hier klappt's. NoPadding ist auch ganz wichtig. WordBreak auch.
Nur leider funktioniert WordBreak nur richtig, wenn man auch wirkliche Wörter, sprich durch Leerzeichen getrennt, eingibt. Ohne Leerzeichen klappt's halt nicht. Hier hilft dann das TextBoxControl-Flag.

Aber: erstellt er wirklich eine TextBox dafür? Für mich klingt das nach Aufwand. Klar, er muss die TextBox nicht zeichnen, aber ist ja doch aufwändiger als eine simple Kalkulation.

_void

15.01.2007 - 10:54 Uhr

Hallo.

Es gab schon einige Beiträge zu diesem Thema, aber anscheinend soll es bei mir nicht funktionieren...

Also, ich will einfach nur ein Label, das eine feste Breite und eine dynamische Höhe hat.
Kann ja irgendwie nicht so schwer sein, aber...:

Mit PreferredHeight komme ich nicht weiter, weil da nur der korrekte Wert zurückgegeben wird, wenn der Text richtige Zeilenumbrüche (\n) erhält - beim automatischen Zeilenumbruch bleibt PreferredHeight auf der Höhe von einer Zeile.

Mit MaximumSize und MinimumSize komme ich gar nicht weiter. Die scheinen irgendwie nur für die Optik zu sein und werden bei internen Berechnungen wohl nicht berücksichtigt.

Mit Graphics.MeasureString komme ich auch nicht zum Ziel, weil da einfach falsch gerechnet wird. Oder ich mach (hoffentlich) was falsch. Hier mal der Code des TextChanged-Ereignis':

			private void label_TextChanged(object sender, EventArgs e)
{
	Graphics gfx = this.label.CreateGraphics();
	SizeF ns = gfx.MeasureString(this.label.Text, this.label.Font, this.label.Width);
	int d = (int)Math.Round(ns.Height) - this.label.Height;

	this.label.Height += d;
	this.Height += d;
}

Keine Ahnung, wo da ein Fehler sein soll. Auf jeden Fall wird die Höhe nicht korrekt berechnet. Es ist so, dass er das Label irgendwann schon ein Stück vor dem Ende der Zeile vergrößtert, dann irgendwann bei der Hälfte und dieser Effekt schieb sich immer weiter nach vorne. Bei vierzig Zeilen oder so ist das Label dann schon um drei oder vier Zeilen zu groß. Scheinbar ist ihm der Width-Wert zu klein oder er hält sich nicht richtig dran, keine Ahnung.

Weiß da jemand Rat, findet den Fehler oder kennt noch andere Lösungsmöglichkeiten?

Vielen Dank und liebe Grüße, _void

15.01.2007 - 06:53 Uhr

Danke direkt mal.

Über diese Möglichkeit habe ich auch schon nachgedacht, habe das aber bisher abgelehnt, weil das Localization-System ja schon ganz schön schick ist. Außerdem wäre der Zugriff aus dem Quellcode irgendwie ...so gewurschtelt.
Wäre also wirklich möglich, stelle ich aber erstmal hinten an bis nichts anderes geht.

Fallen dir noch andere Lösungen ein?

Was ist mit dem Zugriff auf Sprachresourcen von .NET, bzw. dem OS?

_void

14.01.2007 - 20:53 Uhr

...weiß denn niemand eine Antwort?!

Alternativ ginge auch eine Beschreibung, wie man an einegbaute Resourcen des .NET-Frameworks kommt. Konkret brauche ich sogar nur die DialogResult-Strings (Yes, No, Cancel, ...) in der jeweils installierten Sprache. Weiß jemand, wie ich an diese Sprachpakete komme?
Noch schöner wäre natürlich direkt auf die Sprachen des OS' zuzugreifen, aber ich glaube, das ist utopisch, oder?!

Liebe Grüße, _void

12.01.2007 - 07:28 Uhr

Hallo.

Ich mach's kurz:
Weiß jemand, ob/wie ich all meine Kulturresourcen so einbetten kann, dass ich am Ende keine Satellitenassemblies habe, sondern alles in einer DLL?

Danke, _void

15.07.2006 - 16:20 Uhr

hi herbivore.
nettes Tool, wirklich!

was mir persönlich fehlt ist ein "find all matches"-Häkchen.
lässt sich das einbauen?

09.06.2006 - 22:27 Uhr

hm... das ist ja schade.
gibt es denn andere Möglichkeiten eine einfache Server-Client-Anwendung im lokalen Netzwerk zu realisieren?

09.06.2006 - 15:28 Uhr

Sorry für den push, aber ich bin sicher, dass jemand eine Lösung kennt!
Danke!

08.06.2006 - 13:16 Uhr

äh ja und jetzt?!
also, ich bin doch bestimmt nicht der einzige mit'nem Router, der mal einen Broatcast senden will, oder?!

was wäre denn ein nicht-natürlicher Weg?

Fab

08.06.2006 - 01:56 Uhr

ja, es hängt ein Router dazwischen und ein Broadcast über den Ping-Command kommt auch nicht durch...
öhm, was ist da zu machen?
in den Einstellungen des Routers habe ich nichts passendes gefunden (was aber nichts heißen muss).

Fab

07.06.2006 - 22:31 Uhr

hallo.

ich weiß, es gibt schon viel zu viele Beiträge zum Thema Broadcasts über UDP; umso schmachvoller ist es für mich, dass ich immernoch was nicht checke.

naja,
hier mein Code:


public Form1()
{
	InitializeComponent();

	this.listenerThread = new Thread(new ThreadStart(this.listen));
}

private void button1_Click(object sender, EventArgs e)
{
	this.listenerThread.Start();
}

private void listen()
{
	IPEndPoint ep = new IPEndPoint(IPAddress.Any, 5222);
	EndPoint senderep = (EndPoint)ep;

	this.listenerSocket = new Socket(ep.Address.AddressFamily, SocketType.Dgram, ProtocolType.Udp);
	this.listenerSocket.Bind(ep);

	byte[] buffer = new byte[BUFFERSIZE];
			
	while(true)
	{
		try
		{
			this.listenerSocket.ReceiveFrom(buffer, SocketFlags.None, ref senderep);
		}
		catch { return; }

		this.Invoke(this.DataReceivedDelegate, ((IPEndPoint)senderep).Address, Encoding.ASCII.GetString(buffer));
	}
}

das funktioniert auch alles solange, wie ich das ganze zu Testzwecken nur auf einem Rechner aufführe. Sobald ich aber versuche, den Client, der irgendeinen String sendet, auf einem anderen Rechner im lokalen Netzwerk laufen zu lassen, kommt nichts mehr an.

Weiß jemand, was ich da falsch gemacht habe?

Fab

26.05.2006 - 20:51 Uhr

danke schon mal.
ich werde mich mal nach Broadcast umhören.

26.05.2006 - 15:36 Uhr

hallo, ihr lieben.

folgendes:
ich habe irgendwo im lokalen Netzwerk einen Server-Rechner stehen, auf dem mein Server-Programm läuft. Und dazu ganz viele Clients, auf denen mein Client-Programm läuft.
Und ich wollte das Client-Programm so gestalten, dass der (dumme) Benutzer keinen Port oder IP-Adresse eingeben muss und auch der Administor nicht an jeden Client muss und da die Sachen eingeben muss.

Jetzt habe ich irgendwo gehört, dass es soetwas geben soll, wie ich schicke vom Client eine nicht-adressierte Anfrage über einen bestimmten Port ins Netz, die der Server empfangen kann und eine Nachricht mit der richtigen IP-Adresse zurückschicken kann.

Kennt dieses Verfahren jemand?
Oder kennt ihr vielleicht einfachere/schönere?

Fab

24.04.2006 - 09:29 Uhr

den Link hast du ja schon öfter mal angegeben 🙂
aber vielen Dank!
scheint ja nicht anders zu gehen.

21.04.2006 - 14:16 Uhr

danke euch beiden.

ich muss aber sagen, dass der ServiceLocator zwar ein ganz netes Dingen ist, die Sache aber eher komplizierter macht.

21.04.2006 - 12:57 Uhr

hallo,

ich weiß, dass es zu meiner Frage schon das ein oder andere Thema gab, aber irgendwie...

also, es darum, dass ich ein vor meinem Hauptfenster ein Login-Fenster habe; das ist ja erstmal nichts ungewöhnliches...

Application.Run(new FormLogin());

jetzt sind aber alle Login-Daten richtig, es wird eine Verbindung zu Server aufgebaut und dann soll auch das Hauptfenster aufgerufen werden.

ich erinnere mich, dass es im Framework 1.1 mal die Eigenschaft Application.MainWindow gab, die man da einfach auf die neue Form setzen konnte... gibt es aber im 2.0 nicht mehr.
wie ist das Problem hier am besten zu lösen.
(möglichst, dass nicht alle Fenster "gleichberechtigt" sind, sondern dass es schon ein Hauptfenster gibt - falls das überhaupt geht)

Vielen Dank für alle Antworten.

Fabian

21.04.2006 - 12:14 Uhr

hallo dr4g0n76
danke für deine Antwort.

als ich mir deine Lösung durchgelesen habe, musste ich feststellen, dass wir uns was verdächtig ähnliches haben einfallen lassen.
außer eben, dass ich keine Zahlen, sondern strings als Schlüssel benutze.

aber wie auch immer wüsste ich gerne, was es mit der Lokalisierung von .NET auf sich hat. wenn ich das richtig verstanden habe, brauche ich doch da auch simple Dateien für, in denen die ganzen Sprachen stehen, oder?!

21.04.2006 - 02:42 Uhr

hallo zusammen.

ich habe mal eine Frage.
und zwar will ich mein kleines Programm sprachunterstützt bauen - deutsch, englisch, usw. und man soll auch im Nachhinein über Dateien noch weitere Sprachen hinzufügen können.

Wie würdet ihr das am besten anstellen?

meine Idee war eine Xml-Datei mit festen Schlüsseln und sprachabhängigen Werten und so - klappt, aber irgendwie habe ich das Gefühl, dass das besser geht.

Bitte teilt mir eure Erfahrungen und Vorschläge mit.

Vielen Dank, Fabian