• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Непослушная Форма

  • Автор темы programmer8329
  • Дата начала
P

programmer8329

unit unit1;

Interface

Uses

windows, messages, sysutils,variants,classes, graphics, controls, forms,dialogs,stdctrls;

Type

Tform1= class (tform)
...
...
....
...
Var

Form1: tform1;
Bitmap:tbitmap;

Implementation

Uses unit2

Procedure tform1.formcreate(sender:tobject)

Begin

Bitmap:=tbitmap.create;

Bitmap.loadfromfile('......');

End;

Procedure tform1.formpaint(sender:tobject)

Begin
Canvas.draw (0,0, bitmap);
End;

Procedure tform1.button1click(sender:tobject)
Var
Newform:tform2;
Begin
Application.createform(tform2, newform);
Newform.show;
End;

Procedure tform1.button2click(sender:tobject)
Begin
Form1.clientheight:=bitmap.height•100;
End;
End.






unit unit2;

Interface

Uses

windows, messages, sysutils,variants,classes, graphics, controls, forms,dialogs,stdctrls;

Type

Tform2= class (tform)
...
...
....
...
Var
Form2: tform2;
Bitmap:tbitmap;

Implementation

Procedure tform2.formcreate(sender:tobject)

Begin
Bitmap:=tbitmap.create;
Bitmap.loadfromfile('......');
Form2.clientheight:=bitmap.height•100;
End;

Procedure tform2.formpaint(sender:tobject)
Begin
Showmessage ('paint worked')
Canvas.draw (0,0, bitmap);
End;

Procedure tform2.button1click(sender:tobject)

Begin
form2.repaint;
End;

End.


[(/quote]

Здравствуйте у меня следующая проблема с кодом дело в том что форма 2 совершенно не похожа на форму 1, если в форме 1 все работает как и должно то в форме 2 не происходит никаких изменений, т.е не происходит увлечения clientheight во время создания формы 2, после нажатия кнопки 1 не происходит repaint.
Суть кода такова после запуска программы открывается форма 1, при нажатие кнопки 2 происходит увелечение clientheight , после нажатие 2 происходит создание формы 2 на которой ничего не работает, что не так? Я текст набирал вручную на смартфоне поэтому извините за ошибки в тексте.
 
S

sinkopa

Здравствуйте у меня следующая проблема с кодом...
Перечитайте внимательно свой код...
Вы "рождаете" и показываете переменную (объект) с именем Newform
Код:
Procedure tform1.button1click(sender:tobject)
Var
Newform:tform2;
Begin
Application.createform(tform2, newform);
Newform.show;
End;
а изменяете clientheight у переменной с именем Form2
Код:
Procedure tform2.formcreate(sender:tobject)
Begin
Bitmap:=tbitmap.create;
Bitmap.loadfromfile('......');
Form2.clientheight:=bitmap.height*100;
End;
Для того чтобы изменения происходили у любого рожденного наследника (формы) tform2
надо вот так:
Код:
Procedure tform2.formcreate(sender:tobject)
Begin
Bitmap:=tbitmap.create;
Bitmap.loadfromfile('......');
Self.clientheight:=bitmap.height*100; {<== !!!!!!!!!!!!!!!!!}
End;
Переутомились просто видимо... :lol:
Кстати, а чего это у Вас Newform:tform2 локальная переменная? Вы ей дальше управлять (открывать,закрывать) не собираетесь?
А память освобождать (Newform.Free)?
 
P

programmer8329

Да действительно вы как всегда правы. Спасибо за помощь.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!