Laden...

Forenbeiträge von Buchstabensuppe Ingesamt 88 Beiträge

25.05.2020 - 19:41 Uhr

Dann verstehe ich nicht, was du erreichen möchtest. So, wie du es geschrieben hast, ist es jedenfalls kein gültiges CSS, daher kann es nicht funktionieren.

Es gibt ja drei <h3> Überschriften: page1, page2, overview
und drei links: <a href="#page1"> bzw. #page2 und #overview

Klickt jetzt jemand auf diesen link: <a href="#page1"> wird dieser Codeblock ausgeführt:

#page1:target, #page2:target {
    display: block
}

Dadurch wird dann das <h3> Element mit der ID "page1" auf "display: block" gesetzt und damit eingeblendet (weil der link mit dem href="#page1" angeklickt wurde).
(Bzw. wird das <h3> Element mit der id=page2 eingeblendet, falls jemand den link mit <href="#page2" gewählt hätte.)

So weit so gut.
Jetzt hätte ich aber noch zusätzlich gerne, dass das <h3> Element mit der id=overview ausgeblendet wird. Aber nicht grundsätzlich, sondern nur wenn dieser "Event-Handler" für page1 oder page2 ausgeführt wird.
Ich möchte also innerhalb dieses Block:

#page1:target, #page2:target {
    display: block
}

noch weitere HTML Elemente (in diesem Fall halt <h3 id="overview">) "refenzieren" und etwas damit machen.
Ich fand den Gedanken naheliegend und habe mich gewundert, dass das nicht geht - schließlich haben ja alle eine ID.

Aber ich glaube ich habe den :target selector einfach missverstanden.
Man gibt einfach einem Link eine ID von einem HTML Element mit und kann dann die Erscheinung von diesem Element manipulieren, so verstehe ich es jetzt.

Ich danke dir für deine Mühe und Input hat mir geholfen!

25.05.2020 - 17:05 Uhr

Nope, das funktioniert leider nicht.
Also jedenfalls, falls du meintest ich soll es verschachteln?

#page1:target, #page2:target {
    display: block;
    #overview {
        display: none;
      }
} 

Ein allgemeines, isoliert stehendes:

#overview {
    display: none;
}

funktioniert natürlich, so mache ich es ja auch am Anfang mit page#1 und page#2:

#page1, #page2 {
    display: none;
}

Aber ich dachte ich kann möglicherweise andere HTML Elemente innerhalb des
#page1:target, #page2:target { } Blocks referenzieren, scheint aber nicht so zu sein?

24.05.2020 - 17:20 Uhr

Guten Abend zusammen,

also ich habe mich an dem Flex Layout in der Zwischenzeit mal ein wenig ausprobiert.
Ich glaube der Ansatz sieht jetzt so wesentlich besser aus, oder?
Also mobile first oder großartig responsive ist da jetzt vermutlich noch nichts, aber so ganz grundsätzlich passt das glaube ich. Oder fällt euch irgendwas "grobes" daran auf?

Sonst wäre mein nächster Schritt glaube ich XAMMP zu installieren und meine Content Section anstatt mit dem CSS Target Selektor mit PHP und include zu befüllen. Denn PHP werde ich eh benötigen.
Das müsste ich dann eigentlich hoffe ich alleine hinkriegen 🙂

Trotzdem würde mich der auskommentierte Teil in der CSS Datei noch interessieren, falls ich doch mal nur mit statischen HTML Seiten auskommen möchte? Hab versucht es zu googlen, aber das war nicht so erfolgreich.

<!DOCTYPE html>
<html>
    <head>
        <title>Flexbox Test</title>
        <meta charset="utf-8">
        <link rel="stylesheet" type="text/css" href="style.css">
    </head>
    <body>
        <header>
            <h1>Header</h1>
        </header>
    
        <main class="flex-container">
        
            <section class="navigation">
                <nav>
                    <ul>
                        <li><a href="#overview">Übersicht</a></li>
                        <li><a href="#page1">Page1</a></li>
                        <li><a href="#page2">Page2</a></li>
                    </ul>
                </nav>
            </section>
        
            <section class="content">
                <h3 id="overview">
                    Content coming soon..
                </h3>
                <h3 id="page1">
                    Page 1
                </h3>
                <h3 id="page2">
                    Page 2
                </h3>
            </section>
        
        </main>
    
        <footer>
            <h1>Footer</h1>
        </footer>    
    </body>
</html>

style.css


#page1, #page2 {
    display: none;
}

/*
Kann ich innerhalb dieses Blocks das <h3> Element mit der ID "overview" referenzieren / ausblenden?
#overview.display: none; funktioniert nicht.
\*/ 
#page1:target, #page2:target {
    display: block;
} 

body {
    padding: 10px;
    margin: 10px;
}

header {
    border-style: solid;
    padding: 10px;
    margin: 10px;
}

