Newsgroup: it.comp.lang.pascal
Titolo: AIUTO

qualcuno ha un compilatore pascal ?? 
( possibilmente non molto nuovo che devop usarlo su un pc non molto
potente...anche per dos mi va bene )
grazie

Freepascal. Lo trovi su volftp. Io ho provato la versione per Linux e fa
praticamente tutto, c'è anche la possibilità di usare i socks, però crea
eseguibili incredibilmente enormi (se metto uses crt e scrivo un testo su
schermo ottengo 300 kb), nulla a che vedere con il tp7 borland. Inoltre
Delphi 1 lo regalano.
-=Azathoth=-

 Inoltre Delphi 1 lo regalano.
Peccato che sia a 16 bit (con tutto ciò che esso comporta)...
[per informazione: girava anche D2 su una rivista inglese...]
Ciao :-)
--
(¯`·.¸¸.·´¯`·.¸¸.-> Andrea <-.¸¸.·´¯`·.¸¸.·´¯)
AntiSpam: rimuovere il trattino basso dall'indirizzo per rispondere
AntiSpam: remove the underscore from the e-mail address to reply

Mi spiegheresti come si fa? :-) Altra cosa, conosci anche FreePascal per
Linux?
Grazie!
-=Azathoth=-

 Linux?
Dunque, sei fortunato che poco tempo fa mi era stata fatta la stessa domanda
su it.comp.lang.delphi e mi ero preparato un piccolo esempio . Te lo riporto
qui sotto, l'eseguibile, compilato con D3 arriva a 16 Kb, ovviamente devi
rinunciare alla programmazione ad oggetti e smazzarti tutto via API (il che
significa scrivere + codice per le operazioni anche elementari)...
Penso che lo compili anche FreePascal ma è da un pezzo che non lo uso
(preferisco di gran lunga Delphi,il suo IDE e altre features che in FP ci si
sogna! :-)
Di Linux non so quasi nulla... penso che ci farò un pensierino quando la
Borland rilascerà Kilyx...
// *************************************
program ProvaAPI;
uses
  Windows,
  Messages;
var
  Classe: TWndClassA;
   Inst, // istanza
   Handle, // handle finestra principale
   Button1Handle, // handle controllo pulsante
   Label1Handle, // idem x la static [label]
   Edit1Handle: Integer; // idem x la Edit
  Msg: TMsg; // questo mi serve per il loop dei messaggi
  hFont: Integer;
procedure OnClickButton1;
var testo:pchar;
    numC:Integer;
begin
// ottiengo qualcosa di simile a Length(Edit1.Text)
numC:=SendMessage(Edit1Handle,wm_GetTextLength,0,0)+1;
// alloco memoria per ricevere la stringa
GetMem(testo,numC);
// chiedo la stringa
SendMessage(edit1Handle,wm_getText,numC,Integer(testo));
// visualizzo la stringa
MessageBox(handle,testo,'Ciao',MB_OK);
// libero la memoria
FreeMem(testo);
end;
function WindowProc(hWnd, uMsg, wParam, lParam: Integer): Integer; stdcall;
begin
// Questa è la procedura che processa il ciclo di messaggi
  Result := DefWindowProc(hWnd, uMsg, wParam, lParam);
// evitiamo di gestirceli tuttia manina...
  case uMsg of
       WM_COMMAND: if lParam=Button1Handle then OnClickButton1;
// Questa del WM_COMMAND non è proprio correttissima, cmq...
       WM_DESTROY: Halt;
       // qui puoi gestire tutti i messaggi che vuoi
  end;
end;
begin
  Inst := hInstance;
  with Classe do
   begin
   style:= CS_CLASSDC or CS_PARENTDC;
   lpfnWndProc:=@WindowProc;
   hInstance:=Inst;
   hbrBackground:=color_btnface+1;
   lpszClassname:='AndreaFin';
   hCursor:=LoadCursor(0, IDC_ARROW);
   end;
  RegisterClass(Classe);
  // finestra principale
  Handle := CreateWindowEx(WS_EX_WINDOWEDGE,
                      'AndreaFin', // classe della finestra
          'Prova da Andrea Magni', // titolo finestra
                           WS_VISIBLE // visibile
                        or WS_SIZEBOX // ridimensionabile
                        or WS_CAPTION // con barra del titolo
                        or WS_SYSMENU, // con il menu standard
                           300, // left
                           240, // top
                           300, // largh
                            60, // altezza
                             0, // parent = nessuno
                             0, // nessun menu
                          Inst, // istanza applicazione
                            nil); // parametro usato per le MDI
  // un pulsante
  Button1Handle:=CreateWindow('Button','Clicca',WS_VISIBLE
                                           or WS_CHILD
                                           or BS_PUSHLIKE
                                           or
BS_TEXT,216,8,75,25,handle,0,Inst,nil);
  Label1Handle:=Createwindow('Static','Scrivi qualcosa:',WS_VISIBLE or
WS_CHILD or SS_LEFT,8,12,176,13,Handle,0,Inst,nil);
  Edit1Handle := CreateWindowEx(WS_EX_CLIENTEDGE, 'Edit', ':-)', WS_CHILD or
WS_VISIBLE or
                          WS_BORDER, 88, 8, 121, 23, Handle, 0, Inst, nil);
  // Settiamo un font + carino...
  hFont := CreateFont(-11, 0, 0, 0, 400, 0, 0, 0, DEFAULT_CHARSET,
                      OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS,
DEFAULT_QUALITY,
                      DEFAULT_PITCH or FF_DONTCARE, 'MS Sans Serif');
  if hFont <> 0 then
  begin
    SendMessage(Button1handle, WM_SETFONT, hFont, 0);
    SendMessage(Label1Handle, WM_SETFONT, hFont, 0);
    SendMessage(Edit1Handle, WM_SETFONT, hFont, 0);
  end;
  SetFocus(Edit1Handle);
  UpdateWindow(Handle);
  while(GetMessage(Msg, Handle, 0, 0)) do
  begin
    TranslateMessage(msg);
    DispatchMessage(msg);
  end;
end.
// *************************************


 wrote in message
94865765...@melissa.energy.it...
