Laden...

Forenbeiträge von baer999 Ingesamt 375 Beiträge

04.11.2008 - 08:09 Uhr

Hi,

ich will Anrufe die über eine AVM Fritz Card eingehen erkennen (auch mehrere gleichzeitig) und die Nummer herausfinden. Was muss ich dabei beachten und wie kann ich dies umsetzen? thx

04.11.2008 - 07:53 Uhr

Also das hier ist die Paint Methode, Problem ist das Füllen des Rechtsecks mit dem Brush, der angeblich Null sein soll, zuvor aber gesetzt wurde...

        protected override void OnPaint(PaintEventArgs e)
        {
        	base.OnPaint(e);

            if (this.BackgroundImage == null)
            {
				e.Graphics.FillRectangle (Brush, this.ClientRectangle);
            }
            else
                e.Graphics.DrawImage (this.BackgroundImage, new Point (0, 0));

            if (this._HasBorder) e.Graphics.DrawRectangle (new Pen (this._BorderColor), new Rectangle (0, 0, this.Width - 1, this.Height - 1));
        }

Zusätzlich habe ich diese Flags für das Panel Control erstellt

            this.SetStyle (ControlStyles.OptimizedDoubleBuffer | ControlStyles.ResizeRedraw | ControlStyles.UserPaint | ControlStyles.AllPaintingInWmPaint, true);

Bei jedem Minimieren und wiederherstellen kommt die Exception, dass der Wert nicht Null sein darf. Was kann ich ändern, das mit Visible habe ich getestet, ging leider nicht. thx

25.10.2008 - 14:31 Uhr

Was muss ich davon kopieren oder downloaden um den Wrapper nutzen zu können? thx

24.10.2008 - 15:53 Uhr

Hallo,

also Vererbung à la ": System.Windows.Forms.Label" habe ich schon häufig für meine eigenen Controls verwendet. Allerdings will ich nun meine Control Bibliothek mit Grundelementen ausrüsten wie:

  • BorderColor
  • HasBorder
  • Brush
  • etc.

Wie kann ich das am besten umsetzen? Kann ich das OnPaint dann überschreiben, sodass bei jedem Control automatisch der Rand gezeichnet wird usw. ?! thx

24.10.2008 - 13:52 Uhr

Hallo,

bei meinen eigenen Controls habe ich das OnPaint jeweils überschrieben und in einer Brush-Variable ist der Hintergrund gespeichert und wird immer gemalt. Ist allerdings die Mainform minimiert kommt ein Fehler, dass Brush nicht NULL sein darf, kommt wohl vom ClientRectangle, dass NULL oder Size (0, 0) sein müsste. Was kann ich dagegen machen? thx

16.10.2008 - 14:50 Uhr

Wie kann ich eine Anwendung programmieren, die „beliebig“ erweiterbar ist? Ich will einen möglichst modularen Aufbau meiner neuen Anwendung und wollte wissen welche Dinge ich beachten muss, wie ich es überhaupt gestalten kann und ob es viel Aufwand ist. Hat es dann etwas mit Add-In-Fähigkeit zu tun oder gehört das in eine andere Richtung? Danke

16.10.2008 - 14:46 Uhr

Gibt es eine DLL die mir Funktionen zum einfachen Drucken bereitstellt? Ich bräuchte eine Vorschaufunktion (wie Word-Durckvorschau), Drucken mehrerer Seiten, Erstellung des Layouts (auch per Code), Bilder einbinden, etc.
Gibt es etwas in der Richtung kostenlos im Internet, damit ich nicht jede Funktion selbst programmieren muss?! Danke

16.10.2008 - 14:41 Uhr

