Newsgroup: it.comp.lang.delphi
Titolo: FAQ, aggiornamenti

Allora qui sotto c'e' la nuova FAQ. Ho fatto un po' di ordine, diviso in
sezioni ecc ecc.
Vi prego di leggerla tutta, perche' in molti punti ho dei dubbi, manca il
link o cose simili. E' sempre indicato, quindi se sapete l'informazione
ditemela.
Ho aggiunto alcune domande, alcune FAQ del passato, che tornano spesso.
La domanda "perche' Delphi e' meglio di VB" ha come ipotizzavo sollevato
qualche polemica.
Ho inserito la precisazione sugli eseguibili. WalkieTalkie suggerisce di
toglierla, ma io sono contrario, perche' secondo me effettivamente Delphi e'
migliore di VB, sono due linguaggi con lo stesso "target", ma il primo e'
migliore sotto tutti i punti di vista elencati nella domanda. Tra l'altro
quei punti sono "dati di fatto" non valutazioni soggettive.
Se molti altri sono contrari, la tolgo, ma io, ripeto, la terrei.
Piuttosto, per ParCondicio, se qualcuno si prende la briga di scrivere
"perche' VB e' meglio di Delphi", la inserisco volentieri :)
                            {MSX}

Le FAQ di IT.COMP.LANG.DELPHI
Raccolte e pseudo-mantenute da Nicola {MSX} Lugato
Versione 0.1
-------------
PRESENTAZIONE
-------------
Ecco la versione aggiornata, ho aggiunto tutti i link che sono riuscito a
racimolare, e ho fatto una
suddivisione delle domande per argomenti (per ora la suddivisione e'
generica, quando ne avremo di
piu' suddivideremo meglio :)
Chiunque pensa che ci siano domande richieste di frequente che non sono
riportate qui sotto, e'
pregato di dirlo :)
La cosa triste che ho scoperto e' che praticamente le uniche risorse sul
Delphi in italiano sono
i miei tutorial e quelli di The Beerbear. (se qualcuno mi smentisce sono
contento)
Tutte le risposte e informazioni, a parte dove specificato, sono opera di
{MSX} :)
Intanto un po' di pubblicita':
Visita il sito di {MSX} 
http://msx.rules.it
 :)
