Newsgroup: it.comp.lang.delphi
Titolo: Win32API

La traduzione completa su Jedi:
http://www.delphi-jedi.org/Jedi:APILIBRARY:78923
Saluti
Paolo Arosio

 ha scritto nel messaggio
news:9gn0ck$98a7d$1...@ID-30644.news.dfncis.de...

ehm a cosa servirebbero queste unit??
illuminatemi

I prototipi delle API di windows sono definiti in linguaggio C.
Molte di esse, ma non tutte, sono state "tradotte" in pascal per delphi.
Quelle units presenti nel link del post iniziale di questo 
thread sono i prototipi di molte api in + rispetto a quelle
documentate nell'sdk fornito con delphi.
Ti basta?
AS
-- 
Posted from 
ammi.mclink.it
 [195.110.128.1] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 illuminatemi
In generale la JCL puoi vederla come un framework supplementare, ovvero
un'insieme di unit/componenti che ti permettono di semplificare il lavoro,
laddove la VCL non č immediata.
Il link suggerito da Paolo Arosio dovrebbe (uso il condizionale, ancora devo
scaricare ...) contenere una completa traduzione degli Header mai tradotti
(e forse non solo di quelli), permettendoti cosě di utilizzare le funzioni
dell'API che prima risultavano difficilmente utilizzabili (un esempio
lampante ne era la DeviceIoControl). Se non sai cosa sono le Win32 API te lo
dico subito: sono un insieme di funzioni che il sistema operativo mette a
disposizione per interfacciarsi con il sistema stesso e con altre
applicazioni. (API - Application Programming Interface)
Ciao! :-)
--
- Carlo -
c.b...@libero.it

 ha scritto nel messaggio
news:1.0.2.200106...@mclink.it...


 
http://www.delphi-jedi.org/Jedi:APILIBRARY:78923
segnalazione fantastica!
Ho scaricato ... Marcel ha fatto un lavoro strepitoso ... :-)
C'è anche la unit per le PSApi!
Ola! :-)


aggiuntiva...
Dipende dal livello.
Se erediti da vcl o roba simile, le api non le vedi ma ci sono.
alcune API sono definire in windows.pas; altere in altre units 
fornite con delphi.
La spiegazione rischai di essere uin tantino lunga, ma visto che 
insisti...
Il funzionamento di windows è basato su un gruppo di funzioni
definite API. Cioè, tutto quelle che windows fa lo fa usando
qieste funzioni, dalla gestione della porta seriale, alla rete, 
alle finestre, icone, immagini, multimedia, etc etc etc.
Una idea delle api di windows ve la potete fare aprendo la 
documentazione definita SDK (Software developement Kit) fornito
con delphi.
Infatti, siccome zio Billy è tanto buono (...) ci dice:
"Chi vuole scrivere software per windows ha a disposizione queste
funzioni per interagrire con il sistema"
Le api sono contenute in varie DLL e file eseguibili inclusi in 
Windows.
Se volete approfondire, usate il tdump (\delphix\bin\tdump)
e dategli in pasto ad esempio gdi e/o gdi32.dll
Vedrete un elenco di tutte le funzioni che la dll esporta.
Programmare direttamente con le api significa lavorare con cose
tipo hWnd (Handle di finestra), hDC, (device context che 
corrisponde grosso modo al tCanvas....),
strutture dati (i type.. record di delphi) e altra roba 
decisamente ostica, tenendo anche conto
che tutta sta roba è scritta in C.
Ad esempio, basta guardare come scrivere tramite API un qualcosa 
per il refresh di una finestra per farsi venire qualche incubo.
In delphi abbiamo le vcl ed adesso le clx.
Queste librerie di componenti fanno da strato fra noi, che non
abbiamo il tempo di scriverci le procedure per il repaint delle
finestre o, peggio che mai, quelle per gestire gli eventi di windows
e le api di windows.
Quindi, quando creiamo un form usando la classe tForm, la classe
stessa al suo interno chiama le api che le servono per funzionare.
Occhio, le vcl non le usano tutte!
Percio', a volte, si è costretti ad usarle direttamente.
Esempi + richiesti in questo NG
nascondere le applicazioni dalla taskbar
bloccare ctrl+alt+canc
creare form non rettangolari
leggere l'indirizzo IP di un pc
cambiare lo sfondo del desktop del pc
formattate floppy
leggere i dati delle partizioni
...
Ma usare queste cose significa:
1) trovare la funzione che ti serve
Ricordate che buona parte delle API zio billy non le documenta.
Tipo, quelle per leggere le password....
2) quando la hai trovata, tradurre il prototipo (!!) da sintassi
"C" a sintassi "delphi/Pascal"
3) tradurre le strutture dati usate dalla funzione
(in C si chiamano struct, in delphi type...record)
4) mettere queste 2 cose in una unit
5) Aggiungere la unit alla lista degli uses del modulo che deve usare
la funzione
6) chiamare la funzione.
Ora, le untis di cui si parla nel post che aperto questo thread
contengono prototipi (punto 1) e strutture (punto 2) di molte
+ api di quelle tradotte da borland per noi sviluppatori
delphi.
Quindi, dovendo usare queste funzioni, possiamo saltare nella 
scaletta di cui sopra direttamente al punto 5.
Se siete curiosi potete:
1) aprire SDK documentazion dall'help di delphi, dove trovate molte
funzioni inteessanti e vi fate una idea di come windows
lavora a basso livello
2) aprire i sorgenti delle classi fornite con delphi
3) aprite qualche sorgente degli RX 
Spero di non avervi fatto la palla, ma la mia logorrea è quasi
pari a quella di Martin Mystere... e poi me lo hanno chiesto, uffaaa!
aahahahahahahaah!
Saluti


 Cosa intendi con "prototipi delle API"?
Se apri windows.pas vedi che le chiamate a funzioni esportate dalle dll
di Win32 (kernel32.dll, user32.dll ...) vengono risolte staticamente
nella unit. Inoltre, questi file svolgono il non sempre banale compito
di tradurre dalla sintassi C usata dalle API in Pascal.
Saluti
Paolo Arosio
ps. potresti p.f. evitare di riportare l'intero testo del messaggio cui
rispondi?

 segnalazione fantastica!
[...]
ragazzi, ma un giro su Ded, Jedi, Community e gli altri link contenuti
nelle FAQ 1 o + volte la settimana si *deve* fare.
Saluti
Paolo Arosio

grazie