Hallo,
ich möchte eine Anwendung entwickeln, die Anrufe auf einer AVM Fritz ISDN Karte erkennt und automatisch die Anrufernummer in einer Datenbank nachschlägt, um die Kundendaten anzeigen zu lassen. Dann bearbeitet man diesen Kunden. Weitere eingehende Anrufe müssten auch erkannt werden, was dann programmtechnisch gemacht wird, muss ich mir dann überlegen, etwa ein zweites Fenster oder so ähnlich.
Mein Problem ist: ich habe noch nie CAPI oder ähnliches benutzt. Ist es schwer ohne Wrapper, oder kennt jemand einen guten günstigen / kostenlosen Wrapper?
Was müsste ich beispielsweise für meine oben erläuterte Funktion machen?
Danke

16.10.2008 - 14:21 Uhr

Hallo,

ich programmiere schon lange mit dem .NET Framework bzw. C#. In letzter Zeit habe ich mich vermehrt für das WPF bzw. .NET 3.5 interessiert. Besonders die vektorenbasierte Anzeige klingt sehr spannend. Ich würde gerne wissen was eure persönlichen Erfahrungen mit dem neuen Framework sind auch und vor allem im Vergleich zu Forms…

  1. Gibt es genügend Controls?
  2. Sind die Controls gut anzupassen im Aussehen etc.?
  3. Wie funktioniert das Layout bei Vektoren?
  4. Sind im Vgl. zu .NET 2.0 neue Klassen zum Framework hinzugekommen, die sich nicht auf WPF etc. beziehen?

Danke

14.10.2008 - 13:58 Uhr

Die textBox ist die TextBox, die auf der UserForm definiert ist. Befindet sich im Designer...

namespace ADLib.Controls
{
    partial class ADTextBox
    {
        /// <summary> 
        /// Required designer variable.
        /// </summary>
        private System.ComponentModel.IContainer components = null;

        /// <summary> 
        /// Clean up any resources being used.
        /// </summary>
        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose ();
            }
            base.Dispose (disposing);
        }

        #region Component Designer generated code

        /// <summary> 
        /// Required method for Designer support - do not modify 
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {
            this.textBox = new System.Windows.Forms.TextBox ();
            this.SuspendLayout ();
            // 
            // textBox
            // 
            this.textBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
                        | System.Windows.Forms.AnchorStyles.Right)));
            this.textBox.BorderStyle = System.Windows.Forms.BorderStyle.None;
            this.textBox.Location = new System.Drawing.Point (2, 3);
            this.textBox.Name = "textBox";
            this.textBox.Size = new System.Drawing.Size (119, 13);
            this.textBox.TabIndex = 0;
            // 
            // usrTextBox
            // 
            this.AutoScaleDimensions = new System.Drawing.SizeF (6F, 13F);
            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            this.BackColor = System.Drawing.Color.White;
            this.Controls.Add (this.textBox);
            this.MaximumSize = new System.Drawing.Size (1024, 19);
            this.MinimumSize = new System.Drawing.Size (20, 19);
            this.Name = "usrTextBox";
            this.Size = new System.Drawing.Size (124, 19);
            this.ResumeLayout (false);
            this.PerformLayout ();

        }

        #endregion

        private System.Windows.Forms.TextBox textBox;
    }
}

14.10.2008 - 13:14 Uhr

Hallo,

ich habe meine eigene TextBox erstellt, aus einer UserForm mit Textbox + den Rest der UserForm als Rand. Die Hintergrundfarben sollen sich verändern, wenn Enabled ode ReadOnly verändert wurden. Zusätzlich wird im PaintEvent ein Rahmen gezeichnet. Allerdings habei ch das Problem, dass er die BackColor der UserForm nie verändert, sodass eine weiße Textbox auf grauer UserForm mit schwarzen Rand liegt. Hier der Ccde, hoffe jemand kann mir helfen und sagen was ich falsch mache... thx

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Text;
using System.Windows.Forms;

namespace ADLib.Controls
{
    public partial class ADTextBox : UserControl
    {
        #region " Variables "

        #region " Border "

        //Private HasBorder Variable
        private bool _HasBorder;
        //Öffentliche HasBorder Variable
        public bool HasBorder
        { get { return _HasBorder; } set { _HasBorder = value; } }

