Newsgroup: it.comp.lang.delphi
Titolo: [FAQ] versione definitiva (o quasi)

Le FAQ di IT.COMP.LANG.DELPHI
Raccolte e pseudo-mantenute da Nicola {MSX} Lugato
Versione 1.0
-------------
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:
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.
-DOMANDA:
Come posso far si che la mia applicazione venga caricata ogni volta
all'avvio di Windows?
-RISPOSTA (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;
-------------------------------------------------------
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:
Devi creare l'oggetto che vuoi (ad esempio un bottone) come qualsiasi altro
oggetto e settarci i valori, successivamente chiamare:
Oggetto.Parent := Form;
per rendere visibile l'oggetto. Dopodiche' puoi settare gli eventi,
associandoli a
procedure che abbiano la stessa firma (= lista dei parametri).
procedure TForm1.NuovoBottone;
var Button:TButton;
begin
Button := TButton.Create(Form1);
Button.Caption := 'Premimi !';
Button.Left := 100;
Button.Top := 100;
Button.Parent := Form1;
Button.OnClick := ClickProc;
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 OnKeyPress metti:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if key = #13 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:
Aprire e chiudere l'unità CD-ROM "primaria"
-RISPOSTA (Carlo Bertuccini):
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);
-DOMANDA:
Come faccio ad eseguire un programma esterno?
-RISPOSTA:
Ancora una volta, usa ShellExecute.
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 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.
Questa tecnica funziona solo su Windows 9x/ME
-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: (Carlo Bertuccini)
La soluzione_teorica_più correttta  per questo tipo
di problemi consiste nell'iniezione di un hook WH_GETMESSAGE (con DLL) nel
thread/processo esterno interessato e intercettare le notifiche spedite dal
componente stesso ... ad esempio per il click di un bottone viene inviata la
notifica BN_CLICKED e così via.
Non lo ho mai provato ma dovrebbe funzionare.
-Domanda:
Come faccio a spegnere il computer da una mia app (shutdown) ?
-RISPOSTA:
Devi usare ExitWindowsEx.
E' fondamentale il parametro EWX_SHUTDOWN. Inoltre su piattaforme NT/2K è
necessario risettare i privilegi mediante AdjustTokenPrivileges e funzioni
correlate.
-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.
----------------------------------------------------
----------
MULTIMEDIA
----------
-DOMANDA:
Come posso gestire da codice il volume wave della scheda audio?
-RISPOSTA (Carlo Bertuccini):
Includere la unit MMSystem e poi richiamare la WaveOutSetVolume :
WaveOutSetVolume(0, 00000000);  file://azzera il volume
WaveOutSetVolume(0, $FFFFFFFF); file://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.
-DOMANDA:
Cme posso eseguire un file Wave senza il TMediaPlayer
-RISPOSTA (Carlo Bertuccini):
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)
--------------------
INTERNET PROGRAMMING
--------------------
-DOMANDA:
Come posso aprire il browser di default su un URL a scelta?
-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 a sapere se sono connesso a Internet ?
-RISPOSTA: (Carlo Bertuccini)
Devi utilizzare le API RAS (Servizi di accesso remoto). Trovi molti esempi
e anche un traduzione dell'header C sulla DSP. Se vuoi semplificare il
lavoro scarica (sempre dallo stesso sito) il componente kzinternetdetect
che ha tra le sue proprietà/metodi un Connected che restituisce
l'informazione interessata.
Non so se ci sia una/nessuna/+ di una traduzione dell'header dell'API
RAS sulla DSP, sicuramente c'è una traduzione sul sito di Fraçoise Piette
(non ho sottomano l'URL)
-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
Per prezzi piu' aggiornati, vai al sito 
www.borland.com
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,
WalkieTalkie, Unforgiven, KJK :: Hyperion, Claudio "Elder" Bertoli
-----
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)
Altri link (non testati) da Carlo Bertuccini
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 }
------------
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 ?

Qualcuno vuole inserire qualche domanda ? :))
(è banale ma è una vera *F* aq)
-DOMANDA: Come si fa a togliere la finestra di login per la connesione
al database?
-RISPOSTA:
Imposta la proprietà LoginPrompt del TDatabse a False.
direi che la FAQ va bene... o cmq la si puo' pubblicare, aggiungeremo
qualcosa con il passare del tempo...
Ciao,
Alan Solo

 (non ho sottomano l'URL)
Occhio al testo quotato, era una precisazione (un By The Way) da non
inserire così nella risposta ...
So che in questo momento mi odi perchè ti continuo a fare cambiare le FAQ,
lo faccio solo per il bene dei beginner (e dei partecipandi del NG che non
dovranno + rispondere alle stesse domande) e solo a discapito tuo! ;-)
Ciao! :)
--
- Carlo -
c.b...@libero.it

