AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Delphi-PRAXiS - Lounge Klatsch und Tratsch Probleme der Win32-API-Tutorials 1.9.1 (CHM)

Umfrageergebnis anzeigen: Sollen die PSDK-Links bleiben?


Ja, die sind gut 13 86,67%
Nein, die stören mich 2 13,33%

Thema durchsuchen
Ansicht
Themen-Optionen

Probleme der Win32-API-Tutorials 1.9.1 (CHM)

Ein Thema von MathiasSimmack · begonnen am 14. Apr 2004 · letzter Beitrag vom 6. Mai 2004
Antwort Antwort
Seite 1 von 2  1 2      
MathiasSimmack
(Gast)

n/a Beiträge
 
#1

Probleme der Win32-API-Tutorials 1.9.1 (CHM)

  Alt 14. Apr 2004, 09:38
Hallo.

Luckie hat ja gestern nun die neue Version der Tutorials auf deinen Server geworfen, und da wollte ich a) Werbung und b) auf kleine Problemchen aufmerksam machen. Ich habe nämlich (quasi auf den letzten Drücker) die Hilfedateien komplett getestet, speziell was die PSDK-Links angeht. Und dabei sind mir ein paar Dinge aufgefallen:
  1. Unter Windows 98 kann es passieren, dass das Inhaltsverzeichnis des PSDK leer ist wenn man einen der Links aus der CHM-Hilfedatei aufruft. (Oder der Index.) Unter Windows XP konnte ich das nicht nachvollziehen. Evtl. ist es also ein Betriebssystem-abhängiges Problem, oder es liegt am Document Explorer, der in meinem Fall unter Windows 98 eine ältere Version zu sein scheint (PSDK Februar 2003).
    Unter XP habe ich zwar die gleiche PSDK-Version, aber wg. Delphi 8 installierte ich vorher noch das .NET-Framework 1.1 samt SDK. Meine Vermutung ist, dass der Document Explorer daher aktueller ist. Das würde z.B. erklären, warum die Funktion "SyncIndex" unter 98 einen Skriptfehler verursacht, während sie unter XP läuft.
  2. Wie ich im "Willkommen" der Hilfedatei schon schrieb kann es beim Aufruf eines Links zu einer Warnung wg. eines nicht sicheren ActiveX-Controls kommen. Das Problem liegt aber nicht bei mir sondern bei Microsoft. Die haben das entsprechende Modul nicht signiert bzw. anderweitig als für Scripting sicher gekennzeichnet. Oder sie wollten das absichtlich nicht. Keine Ahnung.
    Ich hatte ursprünglich mal eine andere Version des Skriptes, das bereits beim Laden der Seite versucht hat, den Document Explorer anzusprechen. Wenn das nicht geklappt hätte, wären die jeweiligen Schlüsselworte in der Seite gar nicht erst als Links dargestellt worden. Allerdings war diese Warnung dann doch etwa nervig, eben weil sie gleich beim Aufruf der Seite erschien. Daher der Kompromiss: sofern JavaScript aktiv ist, werden die Links dargestellt; die Warnung oder Fehlermeldung erscheint aber erst wenn man drauf klickt.

    Hier der originale Skriptcode (auch damit ihr seht, dass da tatsächlich nichts Schlimmes passiert):
    Code:
    <!--

    var DExplore = null;

    if(document.documentElement) {

      // get all elements with name/id "psdk"
      var psdk = document.getElementsByName("psdk");
      if(psdk && psdk.length > 0) {
        var a = null;
        var txt = null;
        var title = null;

        for(var i=0;i<psdk.length;i++) {
          if(psdk[i].nodeName == "SPAN" &&
            psdk[i].firstChild &&
            psdk[i].firstChild.nodeName != "A" &&
            psdk[i].firstChild.nodeValue != "")
          {
            title = psdk[i].getAttribute("title");
            if(title && title!="") psdk[i].removeAttribute("title");

            a = document.createElement("A");
            txt = document.createTextNode(psdk[i].firstChild.nodeValue);

            if(a && txt) {
              a.appendChild(txt);
              a.setAttribute("title","Thema im PSDK ansehen");

              if(title && title!="")
                a.setAttribute("href","javascript:performPSDK('" +
                title + "');");
              else
                a.setAttribute("href","javascript:performPSDK('" +
                psdk[i].firstChild.nodeValue + "');");

              a.setAttribute("className","PSDK");
              psdk[i].replaceChild(a,psdk[i].firstChild);
            }
          }
        }

        title = null;
        txt = null;
        a = null;
      }
    }


    var SyncIndex = false;
    var IndexResults = false;


    function performPSDK(keyword) {
      if(DExplore == null) {
        try {
          DExplore = new ActiveXObject("DExplore.AppObj.7");
        } catch(e) {
          DExplore = null;
        }

        if(DExplore) {
          DExplore.setCollection("ms-help://MS.PSDK.1033","");

          try {
            DExplore.SyncIndex("bool",1);
            SyncIndex = true;
          } catch(e) {
            SyncIndex = false;
          }

          try {
            DExplore.IndexResults();
            IndexResults = true;
          } catch(e) {
            IndexResults = false;
          }   
        }
      }

      if(DExplore) {
        DExplore.DisplayTopicFromF1Keyword(keyword);
        if(SyncIndex) DExplore.SyncIndex(keyword,1);
        if(IndexResults) DExplore.IndexResults();
      } else {
        alert("Der Document Explorer von Microsoft ist nicht installiert.");
      }
    }


    function FreeMem() {
      if(DExplore) DExplore = null;
    }

    window.onunload = FreeMem;

    //-->
    Es gilt das, was im "Willkommen" steht: für modifizierte Versionen, die Schaden anrichten, übernehme ich keine Haftung.

    Als Beispiel:
    Code:
    <span id="psdk" name="psdk">CreateWindow</span>
    <span id="psdk" name="psdk" title="WNDCLASSEX">TWndClassEx</span>
    Im zweiten Fall kann das PSDK mit der Borland-Deklaration (erkennbar am T) nichts anfangen, darum ist der Suchbegriff im "title"-Attribut angegeben.

    Der Document Explorer lässt sich übrigens auch in Delphi importieren (Projekt/Typbibliothek importieren -> VsHelp (Version 1.0)), und auf helpware.net findet man eine Kurzübersicht zu den Funktionen. Wer das macht, sollte aber ähnlich wie bei der MS-XML-Typbibliothek eine Funktion schreiben, die prüft ob die Klasse registriert ist.
  3. Ein paar Suchbegriffe öffnen leider die falschen Themen. Das betrifft
    • "CreateDialog" (Fenster und Controls/Dialoge)
    • "TChooseFont" (Standarddialoge/Schriftart)
    • "TFindText" (Standarddialoge/Text suchen)
    • "TranslateAccelerator" (Systemfunktionen/Hotkeys)
    und liegt ganz einfach daran, dass der Suchbegriff auch von anderen Themen benutzt wird. Und der Document Explorer zeigt in dem Fall natürlich das an, was er zuerst findet. Da der Index aber synchronisiert wird (sofern möglich, s. Punkt 1 zur Funktion "SyncIndex") kann man nachschauen ob es noch weitere Einträge dieser Art gibt.