        //Private HasBorder Variable
        private Color _BorderColor;
        //Öffentliche HasBorder Variable
        public Color BorderColor
        { get { return _BorderColor; } set { _BorderColor = value; } }

        #endregion
        
        private bool Loaded = false;
        private bool Updating = false;
        
		public override Color BackColor {
			get { return base.BackColor; }
			set { 				
				if (Loaded) 
				{
					if (!Updating) Set_BackColor();
				}
			}
		}

        public bool ReadOnly
        {
            get { return textBox.ReadOnly; }
            set { textBox.ReadOnly = value; 
            	if (Loaded)
            	{
            		if (!Updating) Set_BackColor();
            	}
            }
        }

        [EditorBrowsableAttribute()]
        public override String Text
        {
            get { return textBox.Text; }
            set { textBox.Text = value; }
        }

        #endregion

        #region " Constructor "

        public ADTextBox()
        {
            InitializeComponent ();
            
            this.SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.UserPaint | ControlStyles.OptimizedDoubleBuffer | ControlStyles.ResizeRedraw, true);
            
            this.Enabled = !this.Enabled;
            this.Enabled = !this.Enabled;

            textBox.Anchor = (AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Bottom);
        }

        #endregion

        #region " Events "
        
		[EditorBrowsableAttribute()]
		protected override void OnLoad(EventArgs e)
		{
			base.OnLoad(e);
			
			Loaded = true;
			Set_BackColor();
		}

        protected override void OnPaint(PaintEventArgs e)
        {
            base.OnPaint(e);

            //Draw Border
            if (this._HasBorder) e.Graphics.DrawRectangle (new Pen (this._BorderColor), new Rectangle (0, 0, this.Width - 1, this.Height - 1));
        }
        
		[EditorBrowsableAttribute()]
		protected override void OnEnabledChanged(EventArgs e)
		{
			base.OnEnabledChanged(e);
			
			Set_BackColor();
		}
        
        private void Set_BackColor()
		{
            Color bgColor = (!textBox.ReadOnly && Enabled) ? Color.White : SystemColors.Control;

            Updating = true;
            
            BackColor = bgColor;
            textBox.BackColor = bgColor;
			this.Invalidate();
			
			Updating = false;
		}  
		
        #endregion
    }
}

03.08.2008 - 21:32 Uhr

Kann ich dabei leicht Eigenschaften wie Fett, Kursiv, ... in die DB eintragen, denn das benötige ich auch sonst würde ich den CSV Export nutzen. thx

03.08.2008 - 19:33 Uhr

Ich will die Excel Zellen in verschiedene Tabellen, damit ich mit den Zahlen schneller rechnen kann (was ja theoretisch deutlich schneller sein sollte?!) und auch zur Datensicherheit, aller bisherig stattgefundener Kalkulationen. Leider hält die Firma an Excel hierfür fest 🙂
MS SQL Server Idee hört sich da schon einmal sehr interessant an. Mit DB an sich kenne ich mich eigentlich aus, aber gibt es dazu i-wo im Internet ein kleines Tutorial dazu o.ä.?
thx

30.07.2008 - 18:06 Uhr

Hallo,

für ein größeres Projekt muss ich mit Exceldateien arbeiten, viele Daten daraus nehmen, verrechnen. Da der Excel Zugriff langsam ist, dachte ich ich könnte die Exceldatei komplett in eine Datenbank speichern. Ich weiß, das ist sehr komplex mit den Arbeitsblättern, Zellen, Spalten + Bold, Italic, Underline, BackgroundColor Attributen usw. aber nachdem man die Exceldatei in der DB hat müsste die Kalkulation deutlich schneller gehen, oder?!

Jetzt zu meiner eigentlichen Frage: gibt es eine "einfache" Technik, die mir dabei hilft oder hat jemand eine Idee wie man das gut und effektiv umsetzen kann?! thx

06.06.2008 - 11:03 Uhr

