[ Delphi / Pascal ] — начинающим: задаем вопросы (архивная - 2015)

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by banned, 6 May 2007.

Thread Status:
Not open for further replies.
  1. patcher

    patcher Banned

    Joined:
    15 Dec 2009
    Messages:
    190
    Likes Received:
    37
    Reputations:
    10
    Можно и Jpeg:
    Code:
    uses ...JPEG, ExtCtrls;
     
  2. НTL

    НTL Elder - Старейшина

    Joined:
    26 Jan 2008
    Messages:
    715
    Likes Received:
    205
    Reputations:
    -26
    Это подключается когда на форму кидаешь image1

    Code:
    Image2.Canvas.Draw(x, y, Image1.Picture.Graphic);
    Не проходит, даже с bmp
     
    #5142 НTL, 10 Jan 2010
    Last edited: 10 Jan 2010
  3. patcher

    patcher Banned

    Joined:
    15 Dec 2009
    Messages:
    190
    Likes Received:
    37
    Reputations:
    10
    дык, ты же спрашивал вроде как без фомы сделать:)
    ЗЫ стукни в аську вечерком (в профиле), помогу разобратся)
     
  4. НTL

    НTL Elder - Старейшина

    Joined:
    26 Jan 2008
    Messages:
    715
    Likes Received:
    205
    Reputations:
    -26
    и еще вопрос: как записать весь файл в строковую переменную?
     
  5. Seven[up]

    Seven[up] Banned

    Joined:
    10 Aug 2009
    Messages:
    45
    Likes Received:
    36
    Reputations:
    0
    как закрыть прогу, во время выполнения цикла?:
    Code:
    memo1.Clear;
    i:=-1;
    for m:= 0 to 1000000000 do
    begin
    application.ProcessMessages;
    I:= I+1;
    memo1.Lines.Add(IntToStr(i));
    end;
     
  6. НTL

    НTL Elder - Старейшина

    Joined:
    26 Jan 2008
    Messages:
    715
    Likes Received:
    205
    Reputations:
    -26
    form1.Close;
     
  7. =Zeus=

    =Zeus= Member

    Joined:
    10 Aug 2009
    Messages:
    213
    Likes Received:
    54
    Reputations:
    5
    Если нужно ДЖПГ то попробуй это:
    Как перевести BMP в JPEG и обратно
    Code:
    uses JPEG;
    //BMP -> JPEG
    JpgImage:=TJPEGImage.Create;
    JpgImage.Assign(BmpImage);
    //JPEG -> BMP
    BmpImage:=TBitmap.Create;
    BmpImage.Assign(JpgImage); 
    Где BmpImage и JpgImage - твои файлы.

    А для вот пример накладывания текста на картинку. Но при таком подходе фон текста не прозрачный. Может кто-то предложит вариант и по-лучше, но пока так:
    Code:
    Image1.Picture.Bitmap.Canvas.TextOut(0, 0, 'bla-bla');
    ================================================================================
    Application.Terminate;
    и что это у тебя за корявый цикл? Вот так будет лучше:
    Code:
    memo1.Clear;
    application.ProcessMessages;
    while true do
    begin
    inc(i);
    memo1.Lines.Add(IntToStr(i));
    end;
     
    #5147 =Zeus=, 10 Jan 2010
    Last edited: 10 Jan 2010
    1 person likes this.
  8. НTL

    НTL Elder - Старейшина

    Joined:
    26 Jan 2008
    Messages:
    715
    Likes Received:
    205
    Reputations:
    -26
    решит все проблемы :)
     
  9. wolmer

    wolmer Member

    Joined:
    12 May 2009
    Messages:
    438
    Likes Received:
    97
    Reputations:
    9
    Форму то он закроет а вот программа будет висеть в процессах, так что тут только возможно убийство процесса (о этом гуглите, много примером существует на эту тему)(по другому не знаю как сделать)
     
    #5149 wolmer, 10 Jan 2010
    Last edited: 10 Jan 2010
  10. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    ExitProcess(0) o_O
     
  11. F&D

    F&D Member

    Joined:
    6 Nov 2008
    Messages:
    341
    Likes Received:
    8
    Reputations:
    5
    Как "убить" процесс, зная его pid?
     
  12. patcher

    patcher Banned

    Joined:
    15 Dec 2009
    Messages:
    190
    Likes Received:
    37
    Reputations:
    10
    Code:
    function ReadFile2String(filename:string):string;
    var s:TStringList;
    begin
    s:=TStringList.Create;
    s.LoadFromFile(filename);
    result:=s.Text;
    s.Free;
    
    пример использования:
    Code:
    var s:string;
    begin
    s:=ReadFile2String('c:\file.txt');
    
     
  13. Linkus

    Linkus Member

    Joined:
    20 Dec 2008
    Messages:
    168
    Likes Received:
    15
    Reputations:
    -1
    ещё один забаненный Гуглом

    Code:
    bool KillProcByPid(DWORD pid)
    {
    DWORD ExitCode;
    HANDLE hp;
    bool ret = true;
    
    if(pid)
            {
            hp = OpenProcess(PROCESS_ALL_ACCESS, true, pid);
            if (hp)
                    {
                    GetExitCodeProcess(hp, &ExitCode);
                    ret = TerminateProcess(hp, ExitCode);
                    }
            else
                    {
                    return false;
                    }
            }
    else
            {
            return false;
            }
    
    CloseHandle(hp);
    return ret;
    }
    
    не тестил но в принципе работать должно :)
     
  14. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    небольшая поправка. PROCESS_ALL_ACCESS лучше не делать. Лучше ставить флаг что ты открываеш процес для убийства, а не с полными правами. Потому как бывают случае что нельзя процесс открыть с полными правами. Да и тут это не нужно
     
    1 person likes this.
  15. kenny-cs

    kenny-cs New Member

    Joined:
    3 Dec 2007
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    Проблема с вводом и выводом с помощью StringGrid.
    Вот код
    Code:
    var i,j : integer; 
    mas : array[1..15] of integer;
     sort : array[1..15] of integer;
     
    begin 
    j:=1; 
     
    for i:=0 to 15 do  
    begin
    mas[i]:=StrToInt(StringGrid1.Cells[i,0]);  
    end; 
     
    for i:=0 to 15 do 
     begin  
    if (mas[i] < 0) then 
     begin  
    sort[j]:=mas[i]; 
     j:=j+1;
     end;  
    end; 
     
    for i:=0 to 15 do  
    begin  
    if (mas[i] = 0) then 
     begin  
    sort[j]:=mas[i];  j:=j+1; 
    end; 
    end; 
    
     for i:=0 to 15 do  
    begin 
     if (mas[i] > 0) then  
    begin  
    sort[j]:=mas[i];  j:=j+1;  
    end; 
     end; 
    
     for i:=0 to 15 do 
     begin  
    StringGrid1.Cells[i,0]:=IntToStr(sort[i]);  
    end;
    А вот ошибка
    [​IMG]

    Подскажите пожалуйста, как Int вводить и выводить в StingGrid.
     
  16. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    ну онже пишет что ты пытался пустую стркоу конвертировать в число.
    т.е. у тебя не все элементы sort являются числами. Так что проверяй его содержимое
     
  17. F&D

    F&D Member

    Joined:
    6 Nov 2008
    Messages:
    341
    Likes Received:
    8
    Reputations:
    5
    Вы конечно ОЧЕНЬ любезны уважаемый, но я просил помощи на Delphi, а не на Си. Если кто-то может помогите пожалуйста переделать данный код на Delphi-йский.

    Заранее благодарен.
     
  18. ][yZ

    ][yZ Member

    Joined:
    3 Mar 2009
    Messages:
    66
    Likes Received:
    46
    Reputations:
    10
    Code:
    procedure TForm1.KillProcess(PID: Cardinal);
    var
      exitcode:UINT;
      x:THandle;
    begin
      x:=Openprocess(PROCESS_TERMINATE,false,PID);
      if x <> 0 then begin
        try
          TerminateProcess(x, 0);
        finally
          CloseHandle(x);
        end;
      end;
    end;
    
     
    1 person likes this.
  19. iGlass

    iGlass New Member

    Joined:
    14 May 2009
    Messages:
    86
    Likes Received:
    1
    Reputations:
    0
    Всем доброго времени суток!

    Вопрос:

    Имеется два текстовых поля Memo1,Memo2 и кнопка.

    Так вот по нажатии на кнопку необходимо строчки из Memo1 переместить в Memo2 в рандомном порядке.

    Заранее спасибо :)
     
  20. Seven[up]

    Seven[up] Banned

    Joined:
    10 Aug 2009
    Messages:
    45
    Likes Received:
    36
    Reputations:
    0
    Code:
    procedure TForm1.Button1Click(Sender: TObject);
    var I:integer;
    var m:integer;
    begin
    for m:= 0 to memo1.Lines.Count-1 do
    begin
    I:= random(memo1.Lines.Count);
    memo2.Lines.Add(memo1.Lines.Strings[i]);
    memo1.Lines.Delete(i);
    end;
    end;
    сорри если ошибся, я недавно в delphi
     
Thread Status:
Not open for further replies.