footer {
    border-style: solid;
    padding: 10px;
    margin: 10px;
}

 .flex-container {
    display: flex;
    border-style: solid;
    padding: 10px;
    margin: 10px;
}

.navigation {
    width: 100px;
    height: 100px;
    border-style: solid;
    background-color: chartreuse;
    padding: 10px;
    margin: 10px;
}

.content {
    height: 200px;
    width: 100%;
    border-style: solid;
    background-color: blueviolet;    
    padding: 10px;
    margin: 10px; 
}

h1 { 
    font-size:300%;
    color: orange;
    font-style:italic;
 }

Schönen Sonntag! =)

13.05.2020 - 19:33 Uhr

Vielen Dank MrSparkle!

Ich werde dann also die iFrames wieder entfernen und mich genauer mit dem Flex Layout in deinem Link beschäftigen 8)
Der CSS target Selektor wird dafür bestimmt noch nützlich und mit (reinem) JavaScript / JQuery wollte ich mich ohnehin mal beschäftigen!

Wäre doch gelacht, wenn ich kein sauberes 2 Spalten Layout hinkriegen würde 🙂

Gruß

12.05.2020 - 20:59 Uhr

Hallo liebe Entwicklergemeinde,

letztes Jahr habe ich mich ein wenig mit ASP.Net beschäftigt, das war spannend hat sich aber wieder im Sande verlaufen erstmal.
Super, dass es in dem Unterforum hier auch um HTML und CSS allgemein geht, dann brauch ich mir kein Forum extra für Webdesign raussuchen 😉

Ich möchte erstmal einen Schritt zurück machen und meine Kenntnisse in HTML5 / CSS / JavaScript / PHP auffrischen bzw. überhaupt mal systematisch erlernen.
Das letzte mal, als ich mich mit HTML beschäftigt habe dürfte locker 15 Jahre her sein, damals wurde noch alles mit Tabellenlayouts gemacht, die habe ich noch gerade so verstanden als junger Teenager.
CSS begann da gerade seinen Siegeszug, wenn ich mich recht erinnere.
HTML5 ging komplett an mir vorbei, weshalb ich in den letzten Tagen und Wochen als erstes mal das HTML5 Handbuch durchgelesen habe.

So weit, so gut. Leider ist das Kapitel über Praxisbeispiele für Webseitenlayouts nicht mehr verfügbar.
Bei meinem ersten Versuch das simpelst mögliche Layout zu erstellen (2 Spalten: links eine schmale Navigation, rechts content) hab ich schon Grundsatzfragen.

Mein Ansatz mit iFrames funktioniert zwar, aber ist das "state of the art"?
Ich weiß es sind nicht mehr die verpönten Framesets aus HTML4, aber benutzt man sie überhaupt zur Layoutgestaltung oder nur um externe Inhalte einzubinden?
Und muss ich mir Gedanken um die Sicherheit machen, wenn ich lediglich HTML Seiten von dem eigenen Webserver damit einbinde? (Ich frage wegen dem sandbox Attribut, aber wenn ich das richtig verstanden habe geht es bei der SameOriginPolicy ja nur darum was fremde Webseiteninhalte - die ich gar nicht vorhabe einzubinden - mit der eigenen machen könnten?).

index.html mit den zwei iFrames:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>Test</title>
    </head>

    <body style="background-color: lightblue;">

        <div id="left" style="width: 150px; margin-right: 25px; float: left;">
            <iframe name="navigation" src="menu.html" width="150">
                <a href="menu.html">Navigation anzeigen</a>
            </iframe>
        </div>

        <div id="right" style="width: 600px; float: left;">
            <iframe name="content" src="overview.html" width="600">
                <a href="overview.html">Übersicht anzeigen</a>            
            </iframe>
        </div>

    </body>
</html>

Die Navigation (menu.html)

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
    </head>
    <body>
        <nav>
            <ul>
                <li><a href="overview.html" target="content">Übersicht</a></li>
                <li><a href="page1.html" target="content">Page1</a></li>
                <li><a href="page2.html" target="content">Page2</a></li>
            </ul>
        </nav>
    </body>
</html>

Ich gebe also dem iFrame einen Namen, den ich im Navigationslink "targette".
Kann man das so machen oder sollte ich schnell wieder vergessen?

Irgendwie sträubt sich etwas in mir gegen iFrames, weiß auch nicht warum.
Aber wie macht man es denn sonst?
In den Tutorials, die ich so gefunden habe sehe ich die Leute immer nur einen Heidenaufwand betreiben ihre CSS Boxen wunderschön zu stylen, aber es wird nie so richtig gezeigt wie das ganze dann "interagiert" bzw. ich finde die Stelle nicht in 45min+ Videos.