Habe dies jetzt geändert, leider ohne den erhofften Erfolg... woran könnte das liegen?

        private void SetupBrowser()
        {
            webBrowser1.DocumentText = "<html><body bgcolor=\"cccccc\"></body></html>";
            doc =
                webBrowser1.Document.DomDocument as IHTMLDocument2;
            doc.designMode = "On";
            webBrowser1.Document.ContextMenuShowing += 
                new HtmlElementEventHandler(Document_ContextMenuShowing);
        }
06.06.2008 - 10:32 Uhr

Nein das ist ja nicht das Problem, habe mich wohl unverständlcih ausgedrückt 🙂
Wenn ich ein Dialogfenster (Einstellungen, Info, ...) über der Main Form Bewege dann sieht man deutlich das Neuzeichnen, darum ging es mir. Laut meinen ungenauen visuellen Tests ist Lin.GradientBrush hierbei sogar etwas schneller. Vielleicht liegt es aber auch einfach an der CPU Leistung, da diese beim Zeichnen ja maßgeblich in Anspruch genommen wird (AMD 2100+)

05.06.2008 - 17:06 Uhr

Die Lösung ist leider noch anfälliger bezüglich Schlierenbildung, trotzdem danke 🙂
Gibt es noch andere Ideen ?

05.06.2008 - 17:00 Uhr

Hallo,
ich habe mir folgendes Control von Codeproject.com heruntergeladen und versucht in mein Programm einzubinden. Allerdings stehe ich vor einem Problem:
Ich muss den gesamten Editor Enabled=false darstellen nach dem Programmstart. Damit es zu den anderen Controls passt muss es ausgegraut sein. Allerdings bekomme ich es nicht hin, die BackColor (

Document.BackColor = SystemColors.Control

) von Programmstart an zuzuweisen.
Dieser Link führt zum erwähnten Control: http://www.codeproject.com/KB/edit/editor_in_windows_forms.aspx?fid=340377&fr=26#xx0xx

Nach Programmstart funktioniert folgender Code

        protected override void OnEnabledChanged(EventArgs e)
        {
            base.OnEnabledChanged (e);

            if (ReadyState == ReadyState.Complete)
                webBrowser1.Document.BackColor = (Enabled) ? Color.White : SystemColors.Control;
        }

Ohne

if (ReadyState == ReadyState.Complete)

kommt gleich zu Beginn eine Messagebox ob ich die Änderungen an der Datei speichern wolle oder nicht. Hoffe mir kann geholfen werden, da mir das Control sonst sehr gut gefällt 🙂 thx

29.05.2008 - 13:57 Uhr

Hallo,

ich habe ein Programm und aus designtechnischen Gründen die Form / bzw. ein komplett abdeckendes Panel mit einem LinearGradientBrush versehen. Das selbe bei allen ChildForms (Einstellungen, Info-Box, ...). Wenn ich diese ChildForms hin und her bewege sieht man die üblichen Schlieren auf der Main Form, als ob der PC hängen würde.

Es ist mir klar, dass es rel. aufwendig ist, jedesmal den Brush zu zeichnen usw. aber ich wollte nur mal nachfragen, ob es eine Tuning Möglichkeit gibt?

Das Panel verfügt bereits über diesen Aufruf im Konstruktor:

            this.SetStyle (ControlStyles.OptimizedDoubleBuffer | ControlStyles.ResizeRedraw | ControlStyles.UserPaint | ControlStyles.AllPaintingInWmPaint, true);
10.03.2008 - 15:28 Uhr

Hallo,

ich bin gerade dabei mir eine eigene DLL zu programmieren, die alle wichtigen Funktionen, Controls, ... enthält. Natürlich benötige ich auch Icons und Bilder, allerdings werden diese immer automatisch auf Internal / Private gesetzt. Da ich diese Bilder allerdings auch außerhalt nutzen wollte, würde ich gerne wissen ob und wie genau das möglich wäre... thx

05.11.2007 - 17:03 Uhr

SQLite 3.x

Hallo, ist es möglich per Code eine SQLite DB zu komprimieren, habe auf der HP und per Google nichts gefunden und die Klassen von SQLite für .NET hab ich auch schon abgeklappert (dachte da an Connection DatenTyp oder ähnliches). Kann mir da jemand den entscheidenden Tipp geben? thx

