Laden...

Forenbeiträge von Flo80 Ingesamt 107 Beiträge

13.02.2008 - 10:55 Uhr

Natürlich kannst du ein Objekt in einer if-Abfrage instanzieren.
Du musst nur bedenken, dass es dann sein kann, dass das Objekt dann nicht existiert, wenn du irgendwo anders darauf zugreifen willst.
Zum Beispiel bei dir ist das bei


if ((flanke == true) && (matrix[row, column] == "0"))      // Negative Flanke
                            {
                                status = float.TryParse(timestamp[column].Substring(11, 2), out hours);
                                status = float.TryParse(timestamp[column].Substring(14, 2), out minutes);
                                status = float.TryParse(timestamp[column].Substring(17, 2), out seconds);
                                status = float.TryParse(timestamp[column].Substring(20, 6), out mseconds);
                                time = hours * 3600 + minutes * 60 + seconds + mseconds / 1000000;                  // Prozessdauer kalkulieren

                                process.Endtime = time - nullTime;                                                  // Endzeitpunkt in Objekt schreiben
                                process.Duration = process.Endtime - process.Starttime;                             // Prozessdauer in Objekt schreiben

                                flanke = false;
                            }


das Objekt überhaupt nicht existiert.
Also musst du das abfangen.


if(process != null)
{
process.Endtime = time - nullTime;                                                  // Endzeitpunkt in Objekt schreiben
                                process.Duration = process.Endtime - process.Starttime;                             // Prozessdauer in Objekt schreiben

}

Oder was hast du nun für Fehlermeldungen
Flo

13.02.2008 - 08:45 Uhr

Hi Beren,

du hast das Objekt process in der in der if-abfrage


if ((flanke==false) && (matrix[row, column]=="1"))         // Positive Flanke
                    



deklariert.
Deshalb ist es sie an der Stelle, an der du auf sie zugreifen willst nicht bekannt.
Du müsstest sie bei


if ((flanke == false) && (matrix[row, column] == "1") || (flanke==true) && (matrix[row, column]=="0"))


deklarieren.

mfg Flo

11.02.2008 - 14:35 Uhr

Ok, ich werde dann die Daten wohl per Hand zuweisen.

Danke für die Hilfe.

11.02.2008 - 14:10 Uhr

Mein Problem ist, dass sich ich nicht weiß wo ich das Invoke einsetzen soll.
Meine Programmstruktur sieht ungefähr so aus.


 public partial class Form1: Form
    {          
        private Daten myDaten = new Daten();
        
        public Form1()
        {
            InitializeComponent();
            // DataBindings anlegen
            this.textBox1.DataBindings.Add("Text",myDaten.DieDaten,"Spaltenname")
           
        }

         private void button1_Click(object sender, EventArgs e)
        {

            new System.Threading.Thread(new System.Threading.ThreadStart(myDaten.DatenLaden)).Start();      
        }

}

 public class Daten
{
         DataSet _myDataset;

        public Daten()
        {
               myDataSet = new DataSet();
               // Das DataSet initialisieren (Tabellen hinzufügen)
         }

        public DataSet DieDaten
      {
      get{return _myDataset; }
      set{_myDataset = value;}

      }
      public void DatenLaden()
      {
           // Laden die Daten und schreibe sie in das DataSet (dauert einige Zeit)
      }

}


11.02.2008 - 12:04 Uhr

Hallo zusammen,

ich habe ein kleines Thread-Problem. In meiner Anwendung habe ich eine Datenqelle (DataSet) an die Text-Eigenschaften von TextBoxen gebunden sind. Da das Laden der Datenquelle einige Zeit in Anspruch nimmt wollte ich das Laden in einen eigenen Thread auslagern. Nun habe ich aber keine Ahnung wie ich das realisieren könnte, ohne dass es kracht ("threadübergreifender Vorgang").
Gibt es bei DataBindings irgendein Event oder eine Methode, um die Aktualisierung mit Invoke wieder im Gui-Thread ausführen zu können?
Oder ist das der falsche Ansatz und ich muss die Daten per hand immer zuweisen?

Vielen Dank

MfG Flo

07.02.2008 - 14:50 Uhr

Dann mach ich so, dass ich der Form das DataSet übergeben, dort die Bindings anlege und beim Schließen das DataSet per Event an die Main-Form zurückgeben.

Flo

07.02.2008 - 13:34 Uhr