-----------------
DOMANDE GENERICHE
-----------------
-DOMANDA:
Object Pascal ? Io conoscevo il Turbo/Borland pascal... C'è qualcosa in
comune ? Sono avvantaggiato ?
-RISPOSTA
C'è qualcosa in comune. Si sei avvantaggiato, ma non molto. Object Pascal è
una versione ampliata del
Pascal "standard" che tra l'altro implementa le classi (*), come in C++.
Quindi sai già usare buona
parte del linguaggio, ma le novità di Object Pascal sono molte e importanti.
*: si anche pascal normale implementava le classi (la parola chiave era
Object) ma facevano molta piu'
pena.. niente a che vedere con l'Object pascal :)
-DOMANDA:
Delphi mi genera un sacco di file con estensioni strane quando salvo un
progretto. Servono tutti ?
-RISPOSTA: (Riccardo Kalb)
i file con la tilde ~ sono file di backup dei relativi file se vuoi puoi
anche cancellarli se non ti servono.
i file cfg e dof non devi mai cancellarli perchè sono impostazioni del
progetto. I dcu anche se li
cancelli non succede niente perchè vengono rigenerati nella compilazione, ma
solo se hai i rispettivi
file pas (naturalmente i pas non vanno cancellati)
-DOMANDA:
Perchè Delphi è meglio di VB ?
-RISPOSTA: (A. Salvati)
1) Vb non è a oggetti. La programmazione a oggetti si basa sui 3 cardini
Polimorfismo-incapsulamento-ereditarieta'. Orta, non avendo vb
l'ereditarieta' non è OOP.
2) In un form vb non puoi mettere + di 253 controlli senza utilizzare gli
array di controlli. Usare gli array di controlli significa incasinare tutta
la gestione degli eventi.
3)Le funzioni di gestione delle stringhe risalgono al QuickBasic 4.5 che
utilizzavo io nel lontano 1991.
4) Vb non ha una gestione dei puntatori avanzata come quella di delphi
5) Gli exe generati da Vb non sono altro che dei P-Code. In pratica, ci
vogliono dei moduli di runtime per far funzionare un qualsiasi programma.
Cio' significa che per una applicazione da quattro soldi che fa la cosa
piu'scema del mondo ti porti dietro circa 4 Mb di librerie DLL (*)
6) Fai un confronto tra l'editor di menu di vb e quello di d4
7) Nei menu di vb per mettere le immagini devi fare un sacco di giri
viziosi. In delphi la cosa è gia' prevista.
8) La velocita di esecuzione di una app. delphi ee molto superiore a quella
di una applicazione simile scritta in vb.
9) L'ide di vb si inchioda. Ci ho lavorato per un anno e mi e' successo di
tutto. Ricordo una operazione di copia e incolla ripetuta per 14 volte: ongi
volta falliva, dandomi un GPF SEMPRE NELLO STESSO INDIRIZZO ESADECIMALE.
Alla fine ho rinunciato.
10) Un articolo preso da Visual basic Programmers Journal, che tratta solo
di vb, denigrava vb dicendo varie cose tra cui: mancanza di documentazione
cartacea, continuo inserimento di "fronzoli" senza mai potenziare il nucelo
del compilatore
11) Uno dei piu autorevoli esperti di programmazione in vb che ha scritto
vai manuali ha messo su internet un suo articolo dal titolo "Saying goodbye
to vb.."
12) Access non funziona.
13) In vb: hai un oggetto Data, chiamato pippo, e lo associ come datasource
a 100 controlli. Se cambi il nome del datasource ti tocca di anare su tutti
i controlli per cambiare la proprieta in base al nuovo nome del datasource.
14) Con delphi hai i sorgenti dei vcl e non e cosa da poco
15) Dicono che con vb puoi creare gli ocx: e' una balla! Gli ocx creati in
vb danno un sacco di problemi
16) Ide troppo pesante
17) Vb non prevede l'architettura CORBA
18) La dbgrid standard di vb non permette di inserire colonne che prendono
dati da tabelle diverse da quella impostata come datasource.
Ti basta, per ora?
(*): (precisazione da Honest)
[...] da VB 5 è possibile sia generare "eseguibili" (mi si passi il
termine) in P-Code sia eseguibili veri e propri. In entrambi i casi è
necessaria la "mitica" dll VBRUNxyz. Nel primo caso la dll si comporta da
runtime (o , termine alquanto abusato, da Virtual-Machine) per il P-Code.
Nel secondo caso è una dll che incapsula tutte le API di win che altrimenti
VB non saprebbe come usare. Quindi VB genera un eseguibile a tutti gli
effetti, ma non un eseguibile "monolitico" come permette Delphi. Avrai
sempre bisogno di almeno una dll, la (mi ripeto) "mitica" VBRUNxyz (che tra
l'altro cambia da versione a versione di VB).
-DOMANDA:
Esiste l'overloading degli operatori ?
-RISPOSTA:
No, almeno fino a Delphi5. (no anche sul 6 a quanto ne so)
-DOMANDA:
Esiste l'overloading delle funzioni ?
-RISPOSTA:
Eseste a partire da Delphi4. Per implementarli, aggiungi la direttiva
overload
sulla dichiarazione delle procedure.
-------------------------------------------------------
Visual Component Library (VCL) e componenti Non-Visuali
-------------------------------------------------------
-DOMANDA:
Cos'è la VCL ?
-RISPOSTA:
Per creare la tua applicazione, Delphi ti mette a disposizione la VCL
(Visual
Component Library), ovvero una raccolta di componenti e controlli che puoi
vedere
raccolti nella "barra" in alto. Fai doppioclick su un componente e vedrai
che
comparirà nella form, cioè la finestra che vedi piena di puntini. Ogni
componente
ha diverse poprietà, che puoi leggere e modificare tramite l'Object
Inspector dopo
averne selezionato uno. Esistono componenti visuali (chiamati controlli) che
saranno
visibili a runtime (quando il tuo programma sarà in funzione) e altri non
visuali,
che racchiudono altre funzioni. Lo scopo di questa raccolta, è di offrire
agli
sviluppatori degli oggetti che racchiudano ciascuno delle funzioni proprie
di
un certo argomento. Ad esempio esiste il componente OpenDialog, (che
gestisce le
finestre di dialogo per aprire un file), il componente Edit (per avere una
casella
di testo nella form), Image (per le immagini) ecc. ecc. Inoltre è possibile
creare
componenti nuovi o scaricarne dalla Rete.
-DOMANDA:
Come creo dinamicamente un controllo ?
-RISPOSTA:
procedure TForm1.NuovoBottone;
var Button:TButton;
begin
Button := TButton.Create(Form1);
Button.Caption := 'Premimi !';
Button.Left := 100;
Button.Top := 100;
Button.Parent := Form1;
end;
-DOMANDA:
Esiste un componente che mi permetta di lanciare un programma dos e
catturarne l'output?
-RISPOSTA:
Guarda su torry, c'e' l'ottimo DOScommand per esempio.
-DOMANDA:
Come levo il fastidiosissimo beep che fa il TEdit quando premo invio ?
-RISPOSTA:
Su OnKeyDown metti:
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if key = VK_RETURN then key:=0;
end;
-DOMANDA:
Come accedo velocemente ai singoli pixel di un TBitmap ?
-RISPOSTA:
Devi usare le ScanLine, che ritornano un puntatore al primo byte della
riga che gli passi. Attento che la grandezza dei pixel dipende dalla
profondità di colore.
--------------
API di Windows
--------------
-DOMANDA:
Come nascondo un processo dalla task list (quella di CTRL-ALT-CANC) ?
-RISPOSTA:
usa questa procedura residente nella DLL Kernel32.dll
function RegisterServiceProcess(dwProcessID, dwType: Integer): Integer;
stdcall; external 'KERNEL32.DLL';
poi chiama:
RegisterServiceProcess(GetCurrentProcessID, x);
Metti come x 1 se vuoi nasconderla o 0 per ripristinarla.
-DOMANDA:
Mi servirebbe sapere come poter accendere e spegnere i tre led della
tastiera.
-RISPOSTA: (Andrea Magni)
Ecco qua, il tutto si basa su Get/SetKeyBoardState che riempie una struttura
(un array 0..255 di bytes) con lo stato attuale dei tasti...
var Tastiera:Tkeyboardstate;
begin
GetKeyBoardState(Tastiera);
  Tastiera[VK_CAPITAL] := 1;
  Tastiera[VK_NUMLOCK] := 1;
  Tastiera[VK_SCROLL] := 1;
SetKeyBoardState(Tastiera);
ShowMessage('Adesso li spengo');
GetKeyBoardState(Tastiera);
  Tastiera[VK_CAPITAL] := 0;
  Tastiera[VK_NUMLOCK] := 0;
  Tastiera[VK_SCROLL] := 0;
SetKeyBoardState(Tastiera);
-DOMANDA:
Ho bisogno di intercettare un evento di un tasto fuori dalla form, ad
esempio il tasto start della barra di avvio.
-RISPOSTA: (Antonio Tarolla)
Per far quello che chiedi devi intercettare l' handle del pulsante e tramite
GetMessage conoscere il numero che identifica il messaggio.
I messaggi non sono stringhe, ma costanti numeriche.
Non conosco funzioni che associano un messaggio stringa ad un numero e
viceversa, quindi puoi realizzare tu una funzione simile.....non dovrebbe
essere più
difficile di tanto !!
Ah.......per conoscere l' handle del pulsante START o AVVIO, devi conoscere
prima l' handle della finestra che ha come classe "Shell_TrayWnd", poi
tramite
l' API FindWindowEx risalire all' handle del pulsante considerando che
appartiene alla classe "Button".
-Domanda:
Come faccio a spegnere il computer da una mia app (shutdown) ?
-RISPOSTA:
Devi usare ExitWindowsEx.
-DOMANDA:
Perche' Delphi genera file exe cosi' grandi ? non si possono ridurre?
-RISPOSTA:
Delphi genera file grandi perche' e' un RAD. Creare finestre in Delphi
e' molto semplice proprio per questo, il prezzo da pagare (molto basso)
e' la dimensione dell'exe. Nulla ti vieta di togliere la vcl e tutto il
resto e programmare con le API. Questa e' la forza di Delphi: puoi scegliere
la strada comoda o quella ottimizzata :)
Ecco un esempio di programma senza VCL, che crea una finestra (notare che
con la VCL il seguente programma non necessita alcuna linea di codice :)
----------------------------------------------------
program Window1;
{ Copyright (c) 1996 by Charlie Calvert
  Standard Windows API application written in Object Pascal.
  No VCL code included. This is all done on the Windows API
  level.
  Note that you need to include both Windows and Messages!}
