Laden...

Forenbeiträge von hurricane Ingesamt 379 Beiträge

12.10.2005 - 11:42 Uhr

Also ich habe den Code bei mir eingefügt und es steht alles ordentlich untereinander...

ciao Anke

12.10.2005 - 11:38 Uhr

Ich könnte auch noch LiquidIcon XP empfehlen, ist ein echt nettes Tool 😁

http://www.x2studios.com/

12.10.2005 - 11:34 Uhr

Probier es mal damit:


protected override void OnActivated(EventArgs e)
{
	this.ShowInTaskbar = false;  //Hides the the hide from the taskbar
	this.Hide(); //Hides from the Alt -Tab when used with the above code

	base.OnActivated (e);
}

Sollte dein Problem eigentlich lösen...

Schau auch mal hier...
http://www.experts-exchange.com/Programming/Programming_Languages/C_Sharp/Q_20868611.html

ciao Anke

12.10.2005 - 11:22 Uhr

Hallo Merkur76,

du kannst es ja auch mal bei www.codeproject.com versuchen 😉

12.10.2005 - 09:05 Uhr

Ich mußte selber vor kurzem eine Tabelle drucken und exportieren und ich kann nur sagen, das es einfacher ist eine Tabelle zu exportieren...

Denn beim Export mußt du nicht drauf achten, ob deine Tabelle auf eine Seite passt oder nicht... Der Export ist also ziemlich easy 😁

Du könntest z.B. auch den Tabelleninhalt einfach in die Zwischenablage tun und der Anwender muss dann halt selbst den Inhalt in Excel oder so einfügen. Ansonsten gibt es unter codeproject.com ein Beispiel wie du eine XLS-Datei erstellst...

ciao Anke

12.10.2005 - 09:01 Uhr

Vielleicht kannst du ja auf LostFocus reagieren, denn wenn der Desktop angezeigt wird, müßte ja deine Form den Fokus verlieren, oder?

07.10.2005 - 07:51 Uhr

Wenn du den string auh von ausserhalb erreichen möchtest, musst du ihn halt vorher deklarieren...


string url = string.Empty;

foreach(ListViewItem item in this.lvw.SelectedItems)
{
     // mache irgendwas mit Item, z.B. URL auslesen
     url = item.Text;
}

ist zwar ne foreach-Schleife, aber wenn du eingestellt hast, das man in der ListView nur jeweils ein Element markieren kann, dann geht er ja eh nur einmal durch 😉

06.10.2005 - 16:10 Uhr

Du musst einfach auf das SelectedIndexChanged der ListView reagieren.

Dann durchläuft du die selektierten Items und kannst dies auswerten:

foreach(ListViewItem item in this.lvw.SelectedItems)
{
// mache irgendwas mit Item, z.B. URL auslesen
string url = item.Text;
}

ciao Anke

06.10.2005 - 16:06 Uhr

Also Stammkunden ist eine Eigenschaft, weil sie halt als Eigenschaft für den Kunden gesetzt wird.

AddGuthaben(decimal) ist eine Methode weil sie nicht einfach nur ein Guthaben setzt, sondern ein bestehendes Guthaben mit dem neuen Wert addiert. Ausserdem wird das Guthaben nur bei Stammkunden gesetzt.
Wenn es für Guthaben ein SET geben würde, anstatt der MEthode, würde man sich ja wundern, warum nachher ein falscher Wert da steht.

Also angenommen:

momentanes Guthaben 2,00 € + 1,00 € = 3,00 €

Wenn du es so machen würdest

kunde.guthaben = 1 dann wäre das neue Guthaben 1, es muss aber das bestehende + das neue sein.

06.10.2005 - 15:29 Uhr

@Anfänger


// Eigenschaften:

public bool stammKunde <-- Warum hier, was macht er hier 
{
get {return(_stammKunde); }
set {_stammKunde = value; }
}

public decimal guthaben // ReadOnly
{
    get {return(_guthaben); }
}