Dennoch stehe ich aber zu solchen Spielereien (nennen wir es ruhig mal so). Ich will damit sagen: Das PSDK wird in den Tutorials als Lektüre empfohlen, und die aus den alten Versionen bekannten Codeschnippsel zur Syntax usw. stammen ja auch daraus. Daher bot es sich natürlich an, die jeweiligen Themen gleich direkt im PSDK zu öffnen. Dass das vom Aufwand her (s. Script) recht leicht war, ist ein Pluspunkt. Dass das benutzte API an sich aber komplett undokumentiert ist (und IMHO auch einige Schwächen offenbart - warum ist bspw. "setCollection" eine Prozedur und keine Funktion mit TRUE/FALSE-Ergebnis?), ist natürlich ein Nachteil.

Also, ich bereue die Entscheidung mit den PSDK-Links nicht, und ich würde es auch wieder tun.
Aber wie seht ihr das? Ihr seid ja die Anwender.


Gruß,
Mathias.

[edit=Luckie]Umfrage auf Wunsch hinzugefügt. Mfg, Luckie[/edit]
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Probleme der Win32-API-Tutorials 1.9.1 (CHM)

  Alt 14. Apr 2004, 13:08
Wegen Ergänzug der Umfrage mal nach hoben schiebt: *schieb*.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
MrKnogge

Registriert seit: 9. Jun 2003
Ort: Pforzheim
2.458 Beiträge
 
Delphi 2007 Professional
 
#3

Re: Probleme der Win32-API-Tutorials 1.9.1 (CHM)

  Alt 14. Apr 2004, 18:12
Ähm, Ich finds ja toll, dass ihr die Werbe-trommel rührt, aber wenn ihr schon dabei seid könntet ihr mir und die die's interessiert (also allen andere DP-Usern) verraten was ihr neues reingehauen habt ?

Möcht einfach wissen, ob es sich als Modem-User lohnt sie jetzt schon zu ziehen oder zu warten bis die Schule wieder anfängt
Christian Bootz
Einstein ist tot, Newton ist tot,
und mir ist auch schon ganz schlecht...
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#4

Re: Probleme der Win32-API-Tutorials 1.9.1 (CHM)

  Alt 14. Apr 2004, 18:44
*hi hi* Neu ist eigentlich nur der Marquee-Stil beim Progressbar. Das habe ich zwar schon vor Monaten geschrieben, aber wenn der Luckie mit seinen Weibern zu tun hat, dann kommt der Kerl nicht zum Hochladen der Updates .