05.11.2007 - 15:05 Uhr

SQLite 3.x

Hallo,

kann ich per SQL die Größe von Datensätzen auslesen, also in KB oder MB, wenn ja wie? Falls nicht: geht es per C# direkt? thx

26.10.2007 - 14:48 Uhr

Hallo,

ich muss nochmal nachfragen:

Ich habe eine Image Datei als Image Datentyp, es geht noch nicht um Transparenz, diese nun in ein BLOB Feld speichern. Wie gehe ich da vor?

Als byte[] speichern oder Base64String oder Image?
Wie lautet der Code für die Umwandlung?

thx

17.10.2007 - 15:39 Uhr

ToBase64String - Damit wurde alles damals in die Access DB gespeichert, also nicht als Byte[] oder?

Diese Funktion funktioniert unter Access noch:

        public static Bitmap loadImage(String sImage)
        {
            byte[] ba;
            System.IO.MemoryStream s = new System.IO.MemoryStream();
            ba = Convert.FromBase64String(sImage);
            s.Write(ba, 0, ba.Length);
            return new Bitmap(Image.FromStream(s));
        }

Jetzt wird als String immer dieser Byte Array übergeben, obwohl es damals klappte, wie genau muss ich das umschreiben und wie übergeben ich das hier

picImage.Image = clsImage.loadImage (drEdit["pic"].ToString());

thx

17.10.2007 - 15:23 Uhr

SQLite 3.x

Hallo,

ich habe meine Access DB mit einem Converter zu einer SQLite DB umgewandelt, hat alles super geklappt. Allerdings habe ich 2 Felder:
pic + content

diese beiden sind als blob gespeichert und habe auch laut Sqliteman (GUI für DB Verwaltung für SQLite) die richtigen Werte (lange Zeichenketten für pic = Picture + content = RTF Text).

Lade ich nun aber diese in C# kommt immer folgender Wert aus dem Item:

"System.Byte[]"

Also

dr["pic"].ToString()

gibt "System.Byte[]" aus, aber es soltle der tatsächliche Inhalt ausgegeben werden, bzw. in der Variablen stehen.

Weiß jemand woran das liegen kann? thx

17.10.2007 - 13:49 Uhr

Noch merkwürdiger macht es das Ganze, da alle anderen Abfragen, ohne INNER JOIN funktionieren...

17.10.2007 - 12:49 Uhr
            OleDbCommand com = new OleDbCommand (
                "SELECT exp_per_tab.id_per, per_tab.per  " +
                "FROM exp_per_tab INNER JOIN per_tab     " +
                "ON exp_per_tab.id_per = per_tab.id_per  " +
                "WHERE exp_per_tab.id_per = ?", con);
            com.Parameters.AddWithValue ("@ID", ID);

            OleDbDataReader reader = com.ExecuteReader ();

Funktioniert auch nicht, bin hier echt am Verzweifeln ^^

17.10.2007 - 12:33 Uhr

Habe es jetzt in Add(xx,xx).Value = ID; geändert, aber immer noch das glecihe Problem...

@wdb.lizardking: Wie soll ich das ? als Parameter übergeben, bzw. wie weiß das Programm, für welchen Wert das ? steht? thx

Nutze ADO 2.8 Verweis für Access 2000 DB, ist das kompatibel? thx

17.10.2007 - 12:05 Uhr

Gleicher Fehler...

17.10.2007 - 12:04 Uhr

Und bei transparenten GIFs?

17.10.2007 - 11:54 Uhr

Aber wenn ich gif oder bmp oder jpg lade, will ich ja dann einheitlich PNG in der DB haben. Also muss ich alle umwandeln einmalig, oder nicht? thx

17.10.2007 - 11:54 Uhr

Das habe ich alles schon gemacht, ID ist gefüllt und Syntax müsste auch stimmen... kann mir das nicht erklären...

