26.08.2013, 18:18 | #1 (permalink) |
Новичок
Регистрация: 26.08.2013
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Вопрос по Delphi
Прошу помощи в решении одной проблемы. На форме располагаются: редактор Memo; две панели для вывода размера редактора и две панели с соответствующими надписями «Ширина» и «Высота» и 4 кнопки. При нажатии кнопок происходит изменение размеров редактора Мемо, что должно отображаться в панелях ширина и высота. В данный момент при запуске, в панелях отображается начальная ширина и высота, а при изменении размеров редактора Мемо - значения ширины и высоты не изменяются на панелях. Как это можно реализовать. вот код: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm1 = class(TForm) Memo1: TMemo; Button1: TButton; ListBox1: TListBox; Button2: TButton; Button3: TButton; Button4: TButton; Button5: TButton; Panel1: TPanel; Panel2: TPanel; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure Button5Click(Sender: TObject); procedure Panel1Resize(Sender: TObject); procedure Panel2Resize(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin Close; end; procedure TForm1.Panel1Resize(Sender: TObject); begin Panel1.Caption:=IntToStr(Memo1.Height); end; procedure TForm1.Panel2Resize(Sender: TObject); begin Panel2.Caption:=IntToStr(Memo1.Width); end; procedure TForm1.Button2Click(Sender: TObject); begin If ListBox1.ItemIndex = 0 Then Begin Case ListBox1.ItemIndex Of 0 : Begin Memo1.Height := Memo1.Height + 10; Memo1.Top := Memo1.Top - 10; if Memo1.Height=250 then Button2.Visible:=False; if Memo1.Height=110 then Button3.Visible:=True; End; End; End Else If ListBox1.ItemIndex = 1 Then Begin Case ListBox1.ItemIndex Of 1 : Begin Memo1.Height := Memo1.Height - 10; if Memo1.Height=100 then Button2.Visible:=False; if Memo1.Height=240 then Button3.Visible:=True; End; End; End; End; procedure TForm1.Button3Click(Sender: TObject); begin If ListBox1.ItemIndex = 0 Then Begin Case ListBox1.ItemIndex Of 0 : Begin Memo1.Height := Memo1.Height - 10; Memo1.Top := Memo1.Top + 10; if Memo1.Height=100 then Button3.Visible:=False; if Memo1.Height=240 then Button2.Visible:=True; End; End; End Else If ListBox1.ItemIndex = 1 Then Begin Case ListBox1.ItemIndex Of 1 : Begin Memo1.Height := Memo1.Height + 10; if Memo1.Height=250 then Button3.Visible:=False; if Memo1.Height=110 then Button2.Visible:=True; End; End; End; End; procedure TForm1.Button4Click(Sender: TObject); begin If ListBox1.ItemIndex = 0 Then Begin Case ListBox1.ItemIndex Of 0 : Begin Memo1.Width := Memo1.Width + 10; Memo1.Left := Memo1.Left - 10; if Memo1.Width=250 then Button4.Visible:=False; if Memo1.Width=110 then Button5.Visible:=True; End; End; End Else If ListBox1.ItemIndex = 1 Then Begin Case ListBox1.ItemIndex Of 1 : Begin Memo1.Width := Memo1.Width - 10; if Memo1.Width=100 then Button4.Visible:=False; if Memo1.Width=240 then Button5.Visible:=True; End; End; End; End; procedure TForm1.Button5Click(Sender: TObject); begin If ListBox1.ItemIndex = 0 Then Begin Case ListBox1.ItemIndex Of 0 : Begin Memo1.Width := Memo1.Width - 10; Memo1.Left := Memo1.Left + 10; if Memo1.Width=100 then Button5.Visible:=False; if Memo1.Width=240 then Button4.Visible:=True; End; End; End Else If ListBox1.ItemIndex = 1 Then Begin Case ListBox1.ItemIndex Of 1 : Begin Memo1.Width := Memo1.Width + 10; if Memo1.Width=250 then Button5.Visible:=False; if Memo1.Width=110 then Button4.Visible:=True; End; End; End; End; end. |
26.08.2013, 18:18 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Схожие по содержанию темы помогут вам разобраться в проблеме DELPHI Delphi Графика в Delphi Рекурсия, Delphi Помощь в Delphi |
26.08.2013, 19:07 | #2 (permalink) |
support
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,794
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
|
На форму киньте TTimer и вызывайте его событие либо при нажатии на любую из кнопок, либо при перерисовке формы.
|
27.08.2013, 01:04 | #3 (permalink) |
Новичок
Регистрация: 26.08.2013
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Все оказалось проще чем кажется. В каждую процедуру кнопки до писал
Panel1.Caption:=IntToStr(Memo1.Height) и Panel2.Caption:=IntToStr(Memo1.Width) и все заработало. |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
Опции темы | |
Опции просмотра | |
|
|