uses
  Windows, Messages;
const
  AppName = 'Window1';
function WindowProc(Window: HWnd; AMessage, WParam,
                    LParam: Longint): Longint; stdcall; export;
begin
  WindowProc := 0;
  case AMessage of
    wm_Destroy: begin
      PostQuitMessage(0);
      Exit;
    end;
  end;
  WindowProc := DefWindowProc(Window, AMessage, WParam, LParam);
end;
{ Register the Window Class }
function WinRegister: Boolean;
var
  WindowClass: TWndClass;
begin
  WindowClass.Style := cs_hRedraw or cs_vRedraw;
  WindowClass.lpfnWndProc := @WindowProc;
  WindowClass.cbClsExtra := 0;
  WindowClass.cbWndExtra := 0;
  WindowClass.hInstance := HInstance;
  WindowClass.hIcon := LoadIcon(0, idi_Application);
  WindowClass.hCursor := LoadCursor(0, idc_Arrow);
  WindowClass.hbrBackground := HBrush(Color_Window);
  WindowClass.lpszMenuName := nil;
  WindowClass.lpszClassName := AppName;
  Result := RegisterClass(WindowClass) <> 0;
end;
{ Create the Window Class }
function WinCreate: HWnd;
var
  hWindow: HWnd;
begin
  hWindow := CreateWindow(AppName, 'Object Pascal Window',
              ws_OverlappedWindow, cw_UseDefault, cw_UseDefault,
              cw_UseDefault, cw_UseDefault, 0, 0, HInstance, nil);
  if hWindow <> 0 then begin
    ShowWindow(hWindow, CmdShow);
    UpdateWindow(hWindow);
  end;
  Result := hWindow;