Den iFrame kann ich ja "targetten" über das name Attribut. Bei einem <div> Container scheint das nicht zu gehen (bzw. ich glaub nur mit JS und getElementById dann oder wie?).

Wie macht man es denn, dass die Links aus der Navigation sich in der richtigen DIV Boxen öffnen und nicht in einer neuen Seite?
Und angemommen ich würde das hinkriegen, und ich hätte links einen DIV Container mit der Navigation und rechts einen DIV Container mit dem Inhalt - ohne iFrames.
Dann müsste ich ja jedesmal alle HTML Seiten verändern, wenn ich einen neuen Navigationspunkt hinzufüge? Oder inkludiert man die navi dann mit php? Das würde eigentlich Sinn machen.

Ich hoffe es ist nicht zu wirr geschrieben, ich merke ich hab Schwierigkeiten mein Problem überhaupt zu formulieren. Aber vielleicht ganz simpel ausgedrückt: Sind iFrames üblich / empfehlenswert zum layouten und wie macht man es ohne?
Bei diesen ganzen verschiedenen Konzepten wie -Grid/-Box/-Float/-Flex/-Whatever scheint es immer nur um die Anordnung von Boxen zu gehen bzw. um Responsive Design und nicht um die "Interaktion". 🤔

Versteht ihr ungefähr wo es hakt bei mir?

Danke und ich hoffe ihr seid alle gesund!

16.06.2019 - 20:11 Uhr

Ich kann dir auf jeden Fall schonmal den Tipp geben, dass ich hier gelesen habe, dass DPD eine API anbietet.
Bestimmt lässt sich damit der Sendestatus abfragen. HtmlAgilityPack sollte also eigentlich nicht nötig sein.

Vielleicht kann dir jemand anderes noch etwas genaueres dazu sagen oder du magst mal in die Richtung recherchieren.

07.05.2016 - 20:49 Uhr

Den zweiten Teil deines Postings hatte ich ungefähr schon so erahnt.

Über den ersten werde ich nochmal kurz nachdenken müssen (Speichermanagement usw.).
Danke auf jeden Fall schonmal für den "Schubs" 🙂

06.05.2016 - 19:04 Uhr

Wow, danke für das ausführliche aufschlüsseln LaTino 👍 (auch wenn mir persönlich die Fakten jetzt im wesentlichen schon klar waren).

Mich würde allerdings noch interessieren warum nicht immer gleich verfahren wird, gibt es einen Grund dafür, dass lokale Variabeln nicht ebenfalls einfach implizit mit Standardwerten initialisiert werden?

Das Argument mit den aufgeräumteren Konstruktoren zieht bei mir für Klassenmember total, aber mir fällt kein Grund ein es bei lokalen Variabeln dann anders zu handhaben, übersehe ich etwas offensichtliches?

Zumal es zumindest der Debugger ja dann doch macht, wenn ich dich richtig verstanden habe.
[edit: Da hab ich zu schnell gelesen. Tut er ja nicht, deswegen kriegt man die Meldung ja auch beim Debuggen 😉]

Trotzdem, das unterschiedliche Vorgehen stiftet doch eigentlich nur Verwirrung?!

01.05.2016 - 06:00 Uhr

Trotzdem war das doch ein sinnvoller Beitrag von chilic, wenn auch vielleicht ein paar Stunden später.
Ich hatte auch das Gefühl dass hier ein falsches Verständnis von IndexOf vorliegt.

War auf jeden Fall sinnvoller als auf Namenskonventionen rumzureiten wie von meiner Wenigkeiteit, aber wie gesagt ich hatte das halt selber grad ausnahmsweise mal gelesen ^^

Wie auch immer ich denke es ist jetzt alles geklärt und schlage wir gehen davon aus, dass alles i.O ist bis der TE uns was anderes sagt 😉

30.04.2016 - 01:03 Uhr

Sicher, da hast du Recht.
Ich dachte mir halt nur wäret den Anfängen.
Irgendwann sieht der Code sonst nämlich "so aus" wenn ihm das keiner sagt.

Aber im Nachhinein denke ich mir (auch wenn ich mir das Registrierdatum von Maffi so angucke) dass er das schon längst wusste und es war halt nur schnell im Forumeditor dahingetippt.

edit: Das Problem war übrigens gelöst.

30.04.2016 - 00:10 Uhr

Da ich es selber gerade lese:

[Artikel] C#: Richtlinien für die Namensvergabe

"KundeObj" (Suffix) und "K"groß)undenliste ist glaube ich eher unschön.

27.04.2016 - 21:18 Uhr

Es wurde ja eigentlich schon alles gesagt, aber hier wäre das ganze auch nochmal bildlich dargestellt wie mehrdimensionale Arrays funktionieren.

http://openbook.rheinwerk-verlag.de/visual_csharp_2010/visual_csharp_2010_02_005.htm#mja7765cb85356771c1471d578f301c89f