17.10.2007 - 11:23 Uhr
  1. Also Bild laden iin ein Image oder Bitmap?

  2. Danach schaun ob im Color.A eine Transparente Farbe angegeben ist?

  3. in PNG umwandeln und in Blob abspeichern als Stream?

Stimmt das so ungefähr?

thx

17.10.2007 - 11:21 Uhr

MS Access 2000

Ich will aus 2 Tabellen Daten in meine Applikation laden und nutze dafür INNER JOIN:

            OleDbCommand com = new OleDbCommand (
                "SELECT exp_per_tab.id_per, per_tab.per " +
                "FROM exp_per_tab INNER JOIN per_tab " +
                "  ON per_tab.id_per = exp_per_tab.id_per " +
                "WHERE exp_per_tab.id_exp = @ID;", con);
            com.Parameters.Add (new OleDbParameter ("@ID", ID.ToString ()));

            OleDbDataReader reader = com.ExecuteReader ();

Ich weiß, das sieht jetzt kompliziert aus, wegen der Benennung...
Es geht um exp_per_tab und per_tab, wobei die id der per (Personen) geladen werden soll und der Name der Person (per).
exp_per_tab ist eine Tabelle die nur id_epx und id_per enthält, also die Bezihungen von dem Datensatz mit id_exp mit den evtl. vorhandenen Personen (id_per)...

Aber beim Aufühuren mit ExecuteReader kommt immer folgender Fehler:


Für mindestens einen erforderlichen Parameter wurde kein Wert angegeben.

Woran liegt das und was mache ich da falsch? thx

17.10.2007 - 10:15 Uhr

Hallo,

ich will Bilder in einer DB abspeichern, allerdings natürlich möglichst klein und gegebenenfalls mit Transparenter Farbe. Das lässt den Bitmap Datentyp wegfallen und lässt meiner Meinung nach PNG oder GIF Dateien zu.

  1. Wie kann ich bei geladenen Bitmaps (aus einer Bilddatei) herausfinden ob und wenn ja welche Farbe transparent ist?

  2. Wie speicher ich Bilder gut komprimiert und mit transparenter Farbe in eine DB?

  3. PNG oder GIF?

thx

17.10.2007 - 08:30 Uhr

Hallo,

ich bekomme nicht hin, dass eine Spalte in einer Datagridview mit dem ShortDate Format angezeigt wird:

            for (int i = 0; i < Columns.Count; i++)
            {
                dgvList.Columns.Add (Columns[i], settings.dtListColumns.Rows.Find (Columns[i])["Alias"].ToString ());
                dgvList.Columns[Columns[i]].DataPropertyName = Columns[i];
                dgvList.Columns[Columns[i]].Width = Convert.ToInt32 (settings.dtListColumns.Rows.Find (Columns[i])["Width"].ToString ());
                dgvList.Columns[Columns[i]].Visible = Convert.ToBoolean (settings.dtListColumns.Rows.Find (Columns[i])["Visible"].ToString ());
                if (Columns[i] == "datum")
                {
                    dgvList.Columns[Columns[i]].ValueType = typeof (DateTime);
                    dgvList.Columns[Columns[i]].DefaultCellStyle.Format = "dd.MM.yyyy";
                }
            }

Woran liegt das, was mache ich falsch?

16.10.2007 - 14:56 Uhr

Du meinst, dass nach jedem Ändern alles genauso abgespeichert wird?

Das würde das Problem natürlich beheben, aber würde mich nicht 100%ig glücklich machen 🙂 Denn wenn ich dann aus Versehen einen falsch änder und speicher, dann wars das, dann ist der sofort in der DB... oder?

thx

16.10.2007 - 12:14 Uhr

Ja das war ja auch meine Idee, nur das Problem ist wenn ich mehere bearbeite ohne zu speichern, wie löse ich das dann?