end;
type func = function(processID, OpTypeFlag:DWORD): DWORD; stdcall;
const RSP_REGISTER = 1;
const RSP_UNREGISTER = 0;
var
  AMessage: TMsg;
  hWindow: HWnd;
  reg:func;
begin
  if not WinRegister then begin
    MessageBox(0, 'Register failed', nil, mb_Ok);
    Exit;
  end;
  hWindow := WinCreate;
  if hWindow = 0 then begin
    MessageBox(0, 'WinCreate failed', nil, mb_Ok);
    Exit;
  end;
@Reg:=GetProcAddress(GetModuleHandle('KERNEL32.DLL'),'RegisterServiceProcess
');
  reg(0,RSP_REGISTER);
  while GetMessage(AMessage, 0, 0, 0) do begin
    TranslateMessage(AMessage);
    DispatchMessage(AMessage);
  end;
  Halt(AMessage.wParam);
  Reg(0, RSP_UNREGISTER);
end.
----------------------------------------------------
--------------------
INTERNET PROGRAMMING
--------------------
-DOMANDA:
Come apro un indirizzo internet con Delphi ?
-RISPOSTA:
Usa ShellExecute:
ShellExecute (handle, nil, '
http://www.indirizzo.com
' ,nil,nil,sw_show);
Per le e-mail:
ShellExecute (handle, nil,'mailto:
cic...@server.com
', nil,nil,sw_show);
o anche:
ShellExecute (handle, nil,'mailto:
cic...@server.com
?subject=Saluti',
nil,nil,sw_show);
La funzione ShellExecute si trova nella unit ShellApi che dovresti inserire
nella tua USES list.
-DOMANDA:
Come faccio ad eseguire un programma esterno?
-RISPOSTA:
Ancora una volta, usa ShellExecute (vedi risposta precedente).
ShellExecute(Form1.handle, 'open', 'c:\windows\telnet.exe', nil , nil,
SW_SHOWNORMAL);
Oppure usa un componente, ad esempio TAppExec che trovi su torry
o qui: 
http://www.worldnet.net/~cycocrew/delphi
-DOMANDA:
Come faccio a sapere se sono connesso a Internet ?
-RISPOSTA: (Carlo Bertuccini)
Devi utilizzare le API RAS (Servizi di accesso remoto). Trovi molti esempi
sulla DSP. Addirittura ci dovrebbe essere un componente [NON chiedermi il
nome poichè ne scarico talmente tanti...] che ha tra le sue funzioni
qualcosa tipo Connected.  L'URL della DSP è :
http://delphi.icm.edu.pl/index.htm
(il componente e' kzinternetdetect NdMSX)
-DOMANDA:
Come faccio a inviare un'email gia' pronta ?
-RISPOSTA:
Se hai la versione Client/Server, puoi usare il componente TNMSMTP.
Devi impostare l'indirizzo del tuo server SMTP, il corpo, il destiantario
nei vari campi dell'OI.
Se non hai la Client/Server puoi cercare un componente simile su Torry.
--------
DATABASE
--------
Qualcuno vuole inserire qualche domanda ? :))
-----
KYLIX
-----
-DOMANDA:
Cos'e' Kylix ?
-RISPOSTA:
E' il porting di Delphi sotto linux, ovvero Delphi per linux.
-DOMANDA:
E' compatibile con Delphi ?
-RISPOSTA:
Domanda complessa :) Dunque, a quanto ne so, Kylix e' compatibile con
Delphi6. Questo pero' a delle condizioni:
devi usare solo i componenti della VCL (che forse ha un altro nome?)
speciale dei due strumenti, evitando
tutte le chiamate alle api e simili. In questo caso lo stesso progetto
dovrebbe compilare su entrambi.
Comunque fino a dove arriva la compatibilita' e' tutto da vedere.
-DOMANDA:
E' free ?
-RISPOSTA:
Magari! Anzi, le varie versioni di Kylix costano molto. A quanto ne so i
prezzi sono questi:
Kylix Server Developer
"Accelerate your Linux® web application development with
Kylix Server Developer edition, the RAD tool for Linux."
$1,999.00
Kylix Desktop Developer
"Accelerate your Linux® GUI development with
Kylix Desktop Developer edition, the RAD tool for Linux."
$999.00
Sembra sia prevista una versione GPL.
-DOMANDA:
Cos'e' la CLX ?
-RISPOSTA:
Anche a me piacerebbe saperlo...
Ma non si puo' volere tutto..
-------
CREDITS
-------
Si ringraziano (in ordine sparso):
Alan Solo, Riccardo Kalb, A. Salvati, Andrea Magni, Antonio Tarolla,
Carlo Bertuccini, Charlie Calvert, Paolo Arosio
-----
LINKS
-----
Torry's Delphi Pages (inglese)
 
http://www.torry.net
 
http://torry.rimini.com/
  (mirror italiano)
 Il migliore per cercare componenti aggiuntivi. Sono catalogati per
argomento, commentati e valutati
 e dispone di un motore di ricerca. Molto semplice da usare. Comprende anche
esempi, tool, docs,
 una mailing list e tratta anche Kylix. Generalmente ritenuto il meglio.
Delphi Super Page (inglese)
 
http://delphi.icm.edu.pl/
 Un sito che raccoglie componenti per Delphi e C++Builder. Ne contiene
moltissimi ma lo trovo un po'
 piu' scomodo di Torry.
Borland Community
 
http://community.borland.com/delphi
 La comunita' di sviluppatori della Borland. Credo ci si debba iscrivere
(boh?).
Borland
 
http://www.borland.it/
 Ovviamente il sito della Borland.
Top 100 Delphi sites (inglese)
 
http://www.sandbrooksoftware.com/TS/index.shtml
 i links dei 100 migliori siti sul Delphi.
The Delphi Compendium (inglese)
 
http://www.cyber-matrix.com/delphi.htm
 Tutorial, componenti, articoli ecc. ecc.
#Gameprog-Ita Abc/Delphi page (italiano)
 
http://gpi.infomedia.it/abc/delphi
 I miei tutorial. Alcuni sono orientati allo sviluppo di videogiochi e
grafica, altri sono generici,
 tra cui un tutorial da zero sulle classi.
Software Planet (italiano)
 
http://www.softwareplanet.net
 Contiene dei corsi di Delphi scritti da Tommaso Trani (almeno credo :).
Real Programmers Use Pascal (Kylix) (inglese)
 
http://www.oreilly.com/news/kylix_0800.html
 qui ci sono alcuni articoli (per la sezione generale direi), un po'
 datati pero' secondo me interessanti. (Alan Solo)
Delphi in a Nutshell - The Delphi Object Model (inglese)
 
http://www.oreilly.com/catalog/delphi/chapter/ch02.html
 (spiega il modello ad oggetti di Delphi confrontandolo con VB, Java e C++)
(Alan Solo)
Borland Forums
 news://
forums.borland.com
 (inglese)
 i newsgroup della borland, qui troverete sicuramente molte risposte
 su Delphi e sugli altri prodotti Borland
Tamaracka
 
http://www.tamaracka.com/search.htm
 (inglese)
 per cercare nei newsgroup di Borland (Alan Solo)
Componenti / Librerie / Tools (FW / OS / SW / $$) (Paolo Arosio)
 JEDI  
http://www.delphi-jedi.org
 RxLib  
http://www.rxlib.com
 ICS:  (datemi il link)
 Indy:  (datemi il link)
 FreeVCS 
http://www.thensle.de
Notizie, articoli, tips, ... (Paolo Arosio)
 
http://www.dedonline.com
           (Italiano)
 
http://www.programmazione.it
       (Italiano)
 
http://www.delphi3000.com
 
http://www.marcocantu.com
 
http://www.drbob42.com
 
http://www.delphioop.com
TurboPower
 
http://www.turbopower.com
i seguenti link sono per interbase (Alan Solo)
 
http://www.ibphoenix.com
 
http://firebird.sourceforge.net/
Ricerche (Paolo Arosio)
 
http://www.google.com
                  (generale)
------------
Cose Inutili
------------
Ed ora qualche Haiku sul delphi :)
Borland innovates.
Delphi lives where Microsoft
fears to port their code.
 Tim Sommers