Ich habe eine kleine Designfrage.
Ich habe ein DataSet mit einigen DataTables und möchte die dort gespeicherten Daten mit DataBindings an TextBoxen binden und sie so anzeigen und manipulieren können.
Da der Platz der Main-Form nicht ausreicht brauche ich zusätzliche Forms.
Kann ich das so realisieren, dass ich ein neues Form erstelle und deren Textboxen als Eigenschaften implementiere und beim Instanzieren der Form die Bindung an die Daten hinzufüge und beim Schließen wirder lösche, oder ist das schlechter Stil?

Bsp.:


Form2 f2 = new Form2();
f2.TextBox.DataBindings.Add("Text",datatable,"Column");
f2.Show();


mfg Flo

18.10.2007 - 10:02 Uhr

Hallo zusammen,

ich habe ein kleines Designproblem.
Und zwar weiß ich nicht genau, wo ich ich in meiner Anwendung die Eingaben des Benutzer auf ihre Richtigkeit (Datentyp,Länge, etc.) überprüfe.
Mache ich das in der Form im Validating/Validated-Ereignis, lasse ich in der Textbox nur bestimmte Eingaben zu oder überprüfe ich den Wert im dazugehörigen Proberty meiner Datenklasse und löse ein Ereignis aus.
Welche der Möglichkeiten bzw. welche andere ist guter Programmierstil?

Vielen Dank

Mfg Flo

25.09.2007 - 14:25 Uhr

Hab das Problem nun erkannt.
Es lag daran, dass ich das Programm von einem Netzlaufwerk aus zu starten versucht habe.

Vom Netzlaufwerk starten

mfg Flo

20.09.2007 - 13:40 Uhr

Hallo zusammen,

ich rufe von einer DLL mehrere Funktionen auf.
Beim Aufruf bekomme ich eine SecurityException.
Kann das daran liegen, dass ich nicht die alle Rechte auf meinem PC habe (habe keine Adminrechte) oder meckert der Compiler generell wegen dem unsicheren Code?
Was kann ich da tun? Oder wo finde ich was zu dem Thema?

Die Funktionen habe ich so deklariert.


[DllImport(DLL_NAME)]
private static extern byte function();

Vielen Dank

mfg Flo

10.05.2007 - 17:44 Uhr

Meinst du Math.Sqrt() ?

mfg FLO

10.05.2007 - 17:42 Uhr

Eine Xml-Datei hat nur einen DocumentElement Knoten. Du kannst ja prüfen ob der schon vorhanden ist und nur wenn nicht einen erzeugen.
Die Infos dann als Unterknoten des Cocumentelement Knotens erzeugen.

mfg FLO

02.05.2007 - 17:02 Uhr

Ich suche einen kostenlosen Xml Schema Editor.
Hat da jemand eine Empfehlung?

mfg FLO

04.04.2007 - 12:26 Uhr

SQLConnection = Verbindung zur Datenbank
SQLCommand = Stellt die verschiedenen Commands bereit (Insert,Delete,Update)
SQLDataAdapter = Deint zum Transport von Datenbankdaten in ein DataSet bzw DataTable

mfg FLO

04.04.2007 - 12:21 Uhr

Eine neue Zeile kannst du meines Wissens nur in der letzten Zeile einfügen.
Wieso willst du die mittendrin einfügen?

mfg Flo

04.04.2007 - 10:47 Uhr

sry, hab vergessen zu erwähnen, dass du natürlich ein entsprechendes Update-Command-Objekt benötigst.

Wie das auszusehen hat findest du bestimmt im OpenBook.

mfg FLo

03.04.2007 - 13:26 Uhr

myDataAdapter.Update(DataTable);

mfg FLO

03.04.2007 - 12:31 Uhr

Durch das DataBindung wird nur der Eintrag in der enrsprechenden DataTable geändert.
Um diese Änderungen in die Datenbank zu schreiben musst du ein Datenbankupdate per Hand durchführen.
Vorgenhensweise: Datenbanktabelle in DataTable laden, TextBoxen mit Databinding an die DataTable binden, Änderungen machen und dann ein Datenbankupdate durchführen.

mfg flo

30.03.2007 - 12:32 Uhr

In den Defaulteinstellungen ist ein Remote-Zugriff auf die Datenbank nicht erlaubt, du musst den Remote-Zugriff , was wenn ich recht erinnere mit dem SQL Server Management Studio Express bequem geht.

nfg flo

29.03.2007 - 14:47 Uhr

Danke Dir ich habs:

mfg FLo

29.03.2007 - 14:35 Uhr

Wenn du eine DataTabel als DataSource eines DataGridViews hast werden die Änderungen die du im DataGridView machst im DataTable übernommen.
Du musst dann nur noch ein DatenBankUpdate machen.