Ich hab dann überall Änderungen, in der DB habe ich noch ohne Änderungen, d.h. wenn ich neu lade bei einem Klick auf ein Item, aber dazu schon Änderungen gemacht wurde, wernden diese gelöscht usw. gibt massig Probleme, deshalb frage ich nach einem vernünftigen Ansatz in Sachen Speichern und Komfort 🙂 thx

16.10.2007 - 10:47 Uhr

Genau im Moment hab ich die komplette DB im Speicher...
Mein Problem ist:

Ich will eine Liste zeigen mit allen Datensätzen, allerdings nicht allen Spalten. Bei Klick auf ein ListItem erscheint die "DetailView", d.h. im NachbarPanel erscheinen alle Infos zu dieser ID mit Bild usw.

Da ich ja Speicher schonen will, müsste ich nur den laden, den ich auch anzeige, den lasse ich dann im DataSet bis ich speicher, oder? Also immer nur nach Klick auf Item, Datensatz laden, im DataSet lassen, weiter machen und nach Speichern Klick alles in die DB + DataSet Rows clearen. Ist das was du meinst?

Allerdings weiß ich dann auch nicht genau wie ich das alles mit der Liste verbinden soll, da dort nur 3-4 Spalten angezeigt werden, soll ich da eine extra DataTable nehmen und extra von der DB füllen und immer versuchen synchron zu halten mit den Änderungen?!

thx

16.10.2007 - 09:39 Uhr

OK habe ich verstanden, thx.

Aber wieso macht es dann keinen Unterschied bei einem vererbten Panel im OnPaint:


            base.OnPaint (pe);

            if (ImageOn == null || ImageOff == null) return;

            for (int i = 0; i <= Value; i++)
                pe.Graphics.DrawImage (ImageOn, new Point (i * 34, 0));

            for (int i = 9; i > Value; i--)
                pe.Graphics.DrawImage (ImageOff, new Point (i * 34, 0));


            if (ImageOn == null || ImageOff == null) return;

            for (int i = 0; i <= Value; i++)
                pe.Graphics.DrawImage (ImageOn, new Point (i * 34, 0));

            for (int i = 9; i > Value; i--)
                pe.Graphics.DrawImage (ImageOff, new Point (i * 34, 0));

            base.OnPaint (pe); 

Bei beiden sind die Bilder ImageOn und ImageOff im Vordergrund, obwohl beim zweiten dank base.OnPaint ja nochdrübergezeichnet werden müsste, oder? thx

16.10.2007 - 09:34 Uhr

@Cookiie

Wie meinst du "sondern nur das was du die nächsten paar Änderungen benötigst"?
Kann ich immer nur das reinladen was ich gerade angezeigt haben will?
Das würde ja mit einem entsprechenden SELECT Statement im Command funktionieren, welches bei der Fill Methode dann abgearbeitet wird, oder?

Was ist aber wenn ich Datensatz X lade ihn ändere und später wieder lade und er überschrieben wird, muss ich dann vor dem laden aus der DB prüfen ob er schon im Dataset ist und wenn ja ihn von da aus "laden"?

Nach dem Speichern kann ich dann wieder alle Rows löschen und von vorne anfangen alles langsam reinzuladen, bei Notwendigkeit?! thx

16.10.2007 - 08:05 Uhr

[MS Access 2000]

Hallo,

ich will um den Speicher zu schonen, möglichst alles erst laden, wenn es benötigt wird (aus der DB). Zuvor habe ich immer DataSets benutzt und alles reingeladen...

Jetzt will ich alles mit OleDbCommands lösen (Laden, Speichern, Abfragen, ...). Ich stehe jedoch vor einem großen Problem:

Wenn ich mehrere Datensätze ändere, wie manage ich das dann mit Commands? Ich will nicht immer sofort in die DB schreiben sondern erst nach einem "Speichern" Klick, der auch erst nach 100 Änderungen erfolgen könnte...

Jedoch müssen alle Änderungen die dann zuvor getätigt wurden auch in die DB aufgenommen werden.

Ein weiteres Problem ist es dann die Daten im Programm aktuell zu halten und auseinander zu halten was wie geändert wurde...