drag. drop. TButton.
the form is where it happens.
now, assign OnClick.
 Tim Sommers
Windows sucks out loud
Use Kylix to port your code
Linux treats you right
 Tim Sommers
I am the source code.
compiler reduces me
to ones and zeroes.
 Tim Sommers
I sit and I think
Delphi for Linux, Awesome!
I anxiously wait.
 Micheal Bonner
Haiku Error Messages (Richard Morris)
invalid pointer
I am sure you tried to free
that pointer before
Eek, Invalid cast!
You tried to shove a square peg
into a round hole
Hey, Stack overflow
Now you have PUSHed me to far
Can't take this abuse
That is all messed up
Semicolon before Else
not in this language
$WEAKPACKAGEUNIT
or $DENYPACKAGEUNIT
one or the other
no semicolon
have you recently escaped
Visual Basic ?

quei punti sono "dati di fatto" non valutazioni soggettive.
Il fatto che Delphi sia migliore di VB e' qualcosa che pensi tu e per
quanto la cosa possa essere verosimile, nessuno ti autorizza a
inserire delle opinioni personali come risposte alle domande.
Si puo' progettare codice pessimo in Delphi e ottimo in VB, e
viceversa.
Tra l'altro, mi chiedo se qualcuno abbia mai posto realmente quella
domanda qui dentro.
Temo si sia colta, piuttosto, l'occasione per vestire le proprie
opinioni di una certa ufficialita'.
Le FAQ dovrebbero essere documenti seri e una risposta seria a quella
domanda non e' quella esposta nelle tue pseudo-faq, quanto una che
specifichi che i linguaggi di programmazione non sono confrontabili se
non in relazione agli scopi per i quali sono stati progettati e quindi
in generale quella domanda non ha senso.
Ricordatevi che le FAQ sono risposte oggettive a domande poste di
frequente e non accozzaglie di opinioni personali a domande
immaginarie.
Preciso che non ho mai scritto una riga in Visual Basic, ma rispetto
coloro che lo utilizzano (e molti anche bene).
--
Walkie...@Libero.It (ICQ# 8143647)

16) Ide troppo pesante
Questa non e' una risposta.
***
Preciso che non voglio alimentare un flame, voglio solo far notare
come le risposte siano fuorvianti e ingiuste, per il semplice motivo
che al 50% dei casi sono tratte da esperienze personali e nell'altro
50% sono tratte dalla scarsa conoscenza dei due ambienti.
Al fine di evitare futuri flame (lo dico per voi, dato che non sono
interessato alla costituzione delle FAQ e quindi a seguire le
discussioni che verranno) risposte a domande di questo tipo nelle FAQ
non dovrebbero ingenerare polemiche, ma tendere a stabilire una certa
giustizia tra i linguaggi.
--
Walkie...@Libero.It (ICQ# 8143647)

 coloro che lo utilizzano (e molti anche bene).
Beh che centra, anche io li rispetto ovviamente. Se si dovesse mancare di
rispetto solo perche' usano un altro linguaggio.. :)

 50% sono tratte dalla scarsa conoscenza dei due ambienti.
Ammetto, guardate a una a una, che ci sono certe cose opinabili, ma per il
resto e' tutto giusto
Ciao !                                {MSX}

dal newsgroup stesso.
Le FAQ diventano documenti ufficiali nel momento in cui perdono
individualita' e diventano il documento di un GRUPPO.
Altrimenti compila una lista di domande/risposte e apponici sopra il
tuo nome, specificando a chiare lettere la soggettivita' del
contenuto, perche' non si pensi che siano le FAQ di
it.comp.lang.delphi.  
I documenti relativi a un gruppo di persone non dovrebbero contenere
parzialita' su cui molti di essi potrebbero non essere d'accordo.
--
Walkie...@Libero.It (ICQ# 8143647)


Andrea

resto e' tutto giusto
Non e' giusto che compaia la domanda, e quindi, per integrita'
referenziale, dovrebbero scomparire tutte le righe di risposta.
--
Walkie...@Libero.It (ICQ# 8143647)

 referenziale, dovrebbero scomparire tutte le righe di risposta.
Secondo me e' giusto, perche' e' stata fatta piu' volte nel NG, e mi pare
che sia anche InTopic..
comunque ora che abbiamo detto la nostra tutti e due, vediamo se
qualcun'altro ha da dire la sua e poi vediamo se togliere la domanda o no.

 Delphi uscisse ) potranno capir da sč cosa č meglio... :=)
Eh si sarebbe utile :)
Beh tu cosa ne pensi della domanda sul VB? teniamo, lasciamo o cambiamo ?