Edit: Link anschauen, da steht alles drin

mfg FLO

29.03.2007 - 14:32 Uhr

Hi Leute,

ich such eine Auflistung der WindowsMessages mit der zugehörigen ID.
Bin schon ne Weile am suchen find aber nichts.
Hat zufällig einer nen Link parat oder weiß wo ich die Info findeß

Mfg FLo

29.03.2007 - 14:14 Uhr

Bekommst du ne Fehlermeldung?

Hast du dir den Link mal angeschaut, ich glaube dir fehlen noch ein paar Basics.

der Select-Befehl muss folgendermaßen aussehen "SELECT * FROM" und dann dewr Name der Tabelle,deren Daten ausgelesen werden sollen.
Dann erzeugst du einen DataAdapter mit dem Select-Befehl und dem Connection-Object als ÜbergabeParamter.
Dann die Tabelle MIt der Fill-Methode (DataTable als Übergabe) füllen und dann sollten die Daten in dem DataTabel stehen.

mfg Flo

29.03.2007 - 13:40 Uhr

Mit einem DataAdapter.

ungefähr so:



string selectbefehl;
selectbefehl = "SELECT * FROM Tabellenname";
OleDbDataAdapter myDataAdapter = new OleDbDataAdapter (selectbefehl ,con);
con.open();
myDataAdapter.Fill(neueTabelle);
con.Close;

schau dir mal das zu dem thema an

29.03.2007 - 12:39 Uhr

Lade die neue Datenbanktabelle in eine DataTable und setze die als DataSource für dein DataGridView.



DataTable neueTabelle = new DataTable();
// Tabelle füllen
myDataGridView.DataSource = neueTabelle;

mfg Flo

29.03.2007 - 10:53 Uhr

form1.WindowState = FormWindowState.Normal;

mfg Flo

26.03.2007 - 12:32 Uhr

Danke für die Antworten.

Da hab ich wieder was gelernt.

mfg FLO

23.03.2007 - 17:31 Uhr

Danke 🙂

23.03.2007 - 17:30 Uhr

Hi,

ich wollt beim einem eigenen UserControl ein Paar Eigenschaften erst zur Laufzeit setze.
Das wollte ich so lösen.


// Konstruktor
public MeinUserControl()
{
if(!DesignMode)
{
// Eigenschaften setzen
}
}

Visual Studio ruft diesen Code trozdem auf, wenn ich noch am designen bin.
Was einer was da schief geht?
Oder ist diese Eigenschaft für diesen Zweck ungeeignet?

Vielen Dank

Mfg Flo

23.03.2007 - 17:00 Uhr

Hi zusammen,

ich habe fogende Frage.

Gibt es irgendeine Richtlinie, wann main einen Windows.Form.Timer oder einen Threading.Timer verwendet?
Ist es egal welchen man verwendet?

Vielen Dank

mfg Flo

22.03.2007 - 18:06 Uhr

Setz mal den DefaultCellstyle vom DataGridView und nicht den vom RowTemplate .

mfg flo

22.03.2007 - 15:38 Uhr

Da fällt mir spontan auch nur visible als Eigenschaft ein.

mfg Flo

22.03.2007 - 00:10 Uhr

Mit dem Designer hat das nichts zu tun, das stellt du ja nur den Startwert ein.
Hast du mal das defaultcellstylechange event angemeldet oder den debugger angewendet, um zu sehn ob der neue cellstyle gesetzt wird.

mfg Flo

20.03.2007 - 17:07 Uhr

Hi zusammen,

ich habe eine Frage. Ich habe einen Windowsdienst zur Überwachung eines Gerätes programmiert. Bevor die Überwachung gestartet wird, soll erst noch geprüft werden, ob auch das Gerät initialisiert und bereit ist. Dazu habe ich einen Timer (Threading-Timer) verwendet, indem ich immer wieder das Gerät auf Bereitschaft abfrage, wenn das Gerät dann bereit ist wird der Timer abgrbrochen und die Überwachung gestartet. Aber der Timer beendet sich manchmal irgendwie von alleine, ohne dass er vom Code dazu veranlasst wurde!
Kennt jemand so ein Problem?
Oder weiß mir jemand rat?

mfg Flo

hat sich erledigt

20.03.2007 - 13:34 Uhr

Hättest noch etwas weiter lesen müssen.

Galileo Openbook

unter 25.2.3 Attribute zur Beeinflussung eines Benutzersteuerelements.

mfg Flo

20.03.2007 - 13:09 Uhr