Viel Erfolg und willkommen 😃

21.04.2016 - 23:34 Uhr

Gibt es auch eine


ex.InnerException.ToString()

?

19.04.2016 - 09:15 Uhr

Aber das => ist schon Lambda oder?

14.04.2016 - 21:02 Uhr

Schön 👍

Beachte bitte trotzdem die Tipps von dannoe.
Zumindest im Hinterkopf.

14.04.2016 - 19:07 Uhr

Ne, ich meinte dass du einfach nicht so schnell gucken kannst wie dein PC das macht...

Das passt eigentlich schon... da steht zuerst der 1. dann der 2. und dann der 3. Name in der Textbox.

Und erst den 3. siehst du dann, weil es so schnell geht.

Mach mal ein

System.Diagnostics.Debug.WriteLine(txt_An.Text.ToString());

in deiner for() Schleife von spalte1 und guck in den Debugger, dann siehst du das. Die 3 Werte werden da reingeschrieben!

edit: Ich persönlich würde das einfach über einen Timer machen, der alle 5 Sekunden feuert und dann die Textbox aktualisieren.

14.04.2016 - 17:21 Uhr

Hi Manfred,

Das auslesen klappt leider nicht
Manfred

Doch da kann ich dich schonmal beruhigen, das klappt super.

Aber wie kommst du darauf, dass das ganze verzögert passieren sollte und nicht sofort die letzten Einträge angezeigt werden in den Textboxen?

Computer sind schnell.

14.04.2016 - 15:03 Uhr

Hast du dein Spiel auch in Abhängigkeit der Zeit gemacht? Also das es immer konstant läuft?

Wie meinst du das? 😃

Ich "bitte" Windows durch panel.Invalidate() quasi ständig (-> 1 ms timer) mein panel neu zu zeichen, sprich: das Paint Ereignis des Panels auszulösen.
(100%ig erzwingen kann man den Zeichenvorgang durch Invalidate() glaube ich nicht nicht, aber das klappt trotzdem ganz gut)

Jetzt kann ich in diesem Paint Ereignis mein Zeug schreiben, das jede Millisekunde auf dem Bildschirm dargestellt werden soll z.B.


            // Raumschiff zeichnen          
            if (mySpaceship.IsAlive)
                mySpaceship.Draw(sender, e, this);

            // Auf Tastatureingaben reagieren
            CheckForKeysPressed();

            // Hindernisse zeichnen
            foreach (IDrawable obstacle in myAlienObstacleLst)
            {
                obstacle.Draw(sender, e, this);
            }

Mir hat am Anfang dieser Artikel sehr geholfen:
[Tutorial] Zeichnen in Windows-Forms-Programmen (Paint/OnPaint, PictureBox)

Genieße aber meine Beiträge ab jetzt bitte trotzdem mit Vorsicht, ich weiß selbst noch nicht wie sinnvoll sie gerade wirklich sind 😉

14.04.2016 - 13:32 Uhr

Auf einem Panel funktioniert dass mit dem DoubleBuffered leider nicht ganz so leicht wie auf der Form, ich hab damals diesen Codeschnipsel dafür gefunden:


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace EscapeTheAsteroids
{
    public class DoubleBufferPanel : Panel
    {
        public DoubleBufferPanel()
        {
            // Set the value of the double-buffering style bits to true.
            this.SetStyle(ControlStyles.DoubleBuffer |
            ControlStyles.UserPaint |
            ControlStyles.AllPaintingInWmPaint,
            true);

            this.UpdateStyles();
        }
    }
}

Und nein, normalerweise arbeite ich nicht mit Copy&Paste falls es jetzt wem in den Fingern juckt 😉

PS: Irgendwann poste ich das Spiel bestimmt. Notfalls halt auch unfertig, ich hatte die Sache von Anfang an so geplant möglichst viel dazu zu lernen 😃

14.04.2016 - 13:04 Uhr

Hallo BlackArtC#,

so mache ich das in meinem kleinem Weltraumshooter auch.
Ich habe einen Timer (tmrRefreshGUI, Intervall 1 ms.) und der ruft .Invalidate() auf meinem (DoubleBuffered)Zeichenpanel auf.

In dem _Paint Ereignis des Panels zeichne ich dann alles und reagiere auf Tasteneingaben.

Ist bestimmt nicht so StateOfTheArt aber es funktioniert auf jeden Fall schonmal und es war mein erstes Spiel.

Ich wollte das Projekt schon vor Ewigkeiten mal im CodeReview Bereich vorstellen und nach Feedback fragen, aber ich hab einfach keine Lust mehr die letzten 10% zu coden 😉 Da kann man bestimmt noch vieles viel viel besser machen MVC und so zb.

14.04.2016 - 12:06 Uhr

Der Threadtitel lautet ja:

Wann muss ich Standardwerte für Variablen erstellen und welche nehme ich am Besten?