Io direi così: Toglila, ma non mancare di sottolineare li dove il caso si
ponga, la "differenza" tra VB e Delphi, senza esprimere un giudizio... tanto
il giudizio si autoesprime... :=)
Non ti preoccupare perché quei programmatori VB che vorranno cambiare, lo
faranno... :=)
Andrea

 essenziali di Delphi", elecandole _TUTTE_.
<omissis>
Punto 2:
Possiedo al lavoro un Pentium 2 350 con 128 MB di RAM.
IDE Delphi 5.0 EE : vi dico che a volte, su progetti grossetti, mi capita
spesso di dormire.
IDE VB 6.0 EE: molto più performante.
IDE Delphi 5.0 EE : si pianta 2, 3 volte al mese
IDE VB 6.0 EE: si pianta 2, 3 volte al mese
a voi le considerazioni.....
Punto 3: (in primis per The DeerBear)
Io VB a suo tempo l'ho scelto. Poi ho provato Delphi. Poi ho riusato VB
perchè mi creava molto meglio quello che mi serviva (OCX), poi ho usato
Java, poi PL-SQL, poi T-SQL, poi VBA di Access 2.0 (sì, ho scritto giusto).
Tutti hanno fatto quello CHE DOVEVANO fare.
Qui urlerei ma non lo faccio dico, che ho molto sale in zucca.
Bye Bye honest


