Juniors WorkstationLidos BerlinComputer PassDies und Das
Nutzungsbedingungen    Datenschutz    Impressum       Kontakt        Registrieren       <== zurück zur Startseite    
 
  Lernen durch Lehren
 
  LDL - Wissenswertes
  LDL - Hardwaretests
  LDL - Softwaretests
  LDL - Tipps & Tricks
  LDL - Workshops
 


  Profan² Einsteiger FAQ 7.5
 
  Profan² Einsteiger FAQ 7.5
  Profan² an die Schulen
  Profan² Script - FAQ
  Profan² Erweiterungen
  Profan² Helferlein
  Profan² Quellcode
 


  HTML Einsteiger FAQ 4.07
 
  HTML Einsteiger FAQ 4.07
  HTML indirekte Fragen
  kleine JavaScript FAQ
 


250 MB mit PHP / MySQL
 
Sie suchen noch Webspace, der kosten- und werbefrei ist, PHP (5.x) und MySQL (3.x) unter- stützt ...

Sie haben Fragen und benötigen Antworten
 
Das verstehen wir - und genau aus diesem Grund haben wir versucht, auf Ihre (am häu- figsten) gestellten Fragen zu antworten.
 
Lern- und Lehrbereich: Juniors Workstation
 
   einen Beitrag auswählenzum Anfang eine Seite zurück  eine Seite vor zum Ende     
   Bereich Kennung Zuordnung Klick Titel 
11  Workstation FAQ Profan Profan-FAQ97539  Profan² - eine Programmiersprache Profan-FAQ - Profan² - eine Programmiersprache
12  Workstation FAQ Profan Profan-FAQ38299  Profan² - dieser Name steht für ein Programmiersystem Profan-FAQ - Profan² - dieser Name steht für ein Programmiersystem
13  Workstation FAQ Profan Profan-FAQ42599  Profan² - eine Scriptsprache Profan-FAQ - Profan² - eine Scriptsprache
14  Workstation FAQ Profan Profan-FAQ42778  Profan² - eine Datenbank-Sprache Profan-FAQ - Profan² - eine Datenbank-Sprache
15  Workstation FAQ Profan Profan-FAQ40515  Profan² - Versionen im Download Profan-FAQ - Profan² - Versionen im Download
16  Workstation FAQ Profan Profan-FAQ44024  Was sind Ereignisse? Profan-FAQ - Was sind Ereignisse?
17  Workstation FAQ Profan Profan-FAQ41098  Was ist eine Multimedia-Schnittstelle? Profan-FAQ - Was ist eine Multimedia-Schnittstelle?
18  Workstation FAQ Profan Profan-FAQ46960  Was ist und enthält eine Windows-Nachricht? Profan-FAQ - Was ist und enthält eine Windows-Nachricht?
19  Workstation FAQ Profan Profan-FAQ43957  Definitionen, Funktionen und Operatoren unter Profan² Profan-FAQ - Definitionen, Funktionen und Operatoren unter Profan²
33  Workstation FAQ Profan Profan-FAQ45336  Einiges über Variablen und Platzhalter ... Profan-FAQ - Einiges über Variablen und Platzhalter ...

135 registrierte Beiträge gefunden; davon werden aktuell 10 angezeigt. 

 
   Wie komme ich an "Windows-API-Funktionen"?

Zunächst einmal setze ich voraus, daß Sie in der Profan²-Hilfe, Punkt 11.4 "Externe Funktionen" zur Beschreibung der Syntax eines API-Aufrufes nachgelesen haben. Eventuell noch vorhandene Unklarheiten hoffe ich im weiteren ausräumen zu können.

Grundsätzlich gilt:
Wollen Sie eine Funktion aus einer Ressource (im weiteren DLL genannt) verwenden, muß diese zuerst mit "USEDLL" in den Speicher geladen werden. Das Ergebnis ist das "Instanz-Handle" der DLL. Dieses wird für den Zugriff auf die Funktion der DLL benötigt.

Achtung:
Vergessen Sie aber auf keinen Fall, die mit "USEDLL" geladene DLL am Ende des Programmes mit "FREEDLL" wieder aus dem Speicher zu löschen (bzw. den Aufrufzähler um 1 zu mindern).

   cls
   Declare hDLL%
   Let hDLL%=@UseDLL("ICONS.DLL")
   DrawExtIcon hDLL%,"MSDOS",20,20
   FreeDLL hDLL%