Mit welchen du am besten initialisiert wurde ja gesagt. Aber täusch ich mich oder wurde auf das "wann" noch nicht eingegangen?

Es gibt da nämlich einen Unterschied zwischen den Klassenvariablen und den lokalen innerhalb einer Methode (die Fehlermeldung bezieht sich ja auch auf lokale Variablen.)

Wenn dir das schon klar war, dann sorry aber ich hab das selber gerade nochmal für mich getestet 😉

11.04.2016 - 21:05 Uhr

Hi,

also ich habe gerade nochmal kurz versucht mich der Sache anzunähern.
Und zwar erstmal mit der ursprünglichen Idee, also der klassische Weg über die Win32 API und den Fensterhandles (LaTino deinen Vorschlag werde ich aber auf Jeden Fall auch noch mal genauer unter die Lupe nehmen!)

Ich hab ein Beispielprogramm im Netz gefunden, dass die Fensterhandles ausliest und (solange ich nicht mit Tabs arbeite) funktioniert das schonmal super, an die Fensterhandles der Chatfenster käme ich also auf jeden Fall schonmal ran 🙂

Jetzt steht da aber unter "Prozess Klasse" allerdings "USurface_[Zahl]"

Das ist der Beweis dafür, dass die Fenster von den Machern komplett selber gezeichnet werden, oder?
So habe ich also schonmal keine Chance an ein ListBox Control ranzukommen, stimmts?

edit: Oder sagt das vielleicht überhaupt nix aus?
"USurface" sagt mir nix, ich hatte halt nur in einem Forum gelesen, dass das nach OpenGL / DirectX klingt und wohl ein "CustomDraw" wäre, das klingt halt verdächtig danach was Abt weiter oben vermutete 😉
Allerdings steht da auch bei andern Programmen normalerweise immer eine anscheinend willkürliche Klasse. Kann mit USurface vielleicht zufällig irgendwer was anfangen?

06.04.2016 - 14:23 Uhr

Ich hab mich schon gewundert warum solche Kommentare so lange gedauert haben 😉

Wenn du ein grundsätzliches Problem mit Microsoft oder Windows hast, dann bist du hier vielleicht (nur gut gemeint) einfach im falschen Forum.

04.04.2016 - 00:07 Uhr

Ah ok gut zu wissen, wieder was gelernt 😃

Zumindest das mit den Metainformationen sollte aber stimmen.

03.04.2016 - 15:42 Uhr

Hi,

ist dir M3U ein Begriff? Das ist eine Metadatei, die Informationen über MP3s bereitstellt.
Ich glaube das war mit der Beitstellung der Informationen gemeint. Was "speist" du denn da ein das Webradio, sind das MP3s?

edit: Ich bin mir da allgemein unsicher, aber du hast ja bisher noch nicht viel Feedback bekommen vielleicht ist das ein Stichwort.

31.03.2016 - 11:04 Uhr

Geil, das sieht auf den ersten Blick nach einer fertigen Lösung aus 👍 👍 👍
Vielen Dank Latino!

Ich werde trotzdem versuchen etwas herumexperimentieren, melde mich bestimmt nochmal hier die Tage / Wochen 😉

31.03.2016 - 10:35 Uhr

Alles klar, vielen Dank an euch. Ich hab jetzt erstmal was zum spielen 😉

31.03.2016 - 10:15 Uhr

Kann ich rausfinden ob die benutzt wird? Oder muss ich dafür das Steam Team anschreiben? 😉

edit:

In höheren Programmiersprachen, wie zum Beispiel C, C++ oder Delphi, wird die WinAPI immer verwendet, wenn Windows-Anwendungen geschrieben werden, obwohl der Programmierer sie eventuell direkt im Quelltext gar nicht aufgerufen hat. Die Aufrufe der API werden durch eine Laufzeitbibliothek gekapselt, die ihrerseits Funktionen der Windows API aufrufen.

Windows Application Programming Interface

31.03.2016 - 10:02 Uhr

Okay Danke schonmal.

Das klingt ja schonmal relativ ernüchternd..

Müssen die auf einem Windows System nicht die Standard Windows API in irgendeiner Form benutzen?

Auf Wikipedia kann ich nicht viel finden, da steht nur C++ / Objective C und dass es auf Windows, Mac, Linux und Mobilgeräten läuft. Außerdem gibt es wohl eine Steam API.

Ich hätte gedacht mit WinApi DLLImport geht es auf jeden Fall, aber selbst dann würde ich es wohl eher erstmal hinten anstellen. Versuche grad erstmal nur ein Gefühl zu bekommen was möglich wäre.

31.03.2016 - 09:27 Uhr

Das wird jetzt hier in einen Glaubenskrieg ausarten, wenn ihr das fortführt 😉