Bei mit klappt das wunderbar. 🙂
Melde mal das DefaultCellStyle Event für dein DataGridView an.
Und lass dir im EventHandler eine MessageBox mit der aktullen Farbe ausgeben.
Oder geh mal mit Breakpoint und dem Debugger durch das Programm.

Vielleicht wird die Farbe irgendwie wieder zurückgesetzt.

mfg Flo

20.03.2007 - 12:56 Uhr

@PW-toXic



 public partial class MeineTextBox: TextBox 
    {
private bool _bToll;
private string _strDeinName;

[Browsable(true)] //Damit man es im Eigenschaftsfenster ändern kann
        [Description("Text")] // Die Beschreibung
        [Category("Meine Daten")] //Die Kategorie in das die Variable angezeigt wird
        public bool Toll
        {
            get { return this._bToll; }
            set { this._bToll= value; }
        }

[Browsable(true)] 
        [Description("Text")] 
        [Category("Meine Daten")] 
        public string DeinName
        {
            get { return this._strDeinName; }
            set { this._strDeinName= value; }
        }


}


Nomrmalerweise musst das Projekt erst erstellen, bevor das Control in der Toolbox auftaucht.
mfg Flo

20.03.2007 - 12:21 Uhr

und so funktioniert es nicht ?



private void cmdEdit_Click(object sender, EventArgs e)
            {
                //set all editable
                txtContent.ReadOnly = false;
                txtDate.ReadOnly = false;
                txtTitle.ReadOnly = false;

DataGridViewCellStyle myCellStyle = new DataGridViewCellStyle();
            myCellStyle.BackColor = Color.White;
            dgvLocations.DefaultCellStyle = myCellStyle; 

               
                cmdUpdate.Enabled = true;
                cmdEdit.Enabled = false;
            }  


mfg flo

20.03.2007 - 10:41 Uhr

Wo versuchts du die Farben zu verändern?

mfg FLO

20.03.2007 - 09:52 Uhr

Zum festellen ob Wochenende ist, hätte ich das spontan so gemacht:



if (DateTime.Now.DayOfWeek == DayOfWeek.Saturday
                || DateTime.Now.DayOfWeek == DayOfWeek.Sunday)
            {
                // :) Wochenende
            }
            else
            { 
                // :( Arbeit
            }

Aber ich glaub nicht, dass du über CultureInfo Informationen bekommst wann in der jeweiligen Kultur Wochende ist, das kannst du nur den Kalender umstellen.

mfg FLo

20.03.2007 - 09:10 Uhr

Schau dir mal die Klasse "DataView" für das Filtern der angezeigten Elemente an, mit der müsste das eigentlich gehn.

mfg FLo

20.03.2007 - 09:07 Uhr

Eigentlich müsste das funktionieren.

Poste mal deinen Code bitte.

Mfg FLo

19.03.2007 - 09:25 Uhr

Noodles hat dir doch geschrieben wie es geht.

"DataBinding"

Mfg FLo

19.03.2007 - 09:17 Uhr

hier ein kleines Beispiel



DataGridViewCellStyle myCellStyle = new DataGridViewCellStyle();
            myCellStyle.BackColor = Color.Red;
            dataGridView1.DefaultCellStyle = myCellStyle;

mfg Flo

16.03.2007 - 09:15 Uhr

schau dir mal das an

Umrechnung

mfg flo

15.03.2007 - 17:12 Uhr

Wenn du sie im Code erzeugst in Verbindung mit einem TableLayoutpanel, sollte die Anzahl eigentlich kein Problem sein.
Mir fällt spontan aber nicht anderes ein wie ich das sonst amchen würde, vieleicht hat ja noch jemand einen Geistesblitz.

mfg flo

15.03.2007 - 15:08 Uhr

Mit

  

    sw.WriteLine(liste);         

      


       

schreibst du den Namen des Objektes liste in die Datei.

Wenn du die Daten in die Datei schreiben willst, musst du ,wie marsgk schon sagte, die Elemente einzeln in Datei schreiben.

ungefähr so



foreach(string mystring in liste)
{
sw.WriteLine(mystring );         
}

15.03.2007 - 14:31 Uhr

da kannst auch jedes Byte in einer TextBox anzeigen lassen und diese an das entsprechnede Array-Element binden.

mfg Flo

15.03.2007 - 11:15 Uhr

Du musst die neue Zeile der Tabelle Hinzufügen!!



DataRow newRow = myTable.NewRow();
// Daten hinzufügen
myTable.Rows.Add(newRow );



mfg flo