Hinweis:
Verwenden Sie eine Windows-API, brauchen Sie "USEDLL / FREEDLL" nicht benutzen. Alle notwendigen Windows-System-DLL"s werden beim "Hochfahren von Windows" automatisch geladen. Hier genügt es, den Namen der DLL anzugeben:

   Aufrufe einer 16-Bit-API:
     DEF @MoveWindow(6) *"USER","MoveWindow","%%%%%%",""
   Aufrufe einer 32-Bit-API:
     DEF @MoveWindow(6) !"USER32","MoveWindow"

Hier einmal nur die wichtigsten vom Windows-System geladenen DLL"s und Ihre Zuordnung:

  - Kernel32   - Basisfunktionen
  - User32     - Basisfunktionen
  - Shell32    - Dateien
  - Winmm      - Sound
  - Gdi32      - Grafik
  - Comdlg32   - Dialoge
  - Advapi32   - Registry
  - Rasapi32   - DFü
  - Tapi32     - Modem

Nun nehmen wir einmal an, Sie möchten einen Hinweis für genau 1 Sekunde einblenden.
Vermutlich würden Sie das als Profan²er etwa so machen:

   PROC Schlafe
    Parameters N&
    Declare Ende%
    SetTimer N&
     Let Ende% = 0
     WHILENOT Ende%
      WaitInput
      Case %wmTimer:Let Ende% = 1
     ENDWHILE
    KillTimer
   ENDPROC
   CLS
   Print "Hallo Profan²er!"
   Schlafe 1000
   CLS
   WaitInput

Einmal abgesehen davon, daß Sie für diesen Quelltext 16 Zeilen mit einer Procedur benötigen, haben Sie den einzigen, Ihnen so zur Verfügung stehenden Timer, benutzt. Mit Hilfe einer Windows-API läßt sich das viel einfacher und auch eleganter lösen.

Dazu schauen Sie in der "win32.hlp" (für 32-Bit - 7,7 MB !) nach und finden so die Funktion "Sleep" in der "KERNEL32.DLL". Nun steht Ihre Aufgabe, daraus eine nutzbare Funktion für Profan² zu erstellen.

In der Beschreibung steht, daß die Funktion "Sleep" einen Parameter benötigt - und zwar die Zeit, die "geschlafen" werden soll in Millisekunden. Ferner wissen Sie, daß die Funktion in der "KERNEL32.DLL" steht. Daraus können Sie nur folgerichtig ableiten:

 DEF @Sclafe(1) !"kernel32","Sleep" 

Für Ihr Programm binden Sie nun diese API (!) einfach nur noch ein und arbeiten streng nach den vorgegebenen Prinzipien von Profan² weiter:

   DEF @Schlafe(1) !"kernel32","Sleep"
   CLS
   Print "Hallo Profan²er!"
   Schlafe(1000)
   CLS
   WaitInput

Wie Sie jetzt selber sehen, ist API keine Hexerei. Sie setzt lediglich ein umfangreiches Wissen darüber voraus, wo Sie was wie finden. Aber natürlich auch ein wenig Kombinationsgabe, um eine API richtig in Profan² zu definieren. Sie werden sehr schnell merken, daß mit der Erfahrung auch Ihre Kenntnisse wachsen.

Und Sie erkennen jetzt sicher auch den enormen Vorteil, der letztendlich darin liegt, eigenen Quelltext (eigene Ressourcen) einzusparen und die wesentlich schnelleren "SystemRessourcen" dafür zu nutzen.

Es gibt natürlich weit komplexere Funktionen und niemand möge jetzt bitte glauben, daß alle API-Funktionen so einfach zu handhaben sind.

Nachtrag:  (18.11.1999)   © Andreas Miethe

Immer wieder tauchen Fragen zu Controls auf. Wie werden sie erzeugt, welche Stile können sie haben, welche Messages werden von ihnen empfangen, vor allem wie sind die Werte dieser Stile und Messages.

Die hier zum Download angebotene, von mir erarbeitete Hilfe soll versuchen, einige dieser Fragen zu klären. Sie ist sicherlich nicht vollständig und bei den vorgestellten Beispielen kann nicht garantiert werden, daß diese korrekt funktionieren. Aber vielleicht ist sie doch ein Anfang um Controls etwas besser zu verstehen.

Erweiterte Profan²-Hilfe für Controls downloaden
 

©2012 Lidos Berlin - alle Rechte vorbehalten.