Er stellt nach Außen eine Eigenschaft namens StammKunde und eine Namens GUthaben zur Verfügung.
Wenn du dir nun eine Instanz von CKunde erstellst, dann kannst du auf diese Eigenschaften zugreifen:


CKunde kunde = new CKunde("Herr", "Meyer");


// Setzt Herrn Meyer als Stammkunde:
kunde.stammKunde = true;


// Ermittelt das Guthaben des Kunden
decimal guthaben = kunde.guthaben
// Das Guthaben kann jedoch nicht gesetzt werden, da es nur ein GET hat.
// kunde.guthaben = "10"; würde fehlschlagen, das ein SET nicht erlaubt ist.


// Ein Guthaben würde folgendermaßen hinzugefügt werden:
kunde.addGuthaben("10")

Ist der Kunde jedoch kein Stammkunde würde das Guthaben auch nicht hinzugefügt werden, da das nur für Stammkunden geht (if (stammKunde) _guthaben += betrag😉

Ich hoffe das hat dir ein wenig weitergeholfen

ciao Anke

06.10.2005 - 15:23 Uhr

Hallo Torkel,

du musst den Pfad ja nicht ausgeben, ich dachte das wolltest du so:

also auf einer Zeile müsste der Name und das Bild sein, dann kommt eine neue Zeile... usw. bis die Tabelle komplett durch ist.

Du musst einfach bei:


// Füllt das ListViewItem mit Werten.
item.Text = row["url"].ToString();

Das zu weisen was du möchtest 😉

06.10.2005 - 14:55 Uhr

Um das Beispiel von svenson aufzugreifen:

circle.Color = red;

Hier würde man das SET-Property Color von circle benutzen.

während man hier.

Color col = circle.Color;

das GET-Property verwendet.

Das eine ist also zum Setzen eines Wertes (SET) und das andere zum Ermitteln eines Wertes (GET).

06.10.2005 - 14:52 Uhr

Den Pfad des Bildes musst du einer ImageList zuweisen:


Bitmap bmp = new Bitmap(row["url"].ToString());

item.ImageIndex = this.imlBitmaps.Images.Add(bmp, Color.Transparent);

bzw. geht auch:


item.ImageIndex = this.imlBitmaps.Images.Add(new Bitmap(row["url"].ToString()), Color.Transparent);

wobei row["url"].ToString() der Dateiname sein soll...

Die ImageList musst du vorher noch der ListView zuweisen (bei den Eigenschaften müßte irgendwo ImageList stehen...).

Ich hoffe das klappt jetzt 😉

06.10.2005 - 13:53 Uhr

Durch Eigenschaften ist es möglich, das man von Außen nur lesen darf (Get) oder z.B. nur Schreiben kann (Set). Das macht ja durchaus Sinn 😉

Desweiteren kann man Abfangen, dass eine Variable nicht Null gesetzt werden darf oder ähnliches.

ciao Anke

06.10.2005 - 13:41 Uhr

Du könntest dazu auch eine ListView nehmen. In dieses lädst du die Bilder rein, das wäre dann wohl am einfachsten....

Es kommt halt darauf an, was du damit machen wollst. Du könntest auch eine MozBar verwenden: http://www.codeproject.com/cs/miscctrl/MozBar.asp

Edit:

Hier mal ein Beispiel zum Füllen einer ListView:


// Leert die ListView.
this.lvw.Items.Clear();

// Bereinigt die ImageList.
this.imlBitmaps.Images.Clear();

// Ermittelt die möglichen Bilder.
foreach(DataRow row in ds.Tables["images"].Rows)
{
	// Erstellt ein ListViewItem, welches der ListView hinzugefügt wird.
	ListViewItem item = new ListViewItem();

	Bitmap bmp = new Bitmap(row["url"].ToString());

	// Füllt die 1. Zeile (Icon)
	item.ImageIndex = this.imlBitmaps.Images.Add(bmp, Color.Transparent);

	// Füllt das ListViewItem mit Werten.
	item.Text = row["url"].ToString();
				
	// Fügt das Item der ListView hinzu.
	this.lvw.Items.Add(item);
}

06.10.2005 - 13:07 Uhr

Sollen alle Bilder nacheinander in PictureBoxen ausgegeben werden?

Dazu machst du einfach eine Schleife und erstellst jeweils eine PictureBox. In dieses füllst du dein Bild: pbx.Image = new Bitmap(fileName);
dann fügst du die PictureBox dem entsprechenden Control hinzu.

Dabei mußt du natürlich jeweils die Location der PictureBox verscheiben, damit sie nicht alle übereinander liegen 😉

Ich hoffe das war jetzt einigermaßen verständlich.

ciao Anke

27.09.2005 - 12:02 Uhr

Du solltest natürlich auch Feiertage berücksichtigen, denn die gelten ja nicht als Arbeitstage 😉

27.09.2005 - 11:46 Uhr

Mein Code zum suchen einer OU sieht folgendermaßen aus:


//ein DirectorySearcher wird generiert, dem "entry" zugewiesen wird (z.B. LDAP://testcomputer)
//mit diesem DirectorySearcher wird die Domäne nach der OU durchsucht
System.DirectoryServices.DirectorySearcher mySearcher = new System.DirectoryServices.DirectorySearcher(entry);

//der Suchbefehl wird zusammengebaut
//objectCategory soll organizationalUnit sein, da nur nach Organisationseinheiten gesucht werden soll
//der "Name" der OU, soll die Variable "OU" sein
string suchwort = "(&(objectCategory=organizationalUnit)(Name= " + Organisationseinheit + "))";

//es wird nun nach der Organisationseinheit gesucht
mySearcher.Filter = suchwort;

	
//wenn ein Ergebnis zurückkommt
if (mySearcher.FindAll().Count > 0)
{
	//wurde etwas gefunden, wird fuer alle Suchergebnisse durchgegangen
	foreach(System.DirectoryServices.SearchResult ergebnis in mySearcher.FindAll()) 
	{
		// mache irgendwas mit der gefundenen OU...
	}
}
else
{
	// Fehlermeldung, bzw. Ausgabe das nichts gefunden wurde
}

ciao Anke

22.09.2005 - 10:17 Uhr

Soo, habe mir jetzt meinen alten Code rausgekramt. Ich habe folgendermaßen nach OUs gesucht:


//der Suchbefehl wird zusammengebaut
			//objectCategory soll organizationalUnit sein, da nur nach Organisationseinheiten gesucht werden soll
			//der "Name" der OU, soll die Variable organisationseinheit sein
			string suchwortOU = "(&(objectCategory=organizationalUnit)(Name= " + ou+ "))";

	
			//es wird nun nach der übergebenen Rolle gesucht
			mySearcher.Filter = suchwortOU;

kann jetzt leider nicht versuchen nach Mails zu suchen, da ich hier kein AD zur Verfügung habe X(

Kann es sein, das du vorher noch sagen musst, das du nach Benutzern, also Usern suchen willst?

so nach dem Motto: string suchwortOU = "(&(objectCategory=User)(Mail= " + mail+ "))";

22.09.2005 - 09:18 Uhr

Schau mal hier:

http://www.codeproject.com/csharp/CDOExchangeCode.asp

da gibt es folgende Funktion:


private bool EmailAddressExistInLDAP(string strMailAddress, 
                                         string strRootDSE)
{
    // Set the return value to True    
    // True means that the Active Directory would NOT be updated and
    // I prefer the default to be "don't do"     

    bool bRetVal = true;

    // Set a objSearch starting at RootDSE, and a place to return it.

    System.DirectoryServices.DirectorySearcher objSearch 
                    = new DirectorySearcher(strRootDSE);
    System.DirectoryServices.SearchResult objResult;

    // Filter only on the proxyAddress

    objSearch.Filter = "(& ( proxyAddresses=*"+strMailAddress+"*))";

    // if we even find one, we can't add another.
    // This is a slow way to look, but
    // it is better than having two Exchange Proxy
    // Address's and getting NDR's.

    objResult = objSearch.FindOne();

    if (objResult == null)
        bRetVal = false;
    return bRetVal;
}

Der Filter sieht also so aus:

objSearch.Filter = "(& ( proxyAddresses=*"+strMailAddress+"*))";

Vielleicht klappt das ja?!?

ciao Anke

21.09.2005 - 16:12 Uhr

Hmm wenn ich jetzt so in meinen Hirnzellen Nachforsche, kann ich mich daran errinnern, das ich das Filterargument immer vorher in eine Variable eingelesen habe, weil ich damals auch irgendwelche Problem hatte.

Probier doch mal spaßehalber folgendes:


string filter = ("(mail="+ad_alias+")");
mySearcher.Filter = filter;

Ich gucke dann zu Hause mal, wie ich das genau gemacht habe... aber wie gesagt, mir fiel gerade ein das ich das Filterkriterium IMMER in einen string eingelesen habe. Das muss ja irgendwelche Gründe gehabt haben 🤔

ciao Anke

21.09.2005 - 15:46 Uhr

Findet er einfach nichts, oder kommt eine Exception?

Denn egal ob VB oder C#, wenn es bei dem Beispiel geht, sollte es eigentlich auch beidir gehen... habe wie gesagt schon ewig nicht mehr mit dem AD gearbeitet, könnte ja zu Hause mal nachgucken 😉

21.09.2005 - 15:21 Uhr

Hallo bitkiller,

wie meinst du, du hast nichts gefunden? In dem Link ist doch folgendes VB-Beispiel:


\**************************************************************************** 
Dim ds As DirectoryServices.DirectorySearcher 
Dim oSRAll As DirectoryServices.SearchResultCollection 
Dim cPath As String 
Dim oVerify As DirectoryServices.DirectoryEntry 


Dim de As New 
DirectoryServices.DirectoryEntry("LDAP://ldap.company.com:389/uid=user@compa 
ny.com, ou=employees,o=company.com", "user@company.com", "password", 
System.DirectoryServices.AuthenticationTypes.Anonymous) 


ds = New DirectoryServices.DirectorySearcher(de) 
ds.Filter = "(mail=user@company.com)" 
ds.PropertiesToLoad.Add("mail") 
ds.PropertiesToLoad.Add("givenName") 
ds.PropertiesToLoad.Add("adsPath") 


Dim sr As DirectoryServices.SearchResult 
Dim fullname As String 
Dim email As String 


oSRAll = ds.FindAll 
'MsgBox(oSRAll.Count) 
For Each sr In oSRAll 
cPath = sr.Properties("adsPath")(0) 
Next 


MsgBox(cPath) 


Try 


oVerify = New DirectoryServices.DirectoryEntry(cPath, "user@company.com", 
"password", System.DirectoryServices.AuthenticationTypes.SecureSocketsLayer) 


MsgBox(oVerify.Properties("distingushedName").Value) 


Catch 


MsgBox("Not authenticated") 


End Try 


\**************************************************************************** 
\*************************************** 

und da steht doch gleich am Anfang:


Dim de As New 
DirectoryServices.DirectoryEntry("LDAP://ldap.company.com:389/uid=user@compa 
ny.com, ou=employees,o=company.com", "user@company.com", "password", 
System.DirectoryServices.AuthenticationTypes.Anonymous) 


ds = New DirectoryServices.DirectorySearcher(de) 
ds.Filter = "(mail=user@company.com)" 

21.09.2005 - 15:01 Uhr

Ich habe nur nach OUs, Gruppen und Usern gesucht, ist aber auch schon ne ganze Weile her...

Habe jetzt noch nen guten Link gefunden:

http://www.derkeiler.com/Newsgroups/microsoft.public.dotnet.framework.aspnet.security/2002-11/1849.html

da steht (ist Vb aber eagl):


ds = New DirectoryServices.DirectorySearcher(de) 
ds.Filter = "(mail=user@company.com)" 

21.09.2005 - 14:49 Uhr

hatte sowas aberbeim googeln gefunden 🙁

mußte bisher noch nie nach Mailadressen suchen...

21.09.2005 - 14:24 Uhr

Probier doch einfach mal folgendes:


mySearcher.Filter = ("(mail= [EMAIL]mail@test.de[/EMAIL])");

ciao Anke

P.S.: Natürlich ohne das

21.09.2005 - 12:04 Uhr

Ich denke es macht schon Sinn auf einem Deutschen System, durchaus mal englische Buttontexte anzuzeigen.

Ich hatte das Problem nämlich auch. Die Applikation sollte mehrsprachig sein, also z.B. deutsch, englisch, spanisch.

Wenn alle Texte bei "Spanisch" in Spanisch sind, ist es ja wohl voll doof wenn der ButtonText aufeinmal "Ja / Nein" ist...

Ich habe aus einem Buch einen Code verwendet, der eigene Button-Texte zulässt. War irgendwas mit HOOK 😉

21.09.2005 - 09:38 Uhr

so etwas hatte ich auch... ich nehme als Schriftart immer Arial und damit sieht es in Ordnung aus. Mit der Standardschrift wird es bei mir aber auch so komisch zusammen "gedrückt"

ciao Anke

13.09.2005 - 13:35 Uhr

Ich weiß ja nicht, wozu die Einträge eingefärbt werden sollen, aber eventuell wäre es ja auch günstig, die Hintergrundfarbe zu ändern 😉

13.09.2005 - 13:32 Uhr

Mach doch mal ein Try-Catch um das ganze und lasse dir die komplette Fehlermeldung ausgeben.

02.09.2005 - 11:33 Uhr

Kannst du dir nicht mal die genaue Fehlermeldung angegeben. Normalerweise steht da immer noch mehr...

EDIT: Ich nehme mal an die Spalte User steht in Beziehung zu Tabelle User (oder ähnliches).

Existiert denn dort ein User mit der ID 1?

02.09.2005 - 09:24 Uhr

Wenn ich es richtig verstehe, hast du ja das Problem das deine Anwendung hängt, oder?

Probier mal Application.DoEvents() aus, das könnte dein Problem beheben.

Wenn man zum Beispiel eine Schleife durchläuft und das ganze halt ne ga´nze Weile dauert, reagiert die Anwendung so lange halt nicht, man kann sie nicht verschieben und wenn dann doch mal was passiert sieht das sehr komisch aus. Wenn du aber in solche Schleife das Application.DoEvents() einbaust klappt es einwandfrei (bei mir zumindest) 😉

ciao Anke

02.09.2005 - 09:18 Uhr

Was geht denn an deinem Code nicht, kommt da eine Fehlermeldung?

Es sieht erst mal so aus als sollte es funktionieren. Willst du denn auf einen Index zugreifen, oder alle Werte auslesen.

So müßte es auch gehen, wenn du alle Werte willst...

Du kannst natürlich noch ne innere Schleife rein tun, also für die innerer ArrayList aber ich wußte nicht was du das so für Werte drin hast (scheinbar String und int).

foreach(ArrayList al in aHeader)
{
   MessageBox.Show(al[i].ToString()); 
}

01.09.2005 - 11:41 Uhr

Ich habe mir jetzt einen anderen PDF Druckertreiber runtergeladen und es geht. Oh man, ich habe dafür jetzt sooo viel Zeit geopfert und dann lag es nicht mal ein meinem Code, sondern an dem Treiber 8o

Das ist echt gemein X(

Aber ein Glück habe ich es noch heraus gefunden 😉

Vielen dank nochmal an die lieben Helfer

01.09.2005 - 11:17 Uhr

Grrr, es liegt wohl doch an dem PDF-Koncverter. Ich habe jetzt mal als "Drucker" "Microsoft Office Document Writer" genommen und siehe da, die Farbe sieht korrekt aus.

Jetzt frage ich mich nur, warum der Konverter dann einmal die Farbe richtig darstellen kann (das Bild) und eimal nicht (die Kästchen)

Ich werde jetzt mal schauen ob ich noch einen anderen PDF-Druckertreiber finde um mal zu gucken ob es bei einem anderen auch so ist. Drucken kann ich es ja wie gesagt nicht da hier nur ein Schwarz/weiß Laserdrucker ist 🙁

Vielen Dank noch einmal für Eure Hilfe aber ich hoffe das Problem ist damit behoben.... und wenn mal einer auf die selbe Idee kommt, dann sag ich dem dass er Pech hat, und das es an dem Konverter liegt 😁

Danke von Anke 8)

01.09.2005 - 11:11 Uhr

ich hoffe ich nerve nicht, aber...

ich habe jetzt mal das ganze in einem OnPaint einer Form ausprobiert, also:


protected override void OnPaint(PaintEventArgs e)
		{
			Brush br = new SolidBrush(Color.FromArgb(255,7,214,18));				
			e.Graphics.FillRectangle(br, 0, 0, 30, 30);


			base.OnPaint (e);
		}

Er zeichnet mir dann in der linken oberen Ecke tatsächlich ein Quadrat in der richtigen Farbe.

Genau der selbe Code in dem PrintPage eines PrintDocuments:


private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
		{
			Brush br = new SolidBrush(Color.FromArgb(255,7,214,18));				
			e.Graphics.FillRectangle(br, 0, 0, 30, 30);
		}

zeichnet mir auf mein Blatt ein falsches Grün... Es liegt also folglich nicht am Brush sondern am dem Graphics-Objekt oder ähnliches...

01.09.2005 - 10:59 Uhr

Hallo Chäsi,

Bei mir wird das ganze so gedruckt:

statt so ie es sollte

und das Grün sieht ja nun wirklich ganz anders aus.

Das rechte grüne Kästchen habe ich genauso erstellt wie du, das andere so wie ich es halt vorher geschrieben habe...

Das ganze findet halt beim Drucken statt, also nicht in einem OnPaint-Event, vielleicht liegt da ja auch das Problem?
Ich drucke das ganze "eigentlich", das eigentlich bedeutet, das ich es mir als PDF-Speicher, da ich halt so einen Konverter als Drucker eingerichtet habe... ich kann ja immerhin nicht ständig ein Blatt Papier ausdrucken...

In diesem PDF sind aber halt die Farben einmal richtig (in einem Bitmap dargestellt) und die Farben in den Kästchen sind falsch dargestellt. Also kann es auch nicht am PDF-Konverter liegen (denke ich). da ich hier keinen Farbdrucker habe, kann ich nicht mal testen, ob er es denn tatsächlich falsch drucken würde wenn ich es direkt an den Drucker schicke!!!

Hach man, das ist ja alles wieder komisch heute!

ciao Anke

01.09.2005 - 10:50 Uhr

Ja genau das sind drei Farben, sonst hätte es ja kein Grün gegeben 😉

01.09.2005 - 10:32 Uhr

Du musst ja den String zerteilen und dann ergibt sich folgendes:

Grün = 007214018

Rotanteil: 7
Grünanteil: 214
Blauanteil: 18

Meine Farbe sieht so aus: Color [A=255, R=7, G=214, B=18]

Der Alphawert liegt also bei 255 und die anderen 3 Werte sind jeweils unter 255.

Ich bin weiter ma basteln, bis morgen habe ich dafür ja noch Zeit 😉

01.09.2005 - 10:05 Uhr

Oh mann, ich seh da echt nicht mehr durch.

Ich drucke ja wie gesagt noch etwas, bei dem die selben Farben verwendet werden. Diesen Ausschnitt den ich da drucke, erhalte ich als Bitmap und die Farben werden dort korrekt dargestellt.

Nun habe ich mir halt gedacht, ich könnte ja mal ein Bitmap erstellen mit eben der gewünschten Farbe als Hintergrund, bzw halt nur dieses Farbe überhaupt.

Das klappt auch ganz gut, aber beim Drucken wird es wieder falsch angezeigt. Wenn ich mit aber genau dieses erzeugte Bildchen im Control ausgeben lasse wird es wieder so komisch dargestellt...

Vielleicht hat ja doch noch einer eine Idee, ich probier auf jeden Fall mal weiter rum, irgendwann muss sich ja mal was finden...

ciao Anke

01.09.2005 - 09:35 Uhr

Ich habe jetzt folgendes gemacht:

Brush greenMiddle2	= new SolidBrush(Color.FromArgb(this.reportData.Colors.GreenMiddle.ToArgb()));

Das meintest du doch, oder? Es sieht aber immer noch so aus. Ich habe nun auch mal versucht einen Strich zu zeichnen, also Pen zu verwenden, anstatt Brush, aber da sieht die Farbe genauso falsch aus. Es liegt wie gesagt aber nicht an der Farbe selber, denn die wird mir ja im selben Control richtig angezeigt, sondern es muss wohl an dem Brush bzw. dem Pen-Objekt liegen.
Es muss doch irgendeine möglichkeite geben die Farben trotzdem korrekt darzustellen.

ciao Anke

01.09.2005 - 08:55 Uhr

Soo, hier noch mal die Bildchen.

links: So sollte es aussehen
rechts: und so sieht es aus

(die Größe ist jetzt natürlich egal, habe halt nur mal die Farbe zeigen wollen 😉 )

Es müssen übrigens RBG-Werte sein, also ich meine es können keine KnownColors sein. Hier könnte man es vielleicht noch machen, aber es gibt Fälle wo mehr Farben existieren und die müssen harmonisch zusammenpassen und da sollen es halt RGB-Werte sein...

ciao Anke

01.09.2005 - 08:46 Uhr

Hallo herbivore,

genau das mache ich ja, nur an anderer Stelle. Ich hole mir die Werte aus der Datenbank, dort steht dann halt:

Grün = 007214018
Gelb = 255215000
Rot = 255215000

Dann ermittelt ich mir aus dem jeweiligen String folgendes:


private Color ConvertRGB2Color(string rgb)
{
int red = Convert.ToInt32(rgb.Substring(0,3));
int green = Convert.ToInt32(rgb.Substring(3,3));
int blue = Convert.ToInt32(rgb.Substring(6,3));

Color color = Color.FromArgb(red, green, blue);

return color;
}

Dabei wird natürlich der jweilige String zurückgegeben. Ich lese diese Farben, also rot, gelb und grün dann in ein Objekt ein. Und auf dieses Objekt greife ich dann zu. Einmal im Control zum Anzeigen der Farben in einem Usercontrol und einmal beim Drucken mittels SolidBrush (bzw. Brush).

Nun sehen die Farben aber total unterschiedlich aus, so als ob die SolidBrush nicht wirklich mit Farben arbeiten kann, die nicht "bekannt" sind. Die Farben müssen aber zwingend gleich sein. Ich werde mal Screenshots machen, damit man den unterschied mal sehen kann 😉

31.08.2005 - 16:21 Uhr

Hallo Forum,

ich versuche farbige Kästchen zu drucken, dafür verwende ich:


g.FillRectangle(Brushes.Red, x, y, 30, 30);

Das funktioniert auch ganz gut.

Ich brauche jetzt aber eine Farbe von der ich nur den RGB-Wert kenne. Dazu habe ich mir folgendes erstellt:


Brush greenHigh = new SolidBrush(cd.GetColor(Report.EvaluationAreas.GreenHigh));

Wobei halt bei GetColor(...) eine Color zurückkommt die durch Color.FromArgb(...) ermittelt wurde.

Meine Farben sehen jetzt aber sehr komisch aus. Sie sind dunkler als sie sein sollten und sehen ganz anders aus, als wenn ich sie zum Beispiel in einem Panel als Hintergrundfarbe verwendet. Kann mir einer sagen, was ich tun muss, um die Farben unverfälscht anzeigen (drucken) kann?

Sie müssen genauso aussehen, wie in dem Control, weil das sozusagen eine Legende werden soll...

Danke schonmal,

Anke

31.08.2005 - 11:11 Uhr

Also du erstellst zunächste ein Event und ein Delegate, ungefähr so:


/// <summary>
/// EventHandler zum Aktualisieren der ProgressBar
/// </summary>
public delegate void UpdateProgressBarEventHandler(int min, int max, int pos);

/// <summary>
/// Event welches ausgelöst wird, um eine ProgressBar zu aktualisieren.
/// </summary>
public event UpdateProgressBarEventHandler OnUpdateProgressBar;

Einbauen tust du das ganze dann so:


this.myClass.OnUpdateProgressBar += new UpdateProgressBarEventHandler(this.myClass_UpdateProgressBar);

Ich hoffe das hat dir jetzt geholfen 😉

31.08.2005 - 08:58 Uhr

Wieso versucht du es nicht einfach mal mit


if(c.Checked == true)
{
Response.Write(c.Text.ToString() + " wurde ausgewählt");
}

ciao Anke

30.08.2005 - 09:48 Uhr

Ich benutze nur 1.1, 2.0 werde ich erst verwenden, wenn es erscheint.

30.08.2005 - 09:03 Uhr

Hallo petewulf,

das geht ganz einfach 😉


/// <summary>
/// Wird aufgerufen wenn ein Knoten bearbeitet wurde.
/// </summary>
/// <param name="sender">System value</param>
/// <param name="e">System value</param>
private void tv_Data_AfterLabelEdit(object sender, NodeLabelEditEventArgs e)
{
	// Wenn etwas geändert wurde, wird e.Label gesetzt, ansonsten ist es "null".
	// Wenn es "null" ist muss nichts getan werden.
	if(e.Label != null)
	{
		try
		{
			// Hier kommt ds Speichern in der Datenbank hin.
		}
		catch(Exception ex)
		{
			// Wenn ein Fehler aufgetreten ist, wird der Bearbeitungsvorgang des Knotens abgebrochen.
			e.CancelEdit = true;

			// Es wird ein Fehler ausgegeben.
			MessageBox.Show("Es ist ein Fehler beim ändern des Kontens aufgetreten.", "Fehler" , MessageBoxButtons.OK, MessageBoxIcon.Error);
		}
	}
}

ciao Anke

30.08.2005 - 08:37 Uhr

Wie Noodles eben gepostet hat, kann Oracle wohl kein DateTime, also Datum + Uhrzeit.

Probier es doch mal so:

string Date = Convert.ToDateTime(DateTextBox.Text).ToShortDateString();

Du solltest natürlich noch ein try-catch rumbasteln, damit ein falsches Datum, bzw eine falsche Eingabe abgefangen wird.

29.08.2005 - 11:40 Uhr

Gib dir doch mal deinen SQL-Befehle aus, schreibe ihn zum Beispiel in eine TextBox oder ein label, nur um mal zu sehen wie dein Befehl aussieht.

Füge dazu einfach zwischen folgende 2 Zeilen:

 
// define the sql to perform the database insert
                sqlStmt = "UPDATE tabelle SET filename = '" +Filename+ "', cd = '" +CD+ "', language = '" +Language+ "', text = '" +Text+ "', date = '" +Date+ "', archiv = '" +Archiv+ "' WHERE id = '"+FileID+"' ";

                // Establish a new OracleCommand
                OracleCommand cmd = new OracleCommand();

das hier ein:

 
labelSql.Text = sqlStmt;

Du musst dazu natürlich vorher noch das Label anlegen ...

Schau dir dann mal den SQL-Befehle an. Du kannst ihn auch kopieren und versuchen direkt in deiner Oracle-DB auszuprobieren, teilweise bekommt man dort genauerer Fehlermeldungen 😉