private void MainForm_KeyDown(object sender, KeyEventArgs e)
{
switch (e.KeyCode)
{
case Keys.W:
table.Navigate(Direct.Up);
break;
case Keys.X:
table.Navigate(Direct.Down);
break;
case Keys.D:
table.Navigate(Direct.Right);
break;
case Keys.A:
table.Navigate(Direct.Left);
break;
}
}
Mit Haltepunkt in Methodenkopf setzen hab ich schon gemacht. Die Methode wird bei den Pfeiltasten gar nicht aufgerufen. Mit A... wie es hier wird das Event aber gefeuert.
sry:
//
// MainForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(505, 407);
this.Controls.Add(this.startButton);
this.Controls.Add(this.table);
this.Name = "MainForm";
this.Text = "Form1";
this.PreviewKeyDown += new System.Windows.Forms.PreviewKeyDownEventHandler(this.MainForm_PreviewKeyDown);
this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.MainForm_KeyDown);
this.ResumeLayout(false);
hi,
das event soll ja in der form aktiviert werden: der code dafür
this.components = new System.ComponentModel.Container();
this.startButton = new System.Windows.Forms.Button();
this.timer = new System.Windows.Forms.Timer(this.components);
this.table= new Test.Table(2,4);
this.SuspendLayout();
glaub aber nicht, das da was hilfreiches drinnesteht
Hi,
ich arbeite an einer Steuerung für ein Programm. Dazu will ich die Pfeiltasten benutzen.
Ich habe wie gewohnt das KeyDown-Event des Formulars aboniert (und später auch die KeyPreview-Eigenschaft auf true gesetzt). Allerdings wird das Event bei den Pfeiltasten nicht aktiviert bei den anderen Tasten (die ich probiert habe, z.B. a,Enter...) funktioniert es jedoch problemlos.
Ich bin jetzt ein bisschen verwundert. In einem neuen Projekt das ich eben nochmal erstellt habe geht es normal. Weiß vlt jemand ne Antwort
MfG ThePaul
hi,
ich verweise einfach mal auf den Webcast. Thema passt, glaube ich 😉
http://www.microsoft.com/germany/MSDN/webcasts/library.aspx?id=118755297
Original von Noodles
>
weiß jemand ob es das Tutorial noch gibt? Die Adresse ist nicht erreichbar.
Da nach einiger Entwicklungszeit mein Mosaikersteller inzwischen fast alle Features hat, die er kriegen soll, ist es an der Zeit das Projekt hier vorzustellen.
Ziel ist es, aus einem Grundbild ein Mosaikbild zu erstellen, wie es z.B. beim Poster von "the truman show" benutzt wird. Dazu wird das Bild erst in ein Raster zerlegt, das den Grundstein für das spätere Mosaik bildet.
Danach wird das Mosaik "gerendert". Dabei habe ich noch eine Möglichkeit zur Erstellung von einfachen Mosaiks (nur Farben, keine Bilder) eingebaut. Für das Rendern mit Fotos ist jedoch eine Sammlung von Fotos nötig. Diese lässt sich mit dem integriertem Datenbankersteller erzeugen. Die Sammlung lässt sich dann als XML-Datei speichern.
Da häufig das Problem auftritt, das man zu wenig Bilder auf dem PC hat, habe ich ein weiteres Feature eingebaut. Damit ist es möglich Bilder direkt aus Flickr herunterzuladen. Dazu verwende ich die Flickr.net Libary.
Screenshot:
Zum Oberflächenstyling verwende ich das Krypton Toolkit.
Das ganze ist relativ leicht erweiterbar, allerdings müssen in der UI noch viele Einträge gesetzt werden. Das werde ich in der nächsten Version durch ein PlugIn-System umgehen.
Ich habe das Projekt, hauptsächlich zum Ausprobieren, bei Sourceforge angemeldet. Also nicht wundern, wenn beim Download der typische Server-Dialog kommt. 😉
*Projektseite
*Website
*Download
MfG ThePaul
erstmal danke für die schnelle Antwort.
ich bin jetzt soweit, das die Forms parallel und einzeln laufen können. Allerdings läuft die Anwendung auch weiter wenn alle Forms geschlossen sind.
Soweit ich den Code aus deinem Link verstanden hab müss ich jetzt in jedes FormClosed-Event den Code einbauen:
#if !SW_MAINWINDOW
protected void MyWindowDisposed (Object sender, EventArgs e)
{
Application.Exit();
}
#endif
MfG ThePaul
Hi,
der Titel ist nicht ganz eindeutig aber besser gehts nicht 😐
Also. Ich habe ein Hauptformular A, aus dem ein zweites B aufgerufen wird, das eine extrem Zeitaufwendige Sache ausführt. B kann mittels eines NotifyIcons in die Taskleiste minimiert werden.
Jetzt möchte ich, dass man A schließen kann und B trotzdem weiterläuft. Allerdings wird bei mir immer B geschlossen wenn ich A schließe.
Muss ich dazu noch nen extra Prozess starten oder gibt es andere Lösungsmöglichkeiten.
MfG ThePaul
gut,
so hab ichs bis jetzt gelöst. Dachte das es noch ne einfachere Möglichkeit gibt.
Hi,
ich versuche grade mit Hilfe der DirectoryInfo.GetFiles(...) Methode alle Bilder aus einem Ordner auszulesen. Allerdings weiß ich nicht wie ich mehrere SearchPatterns einbringen kann. (also *.jpg und *.png).
Ich könnte die Suche mehrmals durchlaufen lassen, aber es gibt bestimmt bessere Möglichkeiten. (Diese wäre auch mit allen GDI+-kompatiblen Grafikformaten reichlich aufwendig.)
MfG ThePaul
würde mal sagen so:
myStruct = (Struct)formatter.Deserialize(fs);
edit: mh, zu langsam
Hi,
ich habe ein Bild, von dem ich die Durchschnittsfarbe ermitteln möchte.
Bis jetzt lasse ich in 2 verschachtelten Schleifen elle Pixel durchgehen und addiere jeweils die einzelnen Farbwerte. Das ist jedoch nicht wirklich performant.
Gibt es noch andere Möglichkeiten?
MfG ThePaul
als einführung find ich den webcast Generics mit C# gut:
http://www.microsoft.com/germany/msdn/webcasts/library.aspx?id=118757741
Bei mir gibt es keine Snippets mehr 🙁
bei der Englischen Version warn die immer drin. Weiß wer wie ich die wieder rein bekomm?
Beispiel wüsst ich keins.
Aber zum Zeichnen des Kreises nimmst du ein Graphics-Objekt. Dann muss du nur noch auf die Mauskoordiaten reagieren wenn die Maustaste gedrückt ist!
MfG ThePaul
Wie wäre es die einzelenen Werte der Pixel von beiden Bildern zu addieren?
Man muss nur beachten, dass weiß einem RGB von 3*255 hat und bei einer Addition der Werte das Bild heller werden würde.
MfG ThePaul
Hi,
ich habe ein paar KOmponenten, die ich dauerhaft in der Toolbox haben möchte. Sie liegen in verschiedenen DLL's bei mir auf der Festplatte und sind nicht im GAC installiert. Das Hinzufügen zur Toolbox ist kein Problem, allerdings muss ich nach jedem Programmstart (VS) die Komponenten neu einbinden. Das ist nervig!
Wie bekomm ich es hin, dass die Komponenten dauerhaft in der Toolbox abgelegt werden?
Vielen Dank im vorraus. ThePaul
Original von herbivore
Hallo thepaul,Arc Tan ist ok. Wenn du jetzt noch berücksichtigst, in welchem der vier Qudranten der Punkt liegt, kannst du aus 2 x 180° auf deine 360° kommen.
herbivore Wie kann ich das Brücksichtigen?
Meine Idee wäre zu gucken ob der Y-Wert des 2. Punktes kleiner ist als der des ersten!?
MfG ThePaul
Hi,
ich habe eine Strecke (bzw. 2 Punkte). Jetzt möchte ich den Winkel der Strecke zur Horizontale (X-Achse) berechnen.
Ich habe mir gedacht dafür die Arc Tan Funktion zu nehmen. Es gibt nur das Problem das der Intervall der Tangens-Funktion nur Pi groß ist und ich deshalb nur Winkel bis 180° berechnen kann (Berichtigt mich wenn das falsch ist!). Ich brauche aber Winkel bis 360°!
Wie kann ich den Winkel berechnen?
MfG ThePaul
Danke, funktioniert alles!
war so ein richtig dummer fehler 🤔
Hi,
ich möchte einfache Punkte auf eine Form zeichnen. Da die Punkte zum Teil später im Programm wieder gelöscht werden will ich sie in einer ArrayList speichern.
Daraus folgt mein Quellcode:
private ArrayList points;
public Form1()
{
InitializeComponent();
points = new ArrayList();
//Punkte hinzufügen
points.Add(new Point(10,10));
points.Add(new Point(210,10));
points.Add(new Point(110, 110));
points.Add(new Point(10, 210));
points.Add(new Point(210, 210));
}
private void drawPoints()
{
Point p;
Graphics g = this.CreateGraphics();
Brush b = new SolidBrush(Color.Red);
foreach (object o in points)
{
p = (Point)o;
g.FillRectangle(b, p.X - 1, p.X - 1, 3, 3);
}
}
Die Methode drawPoints rufe ich dann aus einem Click-Event heraus auf.
Allerdings werden auf der Form immer nur 3 Punkte anstatt 5 gezeichnet.
Also steh ich auf der Leitung oder warum geht das nicht?
MfG ThePaul
Hi,
ich hatte die Idee zu einem Projekt eine Art Webcast ins Internet zu stellen.
Welche Software gibt es dafür (Bildschirm+ Ton)?
MfG ThePaul
hi,
also FrintPage kenn ich nicht.
aber in openoffice gibts eine funktion die präsentattionen in flasch umwandelt. das sollten dann auch leute abspielen können die kein MS office haben
MfG ThePaul
Hi,
ich habe mit gerade das October DirectX SDK herundergeladen.
Jetz habe ich versucht ein einfaches Dreieck mit Device.DrawUserPrimitives(...) zu zeichnen.
Alledings nimmt diese Methode keinen Vertex-Array mehr sondern will einen GraphicsBuffer (früher GraphicsStream) haben.
Dafür finde ich aber keine entsprechnende Funktion um den Arra einzulesen.
Weiß jemand wie das geht?
MfG ThePaul
Hi,
ich habe ein 2-dimensionales Array. Von diesem möchte ich in einer Methode die Dimensionen auslesen.
z.b.:
int[,] werte = new int[3,4];
int laenge = werte.length;
laenge wäre heir 12 groß! wie kann ich die dimensionen also 3 und 4 ausrechnen.
MfG ThePaul
Hi,
ich hbe eine Assambly. Jetzt möchte ich mit Attributen Eigenschaften von Klassen Beschreibung und Category zuweisen (geht doch so?)
[
Description("Beschreibung"),
Category("Kategorie")
]
public int Zahl
{
get { return zahl; }
set { zahl = value; }
}
Allerdings werden mir da Fehler angezeigt.
Muss ich dazu irgendwelche Namespaces einbinden.
MfG ThePaul
Original von Programmierhans
Du kannst auch eine Main() ohne Parameter haben... dann können die Environment.CommandLineArgs immer noch ausgelesen weden
ja, so hab ichs jetzt!
hat eins von beiden irgendwelche vorteile?
gut funktioniert alles 😁
ein großes dankeschön ThePaul
ps.
(sorry hab's halt auf English)
die vs 2005 beta ist auch englisch 😉
Original von Programmierhans
Ich kenne nur VS 2003
hm, ich nehm vs 2005 beta 2, sollte aber egal sein.
nochmal die frage von oben (vlt. verständlicher): wie schaffe ich es dem debugger vorzugaukeln, das ich Öffnen mit... und dann das programm gewählt habe
Original von Programmierhans
Guck Dir die Parameter im Debugger an und Du weisst es 🙂
wie mach ich denn das?
also ich weiß wie man den debugger benutzt, aber wie kriege ich vs dazu das es dem programm sagen soll, dass es die datei öffnen soll. oder wie bekomme ich das programm dazu das es von vs debuggt wird?
MfG ThePaul
hi,
hatten wir schon ein paar mal hier.
nimm einfach
if (Bitmap.GetPixel(x,y).ToArgb() == Color.Black.ToArgb())
MfG ThePaul
wird als parameter der absolute oder relative pfad angegeben?
Hi,
ich möchte das bestimmte Dateien standartmäßig mit meinem Programm geöffnet werden (also bei doppelklick auf diese datei soll das programm starten und die datei gleich öffnen).
Muss ich dazu Startparameter einbauen oder was sonst?
ThePaul
Hi,
ich habe ein graustufen Bild gegeben. Diese möchte ich zwecks Auswertung in ein double Array umwandeln.
Mein Problem ist jetzt, dass ich unterschiedliche Bildgrößen immer auf die gleiche Arraygröße skalieren muss. Dazu hab ich keine Idee.
Kann mir jemand weiterhelfen?
MfG ThePaul
Hi,
erstmal sollen die Werte in tabelle ja bestimmt bearbeitbar sein. Deshalb musst du ein struct oder eine Klasse nehmen und kein Enum.
Von dieser Klasse oder struct erzeugst du dann mit
tabelle[] daten = new tabell[arrayGröße]
ein Array in der gewünschten Größe.
MfG ThePaul
sollte eigentlich auch ohne tabPage.Focus() angezeigt werden. 👍
Hi,
vlt hilft dir die Graphics.MeasureString Methode. such einfach mal in der Doku.
MfG ThePaul
edit: viiieeel zu spät 😉
das mit den 3 buchstaben minimallänge liegt glaube ich an der funktion search() in php. die funktioniert erst ab 3 zeichenim suchbegriff.
MfG ThePaul
Hi,
guck mal hier: http://www.delphipraxis.net/topic11179_inno+setup+und+co.html
Da ist Inno Setup, NSIS und der Microsoft Installer beschrieben
MfG ThePaul
Hi,
guck mal auf http://www.everaldo.com/crystal.html. sind zwar nicht im XP-Style aber auch modern 😉
sind zwar png's, wenn du ico's brauchst musst du sie dir halt draus machen 🙂
MfG ThePaul
Hi,
du musst einfach die Konvertierung in die Integer-Variable auch in den checked-Container setzten.
so solltes gehen
try
{
checked
{
System.Int32.Parse(textValue.Text);
setBits();
}
}
Was sollen eigentlich die Klammer hinter System.Int32.Parse(textValue.Text);?
MfG ThePaul