Ja, ich kann das nachvollziehen wenn man sich sowas ins Regal stellen möchte, so doof das jetzt klingen mag.

Ökologisch und Ökonomisch hast du natürlich vollkommen Recht. Und bei schnellem Internet ist es dann sogar bequem.

edit: Rechtschreibung..

31.03.2016 - 06:52 Uhr

Hallo Leute,

langsam aber sicher neigt sich mein kleines Projekt (ein Spielchen) nach langer Entwicklungszeit und noch längerer Pause im Programmieren dem Ende zu.

Und ich mache mir er(n)ste Gedanken was ich danach angehen könnte.

Viele kennen sicher die Spieleplattform Steam.
http://store.steampowered.com/

Dort gibt es eine Freundesliste zum Chatten, die ich recht oft als eine Art Messenger benutze und es hat mich schon immer geärgert, dass es dort keine Chat-History gibt (oft will man aus den alten Gesprächen nochmal was nachgucken...)

Meine Idee wäre ein Programm evtl. auch ein Dienst, dass den Chatverlauf in TXT Dateien für mich protokolliert, das haben die Entwickler wohl vergessen.

Dafür müsste ich dann (so denke ich) ungefähr so vorgehen:

  • Abfragen ob das Programm überhaupt läuft

  • Durch Fensterhandles irgendwie ermitteln ob ein Chatfenster geöffnet ist (Es gibt keinen wirklichen Fenstertitel, nur den Namen desjenigen mit dem man chattet) Leider gibt es auch Tabs.

  • Evtl. Fokus aus der Chat-Textbox entfernen und mir den Chatverlauf durch Markieren + Copy & Paste organisieren (diese Funktionalität hat das Control)
    => Das müsste schnell gehen damit es nicht beim Chatten behindert.

  • Entsprechend mit den alten Textdateien abgleichen und neues wegschreiben (man sieht immer nur die letzten 20 - 30 Nachrichten im Chatfenster).

Ich hab schon etwas recherchiert hier im Forum und bin auf Dinge wie "EnumWindows" aber vorallem auf WinAPI gestoßen...

Gibt es einen bequemeren Ansatz in .Net bzw. wäre mein Vorhaben ohne WinAPI überhaupt umsetzbar?
Meine Kenntnisse würde ich als leicht fortgeschrittener Anfänger einstufen, ich habe zwar eine abgeschlossene Ausbildung in der IT aber das heißt in meinem Fall jetzt nicht all zu viel von daher würde ich es eigentlich für sinnvoller halten erstmal meine Kenntnisse in C# weiter zu vertiefen, bevor ich mich mit der WinAPI auseinandersetze.

Habt ihr Ideen, Anregungen, Tipps, Anmerkungen?

Danke und Gruß

Buchstabensuppe

30.03.2016 - 11:54 Uhr

Bitte, gern geschehen.
Freut mich, dass ich auch mal zu einer Lösung beitragen konnte 🙂

Und dumme Fehler gibt's ja bekanntlich nicht, kann alles passieren.

Gruß

29.03.2016 - 23:55 Uhr

Also ich hab das mal nachgestellt, bei mir funktioniert dein Code perfekt 🤔

"20160328 Besprechung.docx" wurde als "20160329 Besprechung.docx" kopiert und anschließend in Word (2007) geöffnet.

Beide Word Dateien, sowohl alt als auch neu, sind 89 KB groß.

Aufgefallen ist mir nur das hier:


// DirectoryInfo Objekt des MOMENTANEN Verzeichnisses
System.IO.DirectoryInfo ParentDirectory = new System.IO.DirectoryInfo(folder);

Ich betone das momentane Verzeichnis wegen dem Namen ParentDirectory wolltest du eigentlich eine Ebene höher in der Ordnerstruktur?

Du machst ja:


Path.Combine(folder,files.Last())

Ich kann mir nur vorstellen, dass du hier mit files.Last() die falsche Datei erwischt (z.B. irgendeine Exe) weil du in einem anderen Ordner bist als du dachtest und diese dann durch File.Copy selbst in .docx umbenennst, dann ist die Datei natürlich kaputt.

Ist die einzige Idee, die ich jetzt hab weil wie gesagt bei mir funktioniert das.

edit: Dafür spricht auch, dass die Datei immer 6 KB groß ist. Du erwischt bestimmt irgendeine 6 KB große Datei 😉

24.03.2016 - 00:24 Uhr

Ich muss mich da leider anschließen (bin selber Anfänger, es ist also wirklich ebenfalls nicht böse gemeint)

Aber du hast dir hier meiner Meinung nach selbst ein recht ambitioniertes Ziel gesetzt.

Mein Rat wäre dass du nicht enttäuscht bist, falls es auf Anhieb nicht gleich so klappen sollte wie du es dir im Moment vorstellst.

16.03.2016 - 16:35 Uhr

