Laden...

Forenbeiträge von Totenmond Ingesamt 14 Beiträge

26.10.2006 - 17:25 Uhr

Original von Wax
...
Und ob eine Zeile mehr oder weniger im Code steckt, macht doch nun auch nichts mehr aus,
...

Yupp, das stimmt allerdings 🙂

Totenmond

25.10.2006 - 12:18 Uhr

Moinsen,

es geht darum, dass Fahrzeugdaten in einer Maske erfasst werden.
(Kennzeichen, Halter usw...)
Diese Daten sollen ohne Datenbank gespeichert werden.
Aufgrund von Import- und Export-Eigenschaften, sowie der
Strukturierung habe ich mich für XML entschieden.

Es kann also gut sein, dass die Daten auch mal in andere Anwendungen
(vielleicht Excel) importiert werden müssen.

Die Ausgabe im Browser wäre ja auch denkbar.

Totenmond

24.10.2006 - 13:33 Uhr

Moinsen,

habe eine Maske, in der Daten eingegeben werden.
Diese Daten werden in eine XML-Datei gespeichert.
Daten können hinzugefügt, aktualisiert und auch
gelöscht werden.
Bis hier kein Problem

Aber...
wenn die XML-Datei noch gar nicht existiert (z.B. beim allerersten Programmaufruf)
dann lege ich sie an. Auch das ist kein Problem, solange ich mit dem ersten Knoten
anfange.

In der Regel steht aber soetwas wie


<?xml version="1.0" standalone="yes"?>

in der ersten Zeile.
Aufgrund der Sonderzeichen habe ich Schwierigkeiten diesen Eintrag in die Datei
zu schreiben. Ist der Eintrag überhaupt zwingend nötig?

Danke
Totenmond

07.11.2005 - 19:42 Uhr

Moinsen,

habe hier gerade eine kleine Blockade. 🙂
Zwar weiss ich wie man While und auch Do-While Schleifen programmiert
und kenne auch den wesentlichen Unterschied der beiden Schleifen.
Aber genau da habe ich ein kleines Problemchen.

Eine Do-While Schleife wird ja mindestens einmal durchlaufen.
Erst nach einem Durchlauf wird geprüft, ob die Bedingung wahr
oder unwahr ist.

Mir fällt nur kein Beispiel ein, wo eine Do-While Schleife Sinn machen würde...

Als Zählerschleife setze ich eigentlich meist die For-Schleife ein.
Wofür aber braucht man die Do-While Schleife ? aufdemschlauchsteh

Danke
Totenmond

08.08.2005 - 13:19 Uhr

Moinsen,

hier mal etwas zum Herumprobieren:


        private void button1_Click(object sender, EventArgs e)
        {
            
            if (this.textBox1.Text == System.String.Empty)
            {
                MessageBox.Show("Textbox1 ist leer\\nDie anderen Textboxen bleiben gesperrt !");
            }
            else
            {
                MessageBox.Show("Textbox1 ist nicht leer\\nDie anderen Textboxen werden frei gegeben !");
                this.textBox2.Enabled = true;
                this.textBox3.Enabled = true;
                this.textBox4.Enabled = true;
            }
        }

Vier Textboxen untereinander.
Die erste ist frei gegeben, die anderen sind gesperrt.
Unter den vier Textboxen ist ein Button.
Wird der Butten geklickt, wird die Methode button1_Click aufgerufen.
Es wird geprüft, ob die Textbox1 leer ist.
Sofern nichts eingeben wurde wird die Nachricht der if-Anweisung ausgeben.
Ansonsten wird der else-Block durchlaufen und die Textboxen2 bis 4 freigegeben.

Versuche das Codebeispiel für Deine Belange anzupassen/umzuschreiben.
Viel Erfolg

Totenmond

06.08.2005 - 11:25 Uhr