Wie löst ihr das und kann man das überhaupt? thx

15.10.2007 - 13:38 Uhr

Hallo,

wenn ich ein OnPaint / OnMouseMove Event überschreibe, brauche ich dann noch

base.OnMouseMove (e);

damit alles funktioniert, oder ist es gar hinderlich? Wozu dient es? thx

12.10.2007 - 11:34 Uhr

Macht es performancemäßig einen Unterschied ob ich dazu ein UserCtrl oder ein Panel verwende? thx

13.05.2007 - 19:13 Uhr

Ausgangsbilder: GIF; JPG; BMP
PNG (Die Kompressionsrate von PNG ist im allgemeinen besser als bei GIF) das hört sich ja gut an, aber wie speicher ich dann den Stream als PNG?! Ist etwas zu beachten bei Transparenz oder merkt der Encoder wenn ein GIF o.ä. transparent sein soll!? thx

13.05.2007 - 17:59 Uhr

Soll ich dann GIF als Format wählen, um die DB nicht zu groß werden zu lassen oder was schlagt ihr vor, wichtig ist Kompression und Transparenz.... thx

13.05.2007 - 17:44 Uhr

Hallo,

ich will in meiner Datenbank Bilder speichern, dafür wandel ich alle Bilder in JPG mit 95 % Qualität um, damit ich ein wenig Platz spare beim Volumen der DB. Allerdings geht immer die Transparenz verloren... Wie kann ich das verhindern?! Hier mein Code:


        public static string saveImage(Bitmap bmp, bool newImage, string sImage)
        {
            if (!newImage) return sImage;

            byte[] ba;
            System.IO.MemoryStream s = new System.IO.MemoryStream();
            clsImage.JPEGCompression(bmp, s, 95);
            ba = s.ToArray();
            return Convert.ToBase64String(ba);
        }

        private static void JPEGCompression(Image image, System.IO.MemoryStream Output, int Qualitiy)
        {
            if (image == null) return;

            ImageCodecInfo[] ImageCodecs;
            EncoderParameters ImageParameters;
            ImageCodecs = ImageCodecInfo.GetImageEncoders();
            ImageParameters = new EncoderParameters(1);
            ImageParameters.Param[0] = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, Qualitiy);
            image.Save(Output, ImageCodecs[1], ImageParameters);
        }

08.05.2007 - 22:24 Uhr

Hallo,

ich wollte mal fragen, ob es einen Performance Vorteil bringt wenn man weniger using (einbinden von Namespaces) benutzt?! Das ist mir grad aufgefallen, da VS standardmäßig einige setzt, ist es nun sinnvoll die unnötigen zu löschen oder macht das gar nichts aus? Ist es schneller System.Drawing.Drawing2D.LinearGradientBrush aufzurufen oder ist es egal ob ich dies mit using verwirkliche? Eigentlich dürfte das alles ja egal sein, da es ja erst compiliert wird und dann sowieso richtig gemacht wird, aber warum macht man dann nicht schon standardmäßig 20 usings rein, damit man das nicht manuell hinzufügen muss?! thx

08.05.2007 - 17:04 Uhr

Das mit dem Show All Settings war korrekt, allerdings habe ich danach immer noch keine solche Auswahlmöglichkeit, hier mal ein Screenshot:

http://img145.imageshack.us/img145/7787/unbenannt1cj8.jpg
http://img338.imageshack.us/img338/7228/unbenanntpu8.jpg

08.05.2007 - 16:26 Uhr

Ja genau VS 2005, allerdings hab ich das auf Deutsch und da gibt es nur:

  • Nach Escape zum Auswahlanker gehen
  • Textbearbeitung mit Drag n Drop
  • Bewegungen der Einfügemarke als Teil der Rückgängig Liste
  • Trennzeichen automatisch hervorheben
  • Änderungen nachverfolgen
  • UTF8 Codierung automatisch erkennen
  • Auswahlrahmen
  • Indikatorrahmen
  • Vert. Bildlaufleiste
  • Horiz. Bildlaufleiste