If Button = nil then codicecreazione.
sì, anche se qui Delphi non è eccellente, infatti Button potrebbe
essere non nil anche se non sta puntando ad un oggetto...
infatti un Oggetto.Free lascia "Oggetto", inteso come puntatore,
inalterato, a meno che' non si usi FreeAndNil
Direi cmq, che questi sono discorsi un po' piu' "avanti" ;)
e che la soluzione iniziale (con o senza with) vada piu' che bene per
un newbie, poi i casi particolari li si possono discutere
separatemente
Ciao,
Alan Solo

 With TButton.Create do begin
With TButton.Create(Form1) do begin
sono un po' distratto ultimamente! ;)
[...]
Ciao,
Alan Solo

 frasi in prima persona ;-P
Gia' l'ho messo perche' non sono sicuro :) Se qualcuno e' sicuro che su D6
non c'e', lo dica :)
Per tutto il resto, applichero' le modifiche che hai suggerito.
Ciao !                    {MSX}

 dovranno + rispondere alle stesse domande) e solo a discapito tuo! ;-)
Ma va la :) Anzi fai bene, cosi' facciamo delle belle FAQ e facciamo bella
figura tra i NG :)
La prossima versione per domani.
Ciao !                            {MSX}

come C sta a C++ (che dite?)
No.  Alcuni aspetti del C sono illegali in C++.
--
Walkie...@Libero.It (ICQ# 8143647)

No.  Alcuni aspetti del C sono illegali in C++.
( :-) dai lo so che ti sto sul ca##o! ;) )
cmq, niente.... non voleva essere una *verità* *Assoluta*, era solo
per far capire a chi legge le FAQ che differenze ci sono (magari
qualcuno ha studiato un po' di C e C++ e vuole usare delphi, poco
probabile, cmq...) tra pascal e object pascal...
di fatto C++ è anche chiamato "C con classi".. giusto?
Ciao,
Alan Solo

di fatto C++ č anche chiamato "C con classi".. giusto?
Sbagliato.
--
Walkie...@Libero.It (ICQ# 8143647)

Sbagliato.
non era una domanda,
rifaccio:
il C++ era *originariamente* chiamato "C con classi", giusto?
Giusto.
Alan Solo

Giusto.
Sbagliato.
Originariamente il "C con classi" NON era C++.
Oggi esiste il C++.
--
Walkie...@Libero.It (ICQ# 8143647)

 Sbagliato.
Giustissimo invece. Era il nome scelto prima di C++.


Forse ti riferisci ad Objective C( non C++ ) che è diverso dal C++, sono due
rami di derivazione C che implementano le classi.
Poi tra i due è stato scelto C++ per tante ragioni.
Andrea

rami di derivazione C che implementano le classi.
Andrea! non ti ci mettere pure tu!! ;)))
il "problema" (che non esiste) è che l'evoluzione fatta da pascal a
object pascal secondo me è *simile* a quella da C a C++, tutti qui,
niente di ++ semplice...
[per {MSX}]: togli quella frase va! ;)
Ciao,
Alan Solo

 Alan Solo
Ciao,
Andrea

Forse è meglio... :=)
già ;)
Ciao,
Alan Solo

 Oggi esiste il C++.
perfetto, e Delphi non č Objective Pascal, ma Delphi. Tutto torna.
Pascal -> Objective Pascal -> Delphi
C      -> Objective C      -> C++
prova a dire di no anche stavolta e noi ignoranti ti si ricopre di pece 
e piume e ti si butta a mare, a sfamare i pesci

C      -> Objective C      -> C++
Si dice "Object Pascal", non "Objective Pascal".
Pascal e Object Pascal sono due linguaggi diversi.
C e Objective C sono DUE LINGUAGGI DIVERSI.
NON PARLATE DI ARGOMENTI CHE NON CONOSCETE !!!!!
--
Walkie...@Libero.It (ICQ# 8143647)

 Walkie...@Libero.It (ICQ# 8143647)
Andrea

Ed č quello che ho detto, infatti... č Alan che non so di cosa parli... ^_^
mi stai prendendo in giro (spero) 8)))
[dalle FAQ]
-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.
*** FRASE INCRIMINATA ***
Per fare una analogia, si potrebbe dire che Pascal sta a Object Pascal
come C sta a C++.
*** GIUSTIFICAZIONE ***
- Pascal non ha classi mentre Object Pascal sģ
- č una evoluzione simile a quella ad C a C++:
  C non ha classi mentre C++ sģ