In deinem Pfad hast du nicht zufällig in Windows eigentlich verbotene Zeichen für Verzeichnisse oder?

\ / : * ? < > |

Ansonsten hab ich noch das hier gefunden:

http://stackoverflow.com/questions/12999421/exception-at-exporting-eventlog

Da wird ein Problem mit UAC vermutet und ein Verzeichnis namen LocalMetaData gelöscht.

Hoffe es hilft ein bisschen.

03.03.2016 - 07:47 Uhr

Hallo,
[...] zentralen Admin-Server geschrieben [...]

Das wollte ich gestern ich auch erst vorschlagen!
Vielleicht rechtfertigt der Aufwand den Nutzen bei diesem Prozess ja nicht, ich hab ja keine Ahnung was das Programm macht aber schön fände ich sowas natürlich schon 🙂

Denn ich könnte mit vorstellen, dass du dann auch das hier:

Ich will die nicht auf Krampf schließen. Am liebsten würde ich mir gerne auslesen lassen von allen Computern ob das Programm geöffnet ist, das würde mir persönlich reichen.

Der nächste Schritt wäre dann den Prozess auf Krampf zu schließen.

elegeant umschiffen kannst.
Beziehungsweise den Nutzer halt mit einer MessageBox + Countdown vorwarnen kannst (oder so) bevor du dann mit der Keule kommst, er / sie könnte dann noch seine Daten speichern (oder so) 8)

Obwohl wenn ich näher drüber nachdenke. Vielleicht kann das der Windows Server 2008 R2 sowas auch schon von Haus aus.
Sowas ist doch im Einsatz oder? Diese Frage von Jamikus hast du ja noch nicht beantwortet 😉

02.03.2016 - 20:57 Uhr

Hi,

Ich muss also überprüfen welche checkboxen aktiviert sind und nur diese nacheinander berechnen. Irgendwie muss das doch mit einer Schleife gehen aber ich habe keinen blassen Dunst wie... O_o

mit der Checked Eigenschaft der Checkbox kannst du abfragen ob die Checkbox aktiviert wurde.

Die Checkboxen könntest du zB. in eine Liste aufnehmen und dann mit einer Schleife entsprechend alle abfragen.

02.03.2016 - 15:40 Uhr

@Fzelle:

Ich war zwar nicht gemeint, aber ich hab mir das mal schnell gesichert wer weiß wie lange es das noch gibt 😉

Danke für den Hinweis 👍

27.02.2016 - 18:58 Uhr

Mir fällt noch auf, dass Abt einen UNC Namen benutzt

\abtnas1\Backups und du eine lokale Netzwerk IP
192., ...

Kann es eventuell damit zusammenhängen?

  • FullyQualifiedErrorId Lässt mich in diese Richtung denken.

Werde mich jetzt aber aus dem Thread hier zurückziehen, da ich nur rate 😉

edit: Wie kommt es eigentlich, dass die Leerzeichen bei "New - PSDrive –Name “ in deinem Code auftauchen, aber nicht in der "angeblichen" Ausgabe, die du gepostet hast?
Du kannst dir sowas im Direktfenster im Debugger ausgeben lassen. Es war jetzt nicht Sinn der Übung, dass du uns mitteilst was du denkst was da stehen müsste, oder wie kam das zustande?

27.02.2016 - 00:01 Uhr

Hallo R3turnz,

ich habe keine Ahnung von PowerShell, aber wie wird der Command denn zusammengebaut?
Hast du ihn dir mal ausgeben lassen, wie ist die Ausgabe? Vielleicht springt es dir oder jemand anderem dann ins Auge.

Gruß

25.02.2016 - 02:00 Uhr

Hi,

naja ich denke mal im Normalfall spricht man ein Steuerelement über seine "Benamsung" an, oder? 😉

Dann gibt es in C# natürlich das Konzept der Ereignisbehandlung, aber...
Normalerweise versucht man ja nicht Controls auf möglichst unterschiedliche Art & Weisen anzusprechen, deswegen verstehe den Sinn des Tutorials noch nicht so ganz.
Vielleicht kann du mich da aufklären, aber vielleicht wäre es besser wenn ihr euch einen... weiß auch nicht... etwas konkreteren Themenbereich für so eine Anleitung raussucht (werde sie dann auch gerne selbst lesen, lerne immer gerne etwas dazu)

Ich glaub mit isDefault legst du vermutlich einfach den Fokus auf das Control und es würde mich nicht wundern wenn es intern dann trotzdem über seine Benamsung angesprochen wird.

edit:

[...]z.B. gebe ich einem Button den Namen label1.[...]

Würde ich nicht tun.

24.02.2016 - 23:09 Uhr

Schön, dass du eine funktionierende Lösung hast 🙂

