Execute the compiling DOS windows in a memo control. lazarus / 6-IDE-CodeTools ---------------------------------------------------------------------- vincenzo · 2004-05-31 22:14 Well... I'm new here !! My idea is to insert the content of the DOS compiling windows (where will appear the errors , hints and warnings)into a memo control . For do that we can get the text buffer from the dos compiling windows(the file lazarus.exe)and put it into a memo control. The code for do that (in Delphi) is this ... //Only for win32 procedure LanciaComandoDosInMemo (ComandoDos: String; AMemo:TMemo); const     BufferDiLettura = 2400; var     AttrSicurezza : TSecurityAttributes;     CodaDiLettura, CodaDiScrittura : THandle;     Inizio : TStartUpInfo;     InfoDelProcesso : TProcessInformation;     Buffer : Pchar;     ByteLetti : DWord;     AppAttiva : DWord; begin     with AttrSicurezza do     begin         nlength := SizeOf(TSecurityAttributes);         binherithandle := true;         lpsecuritydescriptor := nil;     end;     if Createpipe (CodaDiLettura, CodaDiScrittura, @AttrSicurezza, 0) then     begin         Buffer := AllocMem(32767); // alloca memoria per 32k sostituisci con 65536 per 64k         FillChar(Inizio, Sizeof(Inizio),#0);         Inizio.cb := SizeOf(Inizio);         Inizio.hStdOutput := CodaDiScrittura;         Inizio.hStdInput := CodaDiLettura;         Inizio.dwFlags := STARTF_usesTDHANDLES + STARTF_usesHOWWINDOW;         Inizio.wShowWindow := SW_HIDE;         if CreateProcess(nil,pchar(comandodos),@AttrSicurezza,@AttrSic urezza,true,         NORMAL_PRIORITY_CLASS, nil,nil,Inizio,InfoDelProcesso)         then         begin             repeat             AppAttiva := WaitForSingleObject(InfoDelProcesso.hProcess,100);             Application.ProcessMessages;             until (AppAttiva <> WAIT_TIMEOUT);             Repeat             ByteLetti := 0;             ReadFile(CodaDiLettura,Buffer[0], BufferDiLettura,ByteLetti,nil);             Buffer[ByteLetti]:= #0;             OemToAnsi(Buffer,Buffer);             AMemo.Text := AMemo.text + String(Buffer);             until (ByteLetti < BufferDiLettura);         end;         FreeMem(Buffer); // libero la memoria         CloseHandle(InfoDelProcesso.hProcess);         CloseHandle(InfoDelProcesso.hThread);         CloseHandle(CodaDiLettura);         CloseHandle(CodaDiScrittura);     end; end; with this small portion of this code we can see the contents of an executed dos program into a memo control . Sorry for my english, but i'm not  english .I'm Italian. For any questions please reply here or send an e-mail to vincenzodentamaro@hotmail.com HELLO!!