Non l'ho capita, me la spieghi, cosě ti rispondo in modo ragionato?
Andrea

 Carlo Bertuccini, Charlie Calvert, Paolo Arosio
Che strano effetto mi fa vedere il mio nome affianco a quello di Calvert! :)
[URL]
Aggiungo qualche links (mi scuso se ne ripeto qualcuno)
http://www.advdelphisys.com/
{ Moltissime funzioni per Delphi }
http://www.mindspring.com/~cityzoo/buglist/buglist.html
{ Vari trucchi, FAQ etc }
http://www.mhn.org/~graham/delphi.html
{ Altre FAQ }
http://www.delphiexchange.com
{ Molte altre risorse per delphi }
http://www.drbob42.com/
{ Ecco un maniaco di Delphi }
http://www.itecuk.com/delmag/
{ The Delphi Magazine }
http://www.icss.net/~nhodges/delphi.htm
{ Altri esempi e risorse per Delphi }
http://www.mclink.it/mclink/delphi/
{ Molti Link!! }
http://www.delphiseek.com
{ Un vero e proprio motore di ricerca per Delphi }
http://www.delphisource.com
{ Anche qui c'e parecchio materiale interessante }
http://www.kaposnet.hu/books/tysdelphi4/
{ Un intero libro su Delphi }
http://www.chami.com/tips/index/
{ Parecchi Tips, anche su Delphi }
Andrebbero anche riverificati perchè è un po' che non ci vado! :)
Ciao! :)
--
- Carlo -
c.b...@libero.it

 Andrebbero anche riverificati perchè è un po' che non ci vado! :)
Ok li aggiungo.
Ciao e grazie !

Questa non e' una risposta.
l'IDE VB è molto più leggero di quello Delphi :)
posso switchare da un'altra finestra all'IDE e viceversa senza problemi,
l'IDE Delphi fa swappare la memoria come un pazzo ad ogni tentativo
simile


Allora, caro {MSX}, prima mi fai venire l'acquolina in bocca per quel
giochino (Senseless display of violence), e poi non me lo fai scaricare?
Deh, non si fa cosi ;-)
Error message: "File requested don't exists:
http://www.dsi.unive.it/~nlugato/download.cgi?file=http://www.dsi.unive.it/~
nlugato/SDV.zip"
Voglio il giochino!!!!!!!!!!!
--
MBSoftware-Tertenia
http://web.tiscalinet.it/mbsoftware
"Ha detto 'Insert disk #3', ma ne sono entrati solo due."

 Deh, non si fa cosi ;-)
Eheh pardon :)
dovresti poter scaricarlo da:
http://web.tiscalinet.it/irules/Senseless.zip
Prima avevo il sito sul server dell'universita', ma faceva veramente pena,
per cui mi sono trasferito su Tiscali, e ovviamente non ho aggiornato i link
:)
Ricordati di registrare il punteggio quando giochi :) Ma non aspettarti
molto eh... e' un giochino scemo quant'altri mai :)

 Ehehe e' un bell'onore :))