ecco, l'analogia...
non ho detto nulla di piu' e nulla di meno!!! :-)))
cmq, per piacere basta, togliete quella frase!!!!!!
Ciao,
Alan Solo



Sbagliato. Lo vuoi capire o no ?
"C con classi" era il nome dato a quell'ibrido derivato dal C, che
raccoglieva alcuni elementi del Simula67.
"C con classi" non e' il nome scelto prima di C++, ma e' semplicemente
cio' che era una pseudo-evoluzione del C.
Ribadisco : se non conoscete questi argomenti, non vi imbarcati in
discussioni.
--
Walkie...@Libero.It (ICQ# 8143647)

Poi tra i due è stato scelto C++ per tante ragioni.
Tra QUALI due ???!?!?!
--
Walkie...@Libero.It (ICQ# 8143647)


Chiedo pubblicamente perdono al Sol soletto( eheheheheeheh ) per avergli
attribuito una frase di Hyperion.
Hyperion: Che diavolo č l'Objective Pascal? ;=P


C++		Sě
Il confronto tra i linguaggi non si basa solo sulla presenza o meno
del supporto delle classi.
--
Walkie...@Libero.It (ICQ# 8143647)

del supporto delle classi.
hahahahahhaha.. sto impazzendoooooo!!!!!!!!!
cazzo i miei messaggi non li leggere piu' come hai detto per
perpiacere, o se li leggi almeno cerca di capirli...
si stava parlando del supporto delle classi in quella famosa FAQ,
e l'analogia stava proprio nel supporto delle classi (tra p-op e
c-c++)...
ovviamante (bravo hai ragione tu) non si puo' basare un confronto solo
sulla presenza o meno delle classi, anche se credo che sia una delle
evouzione piu' importanti e difficili da imparare.... visto che la
domanda era "conosco il pascal, se volessi imparare l'object pascal?"
se uno avesse gią studiato C e C++, gli si potrebbe dire "hai presente
il passaggio da C a C++, ecco, č molto *similie*"
Addio,
Alan Solo

 ha scritto nel messaggio
news:3b15da17...@news.libero.it...

Objective C e C++


Hyperion: Che diavolo č l'Objective Pascal? ;=P
e che ne so io? io programmo in Delphi, so niente io O:-)

NON PARLATE DI ARGOMENTI CHE NON CONOSCETE !!!!!
già, come se tu scrivessi manuali di buone maniere

 cmq, per piacere basta, togliete quella frase!!!!!!
io quella frase non la tolgo, proprio perche' e' azzeccata e rende benissimo
l'idea, e' utile per chi conosce il C/C++ e non ha mai sentito parlare del
Delphi.
Non lasciatevi influenzare da chi dice di sapere tanto, fa il gradasso e
rompe le scatole.

> hahahahahhaha.. sto impazzendoooooo!!!!!!!!!
Caro Alan, stai calmo :) Devi sapere che in ogni newsgroup c'e' uno come
lui, da noi c'e' lui. :)
Legge tutti i messaggi come vuole, trovando cavilli ovunque dove appoggiarsi
per negare tutto e possibilmente dare dell'ignorante a chi invece invia post
costruttivi.
E' ovvio e palese che l'analogia sta in piedi benissimo, tant'e' che l'ho
letta diverse volte in giro.
Quindi non ti guastare il sangue.
ciao !

 wrote:
Mi inserisco anche io nel chilometrico tread
Intanto ringerazio MSX come newbie di delphi trovo che
la Faq sia una iniziativa molto bella. Comprensibile e utile.
Spero non si faccia scoraggiare da polemiche sull'analogia
tra  c:c++ = pascal:delphi
Visto che la fa faq la scritta lui, mi sembra che spetti a lui se
inserirla oppure no (mi sembra di ricordare che l'affermazione in sè
era un contributo di alan).  
io però ritengo che l'analogia sia sensata e che vada presa per quello
che è, un analogia appunto.
E' un analogia paragonare l'atomo con il sistema solare.
o l'elettricita ad un liquido (gli ampere che equivalgono ai litri
minuto e il potenziale alla pressione)
la terra non sarà un elettrone. Ma provate a spiegare direttamente le
equazioni probabilistiche degli orbitali ad un bambino di prima
elementare.

Quindi non ti guastare il sangue.
tu lasciala l'analogia nella FAQ... ci servirà ad identificare in 
anticipo gli elementi turbolenti :)

 elementare.
Ecco, hai reso perfettamente l'idea :)

rompe le scatole.
io voglio solo smorzare questo flame insensato!!!! :-)))
Ciao,
Alan Solo