Au Backe, wie peinlich X(

Da tippt man sich einen Wolf und sieht den Wald vor lauter Bäumen nicht mehr. 🤔

Hmmm...Betriebsblindheit oder wie hiess das doch gleich ? 😁

Totenmond

06.08.2005 - 11:18 Uhr

Hallo,

eigentlich habe ich heute gar keine wirkliche Frage, sondern möchte einfach mal eine 'ungünstige' Situation schildern.

Zur Zeit arbeite ich u.a. an einem Projekt, das mit Pfadangaben von Bildern in XML arbeitet. Das läuft nun folgend ab:
In einer Datenerfassungsmaske werden vom Anwender verschiedene Daten eingegeben.
Für jeden Datensatz kann der Anwender auch eine Grafik speichern. Das alles wird in einer XML Datei gespeichert.
Ich habe in meinem Projekt einen Ordner angelegt, der 'bilder' heisst. In diesem liegen die Grafiken.
Ich steuer den Ordner mit den Bildern u.a. über 'Application.StartupPath' an, damit zunächst ein 'Default-Bild'
angezeigt wird:


public string DefaultPic = Application.StartupPath + "\\bilder\\default.gif";

Das Laden der Bilder geschieht per FileDialog. Den Pfad dieses Dialoges speicher ich dann in der XML Datei.
Der Knoten sieht so aus:

<Pfad_01>C:\Dokumente und Einstellungen\Totenmond\Desktop\sw\bin\Debug\bilder\bild1.jpg</Pfad_01>

Wir zu sehen ist, wird der absolute Pfad zur Datei gesichert.

Wenn die Software nun aber auf einem zweiten Rechner installiert wird, wo der Installationspfad anders ist,
dann wäre die XML-Datei ja nicht zu gebrauchen, da die Bilder nicht gefunden werden.

Das ganze hat den Hintergrund, dass der Anwender beispielsweise per Notebook Daten erfasst und
sofort mittels der Software eingibt und sichert. Wenn der Anwender dann an seinen stationären Rechner
geht, so wäre es natürlich sinnvoll, wenn er seine XML Datei mit den aktuellen Daten auf den stationären
Rechner überspielen und nutzen könnte. Bis auf die Bilder ist das ja auch kein Problem, aber
durch die Pfade ist das natürlich schwierig.

Mir fällt zur Lösung dieses kleinen Dilemmas nur eine einzige Möglichkeit ein:

  1. Der Installationspfad wird von der Software vorgegeben und ist für den Anwender nicht änderbar.
  2. Beim Laden der Bilder wird der vorgebene Ordner 'bilder' geöffnet und es kann nicht aus
    dem Ordner heraus navigiert werden.

Beide Punkte sind ergonomisch gesehen absoluter Müll.
Der Anwender hat nicht mal mehr die Möglichkeit seinen Rechner nach Grafiken zu durchsuchen.
Die Bilder könnten ja durchaus nach einem vom Anwender erstellten System verteilt sein.

Irgendwie alles sehr ungüsntig...oder ?

Totenmond

05.08.2005 - 17:35 Uhr

Hallo,

Refactoring ist in der Tat eine tolle Sache.
Ich habe meinen gesamten C#-Code überarbeitet.

Ausserdem muss ich mich noch ganz herzlich bei Programmierhans bedanken !
Der Code ist echt 'geil' und funktioniert prima ! freu und thx

Totenmond

04.08.2005 - 20:00 Uhr

Hallo,

ich werde mir jetzt erstmal eine kleine Testumgebung erstellen und dann die ersten
Versuche fahren. Bisher hat mein Programm schon über 2.500 Zeilen Code und
natürlich genug Funktionen.
Durch die ganze Scrollerei ist es doch sehr unübersichtlich geworden. 🙂

Totenmond

04.08.2005 - 18:54 Uhr

Danke für den Link.
Sieht aber echt komplex aus.
Auf jeden Fall werde ich mich da mal durchwurschteln. 🙂

Totenmond

03.08.2005 - 13:07 Uhr

Hallo,

in eine Picturebox lade ich ein Bild.
Dieses Bild ist allerdings größer als die Picturebox.
Die Picturebox lässt sich aufgrund anderer Elemente nicht größer darstellen.

Das Bild läßt sich zwar über die Eigenschaft 'stretch' komplett in der Picturebox anzeigen
aber die Seitenverhältnisse sind natürlich dahin. So werden runde Köpfe zu Eierköpfen. 🙂

Die anderen Eigenschaften (Normal, AutoSize, CenterImage Zoom), die ich im Designer
für die Picturebox fand, brachten auch nicht das gewünschte Ergebnis.

Gibt es eine Einstellung/Eigenschaft zum Beibehalten des Seitenverhältnisses ?
...wobei das Bild natürlich ohne irgendwelche abgeschnittenen Teile in einer Picturebox
angezeigt werden soll...

Ach so, ich lade natürlich nicht nur ein Bild in die Picturebox. Es wird lediglich immer
nur ein Bild zur Zeit angezeigt. Die Bilder, die geladen werden haben alle
unterschiedliche Ausmaße.

Danke
Totenmond

02.08.2005 - 09:51 Uhr

Hallo Spiker,

Prinzipiell ist mit XML natürlich eine Menge möglich. 🙂

Hier mal ein Beispiel, wie eine XML-Datei erstellt wird
und verschiedene Knoten eingehängt werden:


XmlTextWriter XMLWriter = new XmlTextWriter(filename, null);
XMLWriter.Formatting = Formatting.Indented;
XMLWriter.WriteStartElement("root");		// root element
XMLWriter.WriteStartElement("knoten1");		// knoten1

XMLWriter.WriteStartElement("knoten2");		// knoten2
XMLWriter.WriteString(textbox.Text);		// knoten2 mit Daten einer textbox füllen
XMLWriter.WriteEndElement();				// knoten2 schliessen

XMLWriter.WriteEndElement();				// knoten1 schliessen
XMLWriter.WriteEndElement();				// root element schliessen

XMLWriter.Flush();
XMLWriter.Close();

Ich habe diesen Code nicht ausprobiert, aber es sollte
folgendes herauskommen:


<root>
	<knoten1>
		<knoten2>Inhalt der textbox</knoten2>
	</knoten1>
</root>

In der MSDN findest Du weitere Infos hier:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemxmlxmlwriterclasswriteattributestringtopic.asp

Du kannst auch jeden einzelnen Knoten eines XML-Dokuments ansprechen.


XmlNode xmlknoten = doc.SelectSingleNode("descendant::headline[color]");

Hierbei ist die Variable 'inhalt' ein Wert, nach dem der Knoten durchsucht wird.
Beispielsweise könntest Du Dir alle Daten in einem dataGrid oder einer ListView
anzeigen lassen. Klickt der Anwender auf einen der angezeigten Einträge, so könntest
Du bei dem KlickEvent den Wert an die Variable 'inhalt' übergeben.
Schau Dir auf jeden Fall die Thematik 'XPath' an !

Ein Beispiel zum direkten Ansprechen eines Knotens findest Du unter
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemxmlxmlnodeclassselectsinglenodetopic2.asp

Viel Erfolg
Totenmond

30.07.2005 - 15:30 Uhr

Meine Güte, was seid Ihr schnell hier.
Hat super geklappt.

Wir lesen uns bei meiner nächsten Frage. 🙂

Danke @ herbivore
Totenmond

P.S.: Wusste ich es doch: Pflanzen sind gesund ! gg

30.07.2005 - 15:18 Uhr

Hi,

ich möchte eine PictureBox mit einem Bild füllen. Prinzipiell ist das auch nicht das Problem. Das Bild passt sich der Größe der Picture Box
an und gut.

Da ich eine kleine Anwendung zum Speichern meiner ganzen alten Videocassetten schreibe, ist die Sache etwas umfangreicher und
komplizierter geworden als ich erst annahm.

Alle Videocassettendaten speicher ich per XML. Die XML Datei würde sich mit gespeicherten Bildern natürlich ohne Ende aufblähen.
Also dachte ich mir so, dass ich einfach nur den Pfad zum Bild in einem XML Knoten speicher. Das klappt auch schon.

Das Problem ist die Anzeige, also das Auslesen des Pfades. Ich lasse mir die Daten in einem datagrid anzeigen. Klicke ich auf eine Zelle,
so möchte ich, dass die PictureBox entsprechend des gespeicherten Pfades das Bild lädt.

Ich habe das mal mit einer Richtextbox ausprobiert.


richTextBox.Text = (dataGrid[row, 0]).ToString();

Hier wird der Inhalt des Datagrids der entsprechenden Zeile und Spalte per String an die Richtextbox übergeben.

Wie mache ich das für die PictureBox ?


pictureBox.  ??? = (dataGrid[row, 1]). ??? ;

Hinweise aller Art sind gern gesehen.

Totenmond