Aber du fragst doch bestimmt den Benutzer vorher ob er so ein Kontextmenü überhaupt haben möchte, oder?
Und entfernst den registry Eintrag dann auch wieder nach einer eventuellen Deinstallation?

Fiel mir nur grad so ein, ich wüsste auf die Schnelle nämlich gar nicht wie ich sowas wieder wegkriege und würde wohl die Krise kriegen 😉

21.02.2016 - 01:24 Uhr

Ist es nicht gerade eine der Stärken von XMl Hierachien abzubilden?

14.02.2016 - 20:05 Uhr

[...] Habe an string.replace gedacht, dies würde aber kein Sinn machen, da ich ja nicht ersetzen sonder entfernen[...]

Jetzt mal unabhängig davon ob das Sinn machen würde oder bessere Alternativen gibt, da möchte ich mich gar nicht einmischen.

Prinzipiell kannst du mit string.Replace() eine Zeichenfolge auch mit einer leeren Zeichenfolge ersetzen. Als string.Replace("text", "");

11.02.2016 - 21:11 Uhr

Hoffentlich versucht er jetzt nicht:

format fzelle 😉 😉

Ich weiß wir Anfänger sollen in die Doku gucken, das ist wichtig.
Aber manchmal weiß man einfach nicht wo man anfangen soll und es war sein erster Beitrag hier.

@ TE: Bestimmt führen dich die Tipps und evtl. noch das hier https://msdn.microsoft.com/en-us/library/xhtyw595%28v=vs.84%29.aspx zum Ziel.

Sonst einfach nochmal eine konkretere Fragen posten 🙂

edit: Vergiss meinen Link der ist VBScript.

11.02.2016 - 19:53 Uhr

Hallo,

wo genau kommst du nicht weiter?
Geht es um die "Datumsdifferenz"?
Weißt du nicht wie du die Hintergrundfarbe in deinem DGV änderst?
Oder etwas anderes?

Auf die Schnelle könnte dir vielleicht das helfen?
https://msdn.microsoft.com/de-de/library/system.windows.forms.datagridviewcellstyle.backcolor%28v=vs.110%29.aspx

11.02.2016 - 14:04 Uhr

Zurück zum Thema 🙂.
LaTino

Im Zug auf jeden Fall nur iPhone (immer das neueste!) und dann ganz laut HipHop anmachen, ist doch wohl klar, yo! 😁

Dass die Leistung - zumindest für nicht Risenprojekte - ausreicht kann ich mir bei dem ein oder anderen Tablet sehr gut vorstellen. Rolands Tablet ist mit 8 GB Ram und i7 zB. flotter als mein Desktop PC.
Sorgen würde mir eher die "Tastatur" machen und ich würde deswegen wohl definitiv ein Notebook bevorzugen.
Andererseits staune ich auch immer nicht schlecht wie schnell manche Leute auf einem Handy tippen können.

Wenn ich mir die Hardware von dem Surface 3 angucke und mit meinem PC vergleiche:

Beide 4 GB Ram
2,66 GHZ i5 (Quadcore) vs Intel® Atom™ x7-Prozessor (2,4 GHZ im Burst sonst 1,6 GHZ) (Quadcore)

Stellt sich mir höchstens die Frage ob der Prozessor ausreicht, die Atom Prozessoren sind ja etwas schwächer auf der Brust, dennoch ist es ja immerhin ein QuadCore und aus dem Bauch raus würde ich sagen das müsste ganz gut gehen. Aber vielleicht besitzt hier jemand eine Atom CPU und kann da mehr zu sagen.

Notfalls hast du ja ein Rückgaberecht - welches man natürlich nicht missbrauchen sollte wie es heut zu tage leider wohl häufiger vorkommt - aber in diesem Fall wäre es nachdem du dich ja informiert hast und dann feststellst, dass sich das Produkt leider doch nicht für dich eignet ja genau dafür gemacht!

Gruß und viel Spaß damit, falls du es dir besorgst.

09.02.2016 - 18:51 Uhr

Noch nie gemacht, aber ich könnte mir vorstellen du triffst früher oder später auf die Problematik, dass soweit ich weiß nicht alle PDFs einen TextLayer haben. Was sind das denn für PDFs, kannst du darin mit dem Mauszeiger Text markieren?

Ich vermute das ideale Vorgehen wäre dann ein anderes als bei PDFs ohne TextLayer (OCR - Bilderkennung?). Aber konkrete Tipps habe ich leider nicht.

08.02.2016 - 22:22 Uhr

Ich fürchte es hilft dir leider nicht weiter, aber ich werfe es trotzdem kurz in die Diskussion:

DataGridViewAutoSizeColumnMode.DisplayedCells;

Hilft das?
Sonst einfach ignorieren und weitere Antworten abwarten, ich kenne das Control noch nicht so gut und WPF schon gar nicht.

edit:

[...] Ich will, dass meine Daten die Breite des DataGrid füllen. [...]