[ 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. A2GIL

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

    Joined:
    31 Aug 2007
    Messages:
    84
    Likes Received:
    59
    Reputations:
    -3
    ну вообще-то на стандартной вкладке(Standart) TMemo в него можно запихать какой угодно текст, как программо (загружать из текстового файла), так и сразу в свойствах задать(свойство Lines)
    P.S. В следующий раз можешь не напоминать как запустить DELPHI :D
     
  2. GSM™

    GSM™ Elder - Старейшина

    Joined:
    2 Nov 2007
    Messages:
    221
    Likes Received:
    31
    Reputations:
    6
    там нашел только Memo и текст в ней становиться доступным для редактирования пользователем и выделяется на белом фоне. а мне надо чтобы текст был на фоне программы и неизменялся пользователем.
    что бы выглядел как Label. пробовал в лабел вставлять текст но неудобно. и как цвет текста можно поменять? как фон поменять увидел. а нужно именно текст.
     
    #922 GSM™, 13 Jan 2008
    Last edited: 13 Jan 2008
  3. A2GIL

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

    Joined:
    31 Aug 2007
    Messages:
    84
    Likes Received:
    59
    Reputations:
    -3
    именно Memo тебе в таком случае и нужен! Вот решение твоей проблемы:
    Щелкни два раза на область формы (именно на форму только), чтобы вызвать процедуру FormCreate затем впиши туда код:

    Code:
    procedure TForm1.FormCreate(Sender: TObject);
    begin
    Memo1.BorderStyle:=bsNone;
    Memo1.ReadOnly:=true;
    Memo1.Color:=clBtnFace; //изменяем цвет фона (такой по стандарту)
    Memo1.Font.Color:=clRed;//изменяем цвет текста (красный)
    end;
    P.S. Думаю к концу топика, мы твою прогу доделаем!
     
  4. GSM™

    GSM™ Elder - Старейшина

    Joined:
    2 Nov 2007
    Messages:
    221
    Likes Received:
    31
    Reputations:
    6
    сделал но не получил нужного результата. получилось что рядом с текстом постоянно мигает курсор.
    и текст можно выделить. а надо что бы невыделяемый был.
    P.S. Думаю к концу топика, мы твою прогу доделаем!
    да это очень маленькая программка. немного осталось....
     
    #924 GSM™, 13 Jan 2008
    Last edited: 13 Jan 2008
  5. A2GIL

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

    Joined:
    31 Aug 2007
    Messages:
    84
    Likes Received:
    59
    Reputations:
    -3
    Дам, какой ты привиредливый. Можно поступить следующим образом:
    Выдели форму, затем Object Inspector выбири вкладку Events. Там найди процедуру OnPaint, создавай её! Далее пишем для нее код:
    Code:
     with Canvas do begin
      Font.Color:=clRed;
      TextOut(10,10,'Простой текст');
     end;
    Она тебе выведет текст на форме по координатам (вместо десяток сам подбери место, например 300,200):
    Это не совсем удобный способ, конечно, так как если нужно огромедный текст пихать то лучше создать отдельный текстовый файл с ним и загружать из него. Но если тебе не важно, можно и схитрить. Выводить текст из Memo, при этом его самого скрыть! Выбирай!
     
    #925 A2GIL, 13 Jan 2008
    Last edited: 13 Jan 2008
    1 person likes this.
  6. GSM™

    GSM™ Elder - Старейшина

    Joined:
    2 Nov 2007
    Messages:
    221
    Likes Received:
    31
    Reputations:
    6
    свежая порция вопросов. как сделать так что бы при нажатии button1 программа закрывалась, разворачивалась или сворачивалась. и еще один вопрос. как сделать так чтобы при нажатии button1 срабатывал диалог OpenDialog?
    и как сделать что бы изображение отображалось равномерно. делаю так- с Win-32 перенес на форму PageControl, потом на PageControl перенес из дополнительно Image. вставил туда изображение, но оно отображается наполовину. и как сделать что бы при нажатии на Button1 открывалось новое окно с изображением?
     
    #926 GSM™, 14 Jan 2008
    Last edited: 14 Jan 2008
  7. zl0y

    zl0y Banned

    Joined:
    13 Sep 2006
    Messages:
    371
    Likes Received:
    270
    Reputations:
    109
    Учебник по делфи купи/скачай.
     
  8. GSM™

    GSM™ Elder - Старейшина

    Joined:
    2 Nov 2007
    Messages:
    221
    Likes Received:
    31
    Reputations:
    6
    скачал уже. нету там ничего подобного. подожду пока придет A2GIL...
     
  9. krypt3r

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

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    Code:
    Application.Terminate; //закрытие приложения
    Application.Maximize;  //разворачивание
    Application.Minimize; //сворачивание 
    
    Поместить компонент OpenDialog, а в коде нажатия кнопки вписать
    Code:
    if OpenDialog1.Execute then begin
       ///тут код
    end;
    
    При вызове Execute откроется стандартное диалоговое окно Open Dialog
     
    1 person likes this.
  10. GSM™

    GSM™ Elder - Старейшина

    Joined:
    2 Nov 2007
    Messages:
    221
    Likes Received:
    31
    Reputations:
    6
    if OpenDialog1.Execute then begin
    ///тут код
    end;
    а что за код?
     
  11. krypt3r

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

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    Так тот код, который нужен. К примеру, открывается OpenDialog, выбирается имя файла, затем с указанным файлом производятся некие действия, например, загрузка содержимого файла в компонент TMemo
    Code:
    if OpenDialog1.Execute then begin
      Memo1.Lines.LoadFromFile(OpenDialog1.FileName);
      ...
    end;
    
    или открывается картинка и вставляется в компонент TImage
    Code:
    if OpenDialog1.Execute then begin
      image1.Picture.LoadFromFile(opendialog1.filename);
      ...
    end;
    
    Все зависит от того, какие действия вы будете производить с файлом, открываемом через OpenDialog. Исходя из этого, такой и код будет =)
     
  12. GSM™

    GSM™ Elder - Старейшина

    Joined:
    2 Nov 2007
    Messages:
    221
    Likes Received:
    31
    Reputations:
    6
    большое спасибо.
    и как сделать что бы изображение отображалось равномерно. делаю так- с Win-32 перенес на форму PageControl, потом на PageControl перенес из дополнительно Image. вставил туда изображение, но оно отображается наполовину. и как сделать что бы при нажатии на Button1 открывалось новое окно с изображением?
    и если можно на эти вопросы...
     
  13. krypt3r

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

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    Поиграйтесь со свойствами Stretch и Autosize компонента TImage
     
  14. GSM™

    GSM™ Elder - Старейшина

    Joined:
    2 Nov 2007
    Messages:
    221
    Likes Received:
    31
    Reputations:
    6
    недает нужного эффекта. всетаки придется наверное для вызова рисунка применить кнопку. только как так сделать?
     
  15. krypt3r

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

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    Ну-ка поподробнее, рисунок вставляется в какой компонент?
     
  16. GSM™

    GSM™ Elder - Старейшина

    Joined:
    2 Nov 2007
    Messages:
    221
    Likes Received:
    31
    Reputations:
    6
    вставляю в image. вообще хочется чтобы в image рисунок был небольшого размера (но полностью) а при нажатии на рисунок или на кнопку восстонавливался до исходного размера. точнее появлялось отдельное окно с полным рисунком.
     
    #936 GSM™, 14 Jan 2008
    Last edited: 14 Jan 2008
  17. krypt3r

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

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    А-а, то есть открываемый рисунок должен масштабироваться под размеры TImage? Тогда Stretch=True, Autosize=False. На вторую форму поместить еще один TImage, но уже со свойствами Stretch=False, AutoSize=True, а по кликанью по картинке на первой форме вписать код
    Code:
      Form2.show;
      Form2.Image1.Picture.LoadFromFile(od.FileName);
    
    если картинка небольшая, то можно и так оставить, если же нет, то лучше не вызывать LoadFromFile несколько раз, а юзать, например, TJpegImage и из него уже загружать во все TImages =)
     
  18. GSM™

    GSM™ Elder - Старейшина

    Joined:
    2 Nov 2007
    Messages:
    221
    Likes Received:
    31
    Reputations:
    6
    блин беда случилась. только что отключили свет. хотя у меня есть упсик но я неуспел сохранить программку и теперь пишет -
    Error creating form: Line too long on line 1770.
    это при загрузке программы в делфи вылетает окно с этой ошибкой. жму ок. потом жму ф9 и опять ошибка только в самом низу -
    [Ошибка] RLINK32: Unsupported 16bit resource in file "Unit1.dfm"
     
  19. krypt3r

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

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    Возможно, придется пересоздавать форму или даже весь проект. Файлы с расширением *.pas сохранились? Если форма небольшая, то проще пересоздать проект и вставить код из старых пасовских файлов
     
  20. GSM™

    GSM™ Elder - Старейшина

    Joined:
    2 Nov 2007
    Messages:
    221
    Likes Received:
    31
    Reputations:
    6
    да. проще будет по новой создать...
    именно так и получается неправильное отображение.
    и как всетаки сделать вывод картинки в новом окне при нажатии Button?
     
    #940 GSM™, 14 Jan 2008
    Last edited: 14 Jan 2008
Thread Status:
Not open for further replies.