Was Luckie an der PDF gemacht hat, kann ich nicht sagen , aber ich habe aus den CHMs alle Codeschnippsel aus dem PSDK rausgeschmissen und durch Links ersetzt. Script siehe oben. D.h. wenn du das PSDK installiert hast, dann öffnet sich auf Klick das Thema und du kannst genaueres nachlesen.

Generell würde ich sagen: Selbstverständlich lohnt es sich, die Tutorials zu ziehen. Du musst ja nicht ... *hüstel* ... Luckies fette PDF nehmen (1,8meg). Sondern du könntest ja auch die schlanken CHMs holen.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Probleme der Win32-API-Tutorials 1.9.1 (CHM)

  Alt 14. Apr 2004, 20:04
Zitat von MrKnogge:
Ähm, Ich finds ja toll, dass ihr die Werbe-trommel rührt, aber wenn ihr schon dabei seid könntet ihr mir und die die's interessiert (also allen andere DP-Usern) verraten was ihr neues reingehauen habt ?

Möcht einfach wissen, ob es sich als Modem-User lohnt sie jetzt schon zu ziehen oder zu warten bis die Schule wieder anfängt
Kuckst du hier: http://www.luckie-online.de/Tutorials/ Da gibt es extra eine History.txt.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#6

Re: Probleme der Win32-API-Tutorials 1.9.1 (CHM)

  Alt 2. Mai 2004, 08:57
1. Der überwältigenden Mehrheit von 7 Stimmen werde ich mich nicht widersetzen. Hey, früher wurden so Könige gewählt ...

2. Hat vielleicht jemand Lust, für mich die HxS-Version zu testen? Speziell die Links ins PSDK und zwischen den einzelnen Hilfedateien. Dann könnte ich nämlich noch mal auf Bugjagd im Text gehen. Ich habe doch noch einige Tippfehler usw. gefunden.
Allerdings ist das mit den HxS-en so eine Sache: Wohl oder übel müssen die Dateien im System registriert werden, denn einfach anklicken ist nicht. Ich würde die notwendigen Dateien aber alle beilegen. Sprich: Die Hilfedateien, ein Inno Setup-Skript (mit PSDK-Integrationsmöglichkeit - das sieht lustig aus, wenn Luckies Tutorials in Microsofts PSDK stecken ) und die Steuerdateien für das Registrierungstool. Nur selbiges eben nicht, weil es Shareware ist.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Probleme der Win32-API-Tutorials 1.9.1 (CHM)

  Alt 6. Mai 2004, 12:59
So, hab es mir mal angekuckt. Zu erstmal ein großes Lob, saubere Arbeit. Allerdings ein Problem: Wenn man im Index eins unserer Tutorials anklick dann landet man zum Beispiel auf der ersten Seite ("IP-Adressfeld erzeugen"), jetzt wäre es natürlich wünschenswert, wenn man noch links zu den anderen Kapitel, die dazu gehören, hätte. Jetzt hat man zwar gefunden wie man ein IP-Adressfeld erstellt, aber wie man es ausliest muss man dann wieder suchen und das ist etwas umständlich. anders ist es natürlich, wenn man über das Inhaltsverzeichnis geht, da kann man ja dann einfach im Treeview das nächste Kapitel anklicken.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#8

Re: Probleme der Win32-API-Tutorials 1.9.1 (CHM)

  Alt 6. Mai 2004, 13:02
Das Problem liegt nicht an mir sondern an diesem Hilfebetrachter. Früher bei CHMs hat er das Inhaltsverzeichnis automatisch angepasst. Das muss man jetzt leider über den Befehl im Menü machen (Help -> Sync Contents).

Ich schau mal ob es im VSHIK evtl. eine Option dafür/dagegen gibt. Ansonsten weise ich jegliche Schuld weeeeeeeeeeeeeeeeiiiiiiiiiiiiiiiit von mir.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#9

Re: Probleme der Win32-API-Tutorials 1.9.1 (CHM)

  Alt 6. Mai 2004, 13:06
Ich glaube, wir reden aneinander vorbei. Es fehlen einfach die Links auf der angezeigten Hilfeseite, wo es weitergeht. Also das was im PSDK immer ganz unten steht: "See also". Nur wäre es hier wohl angebracht, wenn an dieser stelle Links zu den anderen Kapiteln wären.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#10

Re: Probleme der Win32-API-Tutorials 1.9.1 (CHM)

  Alt 6. Mai 2004, 13:28
Nein, wir reden nicht aneinander vorbei. Diese Links hat es in den CHMs ja auch nie gegeben. Nur, wie gesagt: Da ist es nie aufgefallen, weil du im Prinzip immer das aktuelle Inhaltsverzeichnis gesehen hast. Du musstest eben nicht lange suchen. Du brauchtest ggf. nur vom Index auf das TOC umschalten und konntest dann das nächste Kapitel auswählen.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:55 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz