Laden...

Forenbeiträge von amozi Ingesamt 120 Beiträge

28.09.2005 - 13:31 Uhr

Danke

28.09.2005 - 11:50 Uhr

Hallo,

ich habe wiedermal ein Konvertierungsproblem. Unzwar will ich ein String-Hex also "3F" in ein Byte (oder int) umwandeln. Es gibt Konvertierungen für float (Single.Parse(string, NumberStyles.HexNumber) aber für int habe ich keine gefunden.
Das geht auch nicht:

Convert.ToByte("3f")

Aber das geht:

Convert.ToByte("25")

Kann mir jemand helfen?

27.09.2005 - 13:38 Uhr

Hallo,

welche Möglichkeiten gibt es, einen Zahlenwert von einer Zeichenkette zu int zu konventieren.
Z.B. string s = "2"; als int zurückzugeben.
int i = (int) s; klappt nicht.

Danke

26.09.2005 - 16:01 Uhr

Thank you Svenson

26.09.2005 - 15:34 Uhr

Zuerstmal Danke Xggene,

aber ich kann mit NumberStyles nichts anfangen. Was muss ich da übergeben?

Single.Parse("0x459C4000",AllowHexSpecifier) funktioniert nicht.

26.09.2005 - 14:03 Uhr

Hallo,

ich wollte mal fragen, ob es eine Funktion in C# zur Verfügung gestellt wurde, um Hexidezimalzahlen in float umzuwandeln.
Ist es zum Beispeil möglich 0x459C4000 in float umzuwandeln.
Wenn ja, welche Funktion und in welchem namespace.

Danke

23.09.2005 - 12:11 Uhr

Danke

23.09.2005 - 12:02 Uhr

Hi herbivore,

ist habe das Problem beseitigt. Queue ist in Ordnung. Ich weiß aber nicht warum dies als Fehler angezeigt wurde.
Unzwar befand sich in der do-Schleife noch dieser Code:

if(i!=0)
{
this.OdtAnzahl[0+i] = (int)rmsg2.data[3];
this.PidNummer[0+i] = (int)rmsg2.data[4];
}

Diese Variablen hatte ich deklariert aber um dynamisch zu vergrößern nicht erzeugt. Jetzt habe ich sie mit einer Größe von 100 erzeugt. Normalerweise wäre es besser sie dynamisch zu erweitern.
Aber ich weiß nicht, wie ich das hinkriege.

23.09.2005 - 11:51 Uhr

Das weiß ich ja auch nicht. Beim Durchlaufen der Schleife gibt es kein Problem. Bei folgenden Durchläufen tritt der Fehler auf, dass diese Stelle "this.syncSndQueue.Enqueue(msg);" eine Objektinstanz braucht.

23.09.2005 - 11:44 Uhr
do
{
smsg2.channel = this.projektspeicher.canChannel;
smsg2.id      = this.projektspeicher.SendeID;
smsg2.dlc	  = 8;
smsg2.data[0] = 0x14;
smsg2.data[1] = 0;
smsg2.data[2] = (byte)i;
this.canManager.SendCanMessage(smsg2);
this.canManager.ReceiveCanMessage(11,out rmsg2);
i++;
}while(rmsg2.data[3]!=0);

Das ist die Schleife wo smsg2 nach jedem Durchlauf seinen Namen ändern muss.
und die Funktion SendCanMessage()

public void SendCanMessage(sndCanMsg msg)
{
this.syncSndQueue.Enqueue(msg);
this.sendThread = new Thread(new ThreadStart(this.SndThreadData));
this.sendThread.Start();
}

Wie kann ich mein Problem beseitigen? Bitte um Unterstützung. Danke

23.09.2005 - 11:26 Uhr

Hi herbivore,

das man ich ja genau, ich will keine neue Variable erzeugen.
Die alte Variable befindet sich in einer Schleife und je nach Schleifendurchlauf sollte diese Variable seinen Namen ändern (Schleifendurchlauf beliebig). Damit ich bei der Weiterverarbeitung keine Probleme bekommen. Diese Namen werden nämlich in einer Warteschlange gestellt und dort müssen sie sich, vom Namen her, unterscheiden.

23.09.2005 - 11:07 Uhr

Hi herbivore,

ich meine den Namen der Instanz also der Variablen. Frag nicht warum, weil ich ansonsten im Code vieles ändern muss. Wenn so was möglich ist, kann ich viel Arbeit sparen.

23.09.2005 - 11:00 Uhr

Hallo,

ich wollte fragen, welche Möglichkeiten man hat, ohne eine neue Instanz einer Klasse zu erzeugen, den bestehenden Instanznamen der Klasse zu ändern. Ist so was möglich. Z.B. Erweiterungen des Klassennamens zu bilden.

16.09.2005 - 23:51 Uhr

Hallo,

ich weiß das in diesem Forum tausende Fragen und Hinweise über DataGrid-Updaten gibt, aber eine passende Antwort habe ich nicht gefunden.

Ich habe ein DataGrid und lade es mit einer DataTable. Es wird noch mit DataGridTableStyles bearbeitet und geplotet. Jetzt ist die Frage, welche simple Möglichkeiten gibt, dass DataGrid mit neuen Werten der neu geholten DataTable zu aktualisieren. (Funktionen fürs Holen der DataTable vorhanden)

private void buttonDatenAktualisieren_Click(object sender, System.EventArgs e)
{
dataTableSig = this.dbManager.dbGetTabelleCopy("Signale");
// funktioniert nicht
this.dataGridSignale.Update();
}

Danke

16.09.2005 - 11:05 Uhr

also ich hab schon DataGridTextBoxColumns aber die sind schreibgeschützt. Es gibt nur eine Column die nicht schreibgeschützt ist und die ist DataGridBoolColumn, worauf ich auch zugreifen möchte. Kann man davon was verwenden für meine Application.

16.09.2005 - 10:10 Uhr

möchte jemand noch dazu Stellung nehmen, gibt es interessante Ideen von euch..
Nicht vergessen, mit dem gleichen Event!!

15.09.2005 - 12:55 Uhr

Danke

15.09.2005 - 10:14 Uhr

GutenMorgen,

was ich kurz fragen wollte ist, dass ich mir ein Event aus CurrencyManager.ItemChanged gebastelt habe und fragen möchte, wie man hinkriegt, dass dieses Event auch nur bei Änderungen der Cell ohne Cellwechsel läuft. Zur Zeit muss man nämlich damit dies ausgelöst wird einen Cellwechsel durchführen. Wie gesagt ich möchte dieses Event benutzen!! Gibt es eine Eigenschaft oder sowas?

Danke

14.09.2005 - 22:29 Uhr

Sieht gut aus. Danke

14.09.2005 - 22:12 Uhr

Ist nicht möglich, weil es mir freigestellt wird und wir haben 1.1. Row-ReadOnly gibt's auch nicht oder?

14.09.2005 - 21:55 Uhr

gibt es dazu keine Idee mehr...
irgendwelche Hinweise, Überladungen oder so...

14.09.2005 - 15:26 Uhr

Menü --> Erstellen
Unterpunkt --> "Projektname" erstellen

14.09.2005 - 14:22 Uhr

du kannst mir glauben ich nehme deine Tipps zu Herzen. Wenn man in einer Sackgasse landet versucht man alle Vorschläge nachzugehen.

Aber ich weiß vielleicht voran es liegen kann. Unzwar habe ich das 4. Buch aus der Bib ausgeliehen und indem ist mir jetzt aufgefallen, dass die Spalten schon bei der Anbindung ans DataGrid mit Werten gefüllt sein müssen. Heißt es das nur eine Anzeige der CB ermöglicht wird und Steuerung nicht möglich ist.... oder was?

Ich arbeite eigentlich mit einer Kopie von DataTable d.h. die zusätzliche CheckBox-Spalte wird auf Copy-DataTable erstellt und wird später auch nicht in die Datenbank übernommen. Ich will anhand dieser Daten aus DB die Checkboxen auswählen und dann wo "checked" ist, die relevanten kopierten Zellen auslesen. Das wars eigentlich. Aber ob das geht.....?

(beim Debuggenverfahren ist alles in Ordnung)

14.09.2005 - 11:44 Uhr

Hi Leute,

ich bin jetzt 3,5 Stunden dabei um ein Problem zu lösen. Wenn man die vorherigen Tage mitzählt bis ich einen Ansatz dazu hatte, sogar auch mehrere Tage. Ich möchte mich auch bei den Unterstützern hier im Forum bedanken. Ich bitte nur das ihr den unten dargestellten Code mal auf Richtigkeit überprüft.

Unzwar geht es darum, dass ich ein DataGrid habe und dieses via DataTable fülle. Bevor die Aktion durchgeführt wird, wird noch an die letzte Stelle der DataTable eine Spalte(bool) drangehängt und für die Visualisierung die Spalten umgeordnet. Bis dahin alles gut.

Die letzte Spalte der DataTable steht jetzt am Anfang und presentiert CheckBoxen. Soweit auch gut. Aber beim MouseUp_Event wo die Abfrage der CheckBoxen durchgeführt werden soll, wird die If-Anweisung "if (val.GetType()==typeof(bool))"
nicht durchlaufen. Bevor ich alles schriftlich wiedergebe hier der Code:

dataTableSig = this.dbManager.dbGetTabelleCopy("Signale");

DataColumn dataColumn = new DataColumn("Auswahl",System.Type.GetType("System.Boolean"));
dataTableSig.Columns.Add(dataColumn);
// Ans DataGrid hängen
this.dataGridSignale.DataSource = dataTableSig;
//this.dataGridSignale.DataMember = "Signale";

		// Formation der Signal-Tabelle  
		DataGridTableStyle ts = new DataGridTableStyle();  
		ts.MappingName = "Signale";  
        // Formation der Spalte "Auswahl" als Checkbox  
		DataGridBoolColumn dc1 = new DataGridBoolColumn();  
		dc1.MappingName = "Auswahl";  
		dc1.HeaderText = "Auswahl";  
		//dc1.AllowNull = false;  
		dc1.FalseValue = false;  
		dc1.TrueValue = true;  
        // Formation der Spalte "Adresse"  
		DataGridTextBoxColumn dc2 = new DataGridTextBoxColumn();  
		dc2.MappingName = "Adresse";  
		dc2.HeaderText = "Adresse";  
		dc2.ReadOnly = true;  
		// Formation der Spalte "Name"  
		DataGridTextBoxColumn dc3 = new DataGridTextBoxColumn();  
		dc3.MappingName = "Name";  
		dc3.HeaderText = "Name";  
		dc3.ReadOnly = true;  
        dc3.Width = 100;  
		// Formation der Spalte "Beschreibung"  
		DataGridTextBoxColumn dc4 = new DataGridTextBoxColumn();  
        dc4.MappingName = "Beschreibung";  
		dc4.HeaderText = "Beschreibung";  
		dc4.ReadOnly = true;  
		dc4.Width = 150;  
		// Formation der Spalte "Maximum"  
		DataGridTextBoxColumn dc5 = new DataGridTextBoxColumn();  
		dc5.MappingName = "Maximum";  
		dc5.HeaderText = "Maximum";  
		dc5.ReadOnly = true;  
		// Formation der Spalte "Maximum"  
		DataGridTextBoxColumn dc6 = new DataGridTextBoxColumn();  
		dc6.MappingName = "Minimum";  
		dc6.HeaderText = "Minimum";  
		dc6.ReadOnly = true;  
		/**/  
		DataGridTextBoxColumn dc7 = new DataGridTextBoxColumn();  
		dc7.MappingName = "Einheit";  
		dc7.HeaderText = "Einheit";  
		dc7.ReadOnly = true;  
	    DataGridTextBoxColumn dc8 = new DataGridTextBoxColumn();  
		dc8.MappingName = "Datentyp";  
		dc8.HeaderText = "Datentyp";  
		dc8.ReadOnly = true;  
        // Zusammensetzung der Darstellung  
	    ts.GridColumnStyles.Add(dc1);  
		ts.GridColumnStyles.Add(dc2);  
		ts.GridColumnStyles.Add(dc3);  
		ts.GridColumnStyles.Add(dc4);  
		ts.GridColumnStyles.Add(dc5);  
		ts.GridColumnStyles.Add(dc6);  
		ts.GridColumnStyles.Add(dc7);  
		ts.GridColumnStyles.Add(dc8);  
		this.dataGridSignale.TableStyles.Add(ts);  

private void dataGridSignale_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e)
{
DataGrid.HitTestInfo hti = this.dataGridSignale.HitTest(e.X, e.Y);
CurrencyManager cm = null;
cm = (CurrencyManager)this.dataGridSignale.BindingContext[this.dataGridSignale.DataSource];
string dataMemberSpecial = string.Empty;
if(cm.Position>-1)
{
DataRowView dv = cm.Current as DataRowView;
if(dv != null)
{
DataRow rw = dv.Row;
DataGridColumnStyle dgcs = this.dataGridSignale.TableStyles[0].GridColumnStyles[hti.Column];
string columnName = dgcs.MappingName;
int indexOnTable = rw.Table.Columns.IndexOf(columnName); Console.WriteLine(indexOnTable);
Console.WriteLine(hti.Column);
object val=this.dataGridSignale[hti.Row,indexOnTable];
if (val.GetType()==typeof(bool))
{
if ((bool)val)
{
System.Diagnostics.Debug.WriteLine("Ist gesetzt");
else
{
System.Diagnostics.Debug.WriteLine("Ist nicht gesetzt");
}
}
else
{ System.Diagnostics.Debug.WriteLine("Dies ist kein bool-Feld");
}

   }  

}

Ach ja eine Fehlermeldung oder die Meldung "Dies ist kein bool-Feld" tritt nicht ein.
Das Programm läuft...

Danke

14.09.2005 - 01:06 Uhr

Tschüss. Gute Nacht 🙂

14.09.2005 - 00:58 Uhr

Programmierhans,

ich weiß nicht was ich sagen soll, vielen Dank für den Code. Das würde keiner machen als du. Leider würde ich gerne weiter machen aber ich muss meinem Prof morgenfrüh über den Fortschritt meiner Diplomarbeit informieren und deswegen werde ich mal jetzt schlafen gehen, mit der Hoffnung das ich morgen das hinkriege.
Vielleicht nur noch dazu: Soweit ich verstanden habe wird dein Code im MouseUp-Event ab der hti-Instanzierung eingesetzt. Oder?

Nochmals DANKE 🙂 👍

13.09.2005 - 23:55 Uhr

was meinst du ist es mit CurrencyManager noch einfacher zu handhaben.
Oder würde auch bei dem das Problem mit dem Nullbasierten Index auftreten. Deine Vorschläge hatte ich heute zum größten Teil implementiert gehabt.

Ich habe diese Variante nur deswegen eingesetzt damit man gleich ein Ereignis bei einem Mouse-Klick auslöst. Bei deinem Vorschlag hätte man die Zelle wechseln müssen um Event auszulösen.

Außerdem kann man die Zustände auf zwei reduzieren. Alspo auch bei der ersten Anzeige des DataGrids die CheckBoxen false gesetzt haben und nicht mit ausgeblendeten Häckchen.

13.09.2005 - 23:13 Uhr

Und jetzt habe ich die Bestätigung dank deine Hilfe --> Dies ist kein bool-Feld

Aber wiesooooo?

Ich habe die erste Spalte als DataGridBoolColumn implementiert und dort befinden sich die Checkboxen. Ooh man Ooh man seit heute morgen bin ich bei einer Scheißabfrage gesetzt oder nicht. Krieg die Krise

13.09.2005 - 23:03 Uhr

Sorry ich habe deinen Code vorhin nicht gesehen. Ich muss mal das Ganze ausprobieren. Ich melde mich

13.09.2005 - 22:39 Uhr

Programmierhans,

Ja das ist er. Bis dahin komm ich ja. Ich weiß aber nicht wie ich den Wert abfragen soll.

13.09.2005 - 21:59 Uhr

Hey Leute ich komme wirklich nicht weiter.
Suchbegriffe würden auch reichen. Ich stehe auf einem Schlauch weiß nicht mehr weiter

13.09.2005 - 19:34 Uhr

Hi Leute,

wiedermal ich. Zuerst möchte ich vornerab mal sagen, dass ich für diese Frage im Netz keine Infos bekommen habe(FAQ,usw.) und deswegen hier poste.

Unzwar habe ich ein DataGrid indem ich es mit einer DataTable lade. Außerdem habe ich im DataGrid ein DataGridBoolColumn um Checkboxen darzustellen.
Mir geht's jetzt nur darum, diese CheckBoxen bei einem MouseUp-Event auszu-
werten. Aber das tut nicht...

Hiermal den Code:
private void dataGrid_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e)
{
DataGrid.HitTestInfo hti = this.dataGrid.HitTest(e.X, e.Y);
try
{
if( hti.Type == DataGrid.HitTestType.Cell && hti.Column == myCheckBoxCol)
{
if(dataGrid[hti.Row,hti.Column].Equals(true))
// das geht auch nicht: if(true==(bool)dataGrid[hti.Row,hti.Column])
{
Console.WriteLine("es klappt endlich");
} }
}
catch(Exception ex)
{
MessageBox.Show(ex.ToString());
}
}

Nochwas: Wie kann man die drei Zustände dieser Column auf zwei (false,true)reduzieren?

Danke vielmals.......

13.09.2005 - 13:05 Uhr

Danke Cord Worthmann

13.09.2005 - 11:46 Uhr

Ich weiß, dass ich ab und zu vielleicht blöde Fragen stelle. Aber das ist nicht mein Gebiet brauch für meine Diplomarbeit. Wenn du vorlesen würdest wäre ich dankbar.

Noch was: Hast du mal das Thema "DataTable-Feld ReadOnly" angeschaut. Da habe ich dir was geschrieben. Natürlich wenn du möchtest

13.09.2005 - 10:45 Uhr

eigentlich nur Syntaxfehler.
Sollte nach Object sender eine ")" oder ";" kommen. Ich glaube gesamte Ausdruck ist nicht in Ordnung.

cm.ItemChanged += cm_ItemChanged(Object sender, ItemChancedEventArgs e);

13.09.2005 - 09:55 Uhr

Programmierhans,

die gleiche Frage ist auch bei mir aufgetreten wie kiwi_girl erwähnt hat.

Und dazu deinen Vorschlag befolgt. Zusätzlich einen Code von dir zu diesem Thema im Forum gefunden.

CurrencyManager cm = (CurrencyManager) this.BindingContext[dtg.DataSource];
cm.ItemChanged += cm_ItemChanged(Object sender, ItemChangedEventArgs e);

Das meckert unheimlich...

13.09.2005 - 08:46 Uhr

Soweit so gut. Aber wenn ich eine Spalte habe die nicht ReadOnly ist und nach einer bestimmten Abfrage nur die Zeile, wo die Abfrage stattgefungden ist, ReadOnly setzen möchte, ist es ein Feld-ReadOnly. D.h.: Das Feld der abgefragten Zeile wird von ReadOnly = false auf ReadOnly = true gesetzt, die anderen bleiben ReadOnly=false.
Oder denke ich da völlig falsch.

12.09.2005 - 16:08 Uhr

Hallo Leute hab ihr keine Idee. Ich habe nämlich keine....

12.09.2005 - 14:41 Uhr

weißt jemand wie man generell ein einzelnes Feld einer Tabelle ReadOnly setzen kann.
Ich verwende wegen Umordnung der DataTable 'DataGridTableStyle'. Da ist auch bei DataGridTextBoxColumn nur spaltenweise ReadOnly möglich.

Danke

12.09.2005 - 10:58 Uhr

Danke. Habe beim Auswählen des Forums nicht richtig hingeschaut.

12.09.2005 - 10:40 Uhr

Hi,

unzwar habe ich in einem Buch eine Darstellung von einem DataGrid mit Ausrufezeichen in der linken Maskenspalte des DataGrids gesehen. Nach Beschreibung sollen diese bei einer fehlgeschlagenen Datensatzänderung erscheinen.
Kennt jemand die Eigenschaft dazu bzw. kann man das überhaupt steuern. Ich konnte nichts finden.

Danke

11.09.2005 - 19:09 Uhr

habe auch damit realisiert. Danke.

Frage: Wenn man jetzt im DataGrid was ändert (bzw. DataTable) muss man die Events von DataGrid oder DataTable einsetzen?

11.09.2005 - 16:47 Uhr

Es wird zur Designzeit bestimmt wie die Spalten angeordnet werden müssen. Ich kuck mal nach.

11.09.2005 - 15:30 Uhr

ich will nicht die Daten sortieren, sondern nur die neue Spalte, die ich an die letzte Stelle der DataTable hintendranhänge, an der ersten Stelle im DataGrid visualisieren. Das ist mein Problem.


DataColumn dataColumn = new DataColumn("Auswahl",System.Type.GetType
                                        ("System.Boolean));
dataTable.Columns.Add(dataColumn);
this.dataGrid.DataSource = dataTable;
[CODE]

Und ich komme nicht weiter...
11.09.2005 - 15:26 Uhr

ich will nicht die Daten sortieren, sondern die neue Spalte, die ich an die DataTable hinten dranhänge, im DataGrid an der ersten Stelle visualisieren. Das ist mein Problem.


DataColumn dataColumn = new DataColumn("Auswahl",System.Type.GetType 
                                        ("System.Boolean")); 
dataTable.Columns.Add(dataColumn);
this.dataGrid.DataSource = dataTable;

Und komme nicht weiter.
11.09.2005 - 15:14 Uhr

Weil ich die Tabelle im DataGrid visualisieren möchte. Eine weitere Möglichkeit soll DataView bieten, indem man die Spalten sortieren kann. Aber bis jetzt habe ich kein Code dazu gefunden. Die letzte Spalte sollte an den Anfang einfügt werden. Kennt jemand sich damit aus.

11.09.2005 - 01:57 Uhr

Hallo,

wollte kurz mal nachfragen, ob man eine neu erzeugte DataColumn an den Anfang einer bestehenden DataTable legen kann. Die Add-Methode fügt sie an die letzte Stelle. Würde sehr hilfreich sein wenn ich Voschläge bekommen könnte.

Danke

10.09.2005 - 21:27 Uhr

Hi,

weißt einer, wie man eine neue Spalte an die Position[0] einer vorhandenen Tabelle
zuweisen kann. Ich weiß, dass dies für eine neue Zeile möglich ist (InsertAt). Aber bei einer Spalte habe ich bis jetzt nichts gefunden.

DataColumn dataColumn = new DataColumn("Auswahl",System.Type.GetType("System.Boolean")); //neu
dataTable.Columns.Add(dataColumn);

Mit Add-Methode wird an die letzte Position gesetzt.

Hat jemand dazu ne Idee. Danke

10.09.2005 - 16:22 Uhr

Danke für die umfangreiche Information.

Das Problem habe ich gestern gelöst, indem ich, wie du schon beschrieben hast, das erneute Erzeugen von "dataGridSignale" aufgehoben habe. Nochmals thank you.