Per Calvert? Già! :-)
Visto che è un po' che frequento questo gruppo ne aggiungo qualcuna di
quelle che io inserirei nelle FAQ ...
----
Q:
Come posso gestire da codice il volume wave della scheda audio?
A:
Includere la unit MMSystem e poi richiamare la WaveOutSetVolume :
WaveOutSetVolume(0, 00000000);  //azzera il volume
WaveOutSetVolume(0, $FFFFFFFF); //imposta al massimo il volume
Nella funzione WaveOutSetVolume le prime 4 cifre del valore esadecimale che
segue la virgola si
riferiscono agli altoparlandi di sinistra, il resto a quelli di destra.
----
Q:
Cme posso eseguire un file Wave senza il TMediaPlayer
A:
Innanzitutto bisogna sempre includere la unit MMSystem nella USES-list.
Il codice per eseguire è il seguente :
PlaySound('Percorso\nomefile.wav',0,SND_SYNC);
L'ultimo parametro indica se il suono deve essere sincrono (il file non può
essere interrotto fino al termine
della sua esecuzione) o asincrono [SND_ASYNC] (dopo aver avviato la
riproduzione si restituisce il controllo all'applicazione)
----
Q:
Come posso far si che la mia applicazione venga caricata ogni volta
all'avvio di Windows?
A: (la lessi da un post di Antonio Tarolla)
Bisogna utilizzare una chiave particolare del Registro di Windows...ecco il
codice :
var Registro : TRegistry;
begin
Registro:=TRegistry.Create;
   try
     Registro.RootKey:=HKEY_LOCAL_MACHINE;
Registro.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Run',False);
     if not Registro.ValueExists('NomeMiaApplicazione') then
        Registro.WriteString('NomeMiaApplicazione',(Application.ExeName));
   finally
    Registro.Free;
   end;
end;
----
Q:
Aprire e chiudere l'unità CD-ROM "primaria"
A: (non saprei dire l'autore)
Anche qui è necessaria la unit MMSystem. Ci sono sicuramente più modi per
fare la stessa cosa, il metodo più semplice consiste nell'utilizzo della
mciSendString
Per aprire :
  mciSendstring('SET CDAUDIO DOOR OPEN WAIT',nil,0, Self.Handle);
Per chiudere :
  mciSendstring('SET CDAUDIO DOOR CLOSED WAIT',nil,0, Self.Handle);
----
Bye! :)


 ma va'
Concordo con Andrea.
I puntatori andrebbero usati il meno possibile proprio per la loro
"pericolosità".
Hai idea di quanti applicativi "intelligenti" basati sull'utilizzo dei
puntatori sono stati buttati nel cestino semplicemente per qualche modifica
all'hardware della macchina etc.?
In quanti casi con Delphi ti trovi a lavorare con i puntatori? Per evitare
l'utilizzo di puntatori la VCL fornisce delle classi apposite (vedi TList e
derivate).
Come dice il mio docente universitario "Ai programmatori C(++) bisogna
eliminare l'aritmetica dei puntatori, grazie alla quale si sentono degli dei
onnipotenti che lavorano su indirizzi di memoria non rendendosi conto che il
codice che scrivono è strettamente dipendente dalle specifiche della
macchina" ... ovviamente ci sono dei casi in cui l'utilizzo dei puntatori
può risultare fondamentale, ma sono appunto dei casi e il il loro utilizzo
deve essere ristretto solo a situazioni particolari!
Ciao! :)


    if key = #13 then key:=#0;
aggiungo che l'evento non è OnKeyDown ma OnKeyPress (#13 e #0 sono
char e in KeyDown è una word...)
per la precisione ;)
Ciao,
Alan Solo

 char e in KeyDown è una word...)
Ma scusa non lo avevo già detto io? :)


Ma scusa non lo avevo giŕ detto io? :)
ahemm 8) ... ho letto in fretta, scusami!
Ciao, :)
Alan Solo

molto eh... e' un giochino scemo quant'altri mai :)
Sarà come dici tu {MSX}, peccherà nella giocabilità e nella durata, ma
secondo me dal punto di vista grafico, è arte. :)
A me non piace giocarci, ma mi piace un sacco vederlo mentre ci
gioco... Strano ma vero! :)))
Ciao!
Peppe
_____
ICQ #9759626
http://members.xoom.it/joe
Togli levaccà per contattarmi via email.

 gioco... Strano ma vero! :)))
eheh tnx :) e' quello che penso anche io :))))
p.s. leggiti l'introduzione, dura ben 14 minuti :)
pensa che tutto il codice occupe 800 righe, e 400 di queste sono le stringhe
dell'introduzione :))
ciao !

 molto eh... e' un giochino scemo quant'altri mai :)
Sarà, ma è il gioco più ROTFL al quale abbia mai giocato :-)))))
Soprattutto nella grafica, da sbudellarsi dalle risate.....
Spero che tu voglia svilupparlo ulteriormente,  non puoi abbandonarlo così
:-P
Può diventare uno "state of the art" del mondo videoludico.
Ciao.


 Può diventare uno "state of the art" del mondo videoludico.
Eh non credo che andro' avanti.. ci avevo aggiunto i suoni (sempre
demenziali, tipo gorgoglii di morte, urla agonizzanti e rumori lugubri di
ossa macinate :) ma poi non l'ho pubblicato.
In compenso penso che rilascero' i sorgenti appena avro' tempo (che fanno
piu' ridere del gioco, pero' involontariamente :)
Ciao !

 nell FAQ. 
ma ci faccia il piacere, ci faccia... VB è buono solo per il supporto 
nativo OLE... tutto il resto è spazzatura...

 Aprire e chiudere l'unità CD-ROM "primaria"
no, del lettore CD-audio predefinito, per la precisione
datemi un giorno di tempo e vi tiro fuori una funzione che espelle anche 
i dischi rimovibili. So già come fare, ma adesso ho sonno :P

Scusa il ritardo, ma ogni tanto si stacca anche dal Pc, per fortuna.
Bhe, niente, rileggendo ora mi accorgo semplicemente che avevo frainteso la
tua risposta precedente, sorry ! Nulla e mai nulla di personale !
Bye Bye Honest


Andrea