Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.08.2015, 16:00   #11
JUDAS
фонатик DELPHI
Форумчанин
 
Аватар для JUDAS
 
Регистрация: 14.01.2008
Сообщений: 714
По умолчанию

Цитата:
Сообщение от min@y™ Посмотреть сообщение
Даёшь КОНТЕСТ!!! Чур левый говнокод не юзать!!11
да я с темы всё собрал и скидал ему в готовый проект. Может чел проекты создавать не умеет
95% сбоев и ошибок приложений, находится в полу метрах от монитора
JUDAS вне форума Ответить с цитированием
Старый 02.08.2015, 18:25   #12
Artsiom
Форумчанин
 
Аватар для Artsiom
 
Регистрация: 13.07.2012
Сообщений: 357
По умолчанию

Ну, что-то типа того.
https://yadi.sk/i/ifW56cSGiE3sT <-- скрин
Думаю, что так намного удобней чем бегать за этими формами по всему экрану.
Осталось только прикрутить вытяжку из таблиц вордовских файлов в стринггрид и кнопку для составления общего отчета.

Цитата:
Сообщение от Алексей_2012 Посмотреть сообщение
А форм2.даблбуфер:=истина пробовали?
Вот теперь попробовал. Спасибо, не так блевотно теперь смотреть))

Последний раз редактировалось Artsiom; 02.08.2015 в 18:43.
Artsiom вне форума Ответить с цитированием
Старый 02.08.2015, 19:32   #13
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Фреймы не?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 02.08.2015, 21:50   #14
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Только один компонент на форме: TButton.

Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 03.08.2015, 01:15   #15
Artsiom
Форумчанин
 
Аватар для Artsiom
 
Регистрация: 13.07.2012
Сообщений: 357
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Фреймы не?
А смысл? Панельку кинул, родителя указал, профит.
Почитал про фрейм, ну не знаю. Пока я практического применения не вижу. Выросту - пойму

Да, да. Как на гифке.
Artsiom вне форума Ответить с цитированием
Старый 03.08.2015, 04:24   #16
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
Да, да. Как на гифке.
весь исходник - 49 строк, включая раздел interface и пустые строки.
Цитата:
Панельку кинул, родителя указал, профит.
У меня там только форма и кнопка, никаких панелей.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...

Последний раз редактировалось min@y™; 03.08.2015 в 04:27.
min@y™ вне форума Ответить с цитированием
Старый 03.08.2015, 06:20   #17
ResourceSpace
Форумчанин
 
Аватар для ResourceSpace
 
Регистрация: 30.06.2015
Сообщений: 353
Лампочка

А я вот не понимаю - и зачем вам некие массивы окон?
Код:
Procedure EnableDoubleBuffered(C: TWinControl);
Var i: Integer;
Begin
C.DoubleBuffered:=True;
For i:=0 To C.ComponentCount-1 Do
      If (C.Components[i] Is TWinControl) Then
            TWinControl(C.Components[i]).DoubleBuffered:=True;
End;

Procedure TForm1.FormCreate(Sender: TObject);
Begin
EnableDoubleBuffered(Self);
End;

Procedure TForm1.Button1Click(Sender: TObject);
Var C: TWinControl; F: TForm2; W, H: Integer;
Begin
Case Random(4) Of
      0:  C:=Panel1;
      1:  C:=Panel2;
      2:  C:=Panel3;
      3:  C:=Self;
      End;
W:=C.Width-200;
H:=C.Height-200;
F:=TForm2.Create(Self); // Обычно для окон указывается Application, но так как окна делаются дочерними нужно Self
EnableDoubleBuffered(F);
F.Color:=RGB(Random(256), Random(256), Random(256));
F.Parent:=C;
F.SetBounds(Random(W), Random(H), 200, 200);
F.Show();
End;

Procedure TForm1.Button2Click(Sender: TObject);
Var i: Integer; C: TWinControl;
Begin
C:=Panel1; // Panel2 // Panel3 // Self
For i:=0 To C.ControlCount-1 Do
      If (C.Controls[i] Is TForm2) Then
            ShowMessage(C.Name+'>'+TForm2(C.Controls[i]).Name);
End;

Procedure TForm1.Button3Click(Sender: TObject);
Var i: Integer;
Begin
For i:=0 To ComponentCount-1 Do
      If (Components[i] Is TForm2) Then
            ShowMessage(TForm2(Components[i]).Parent.Name+'>'+TForm2(Components[i]).Name);
End;

......

Type
      TForm2 = Class(TForm)
      Private { Private declarations }
            Procedure OnMoving(Var Msg: TWMMoving); Message WM_MOVING;
      Public { Public declarations }
      End;

.....

Procedure TForm2.OnMoving(Var Msg: TWMMoving);
Var D: Integer;
Begin
If Not Assigned(Parent) Then
      Exit;
If Left<0 Then
      OffsetRect(Msg.DragRect^, -Left, 0);
If Top<0 Then
      OffsetRect(Msg.DragRect^, 0, -Top);
D:=Left+Width-Parent.Width;
If D>0 Then
      OffsetRect(Msg.DragRect^, -D, 0);
D:=Top+Height-Parent.Height;
If D>0 Then
      OffsetRect(Msg.DragRect^, 0, -D);
End;
ResourceSpace вне форума Ответить с цитированием
Старый 03.08.2015, 08:46   #18
JUDAS
фонатик DELPHI
Форумчанин
 
Аватар для JUDAS
 
Регистрация: 14.01.2008
Сообщений: 714
По умолчанию

Цитата:
Почитал про фрейм, ну не знаю. Пока я практического применения не вижу. Выросту - пойму
Лучше не используй фреймы автор, или используй в очень крайних случаях. У нас на работе есть фонат фреймов. Когда дело дошло до того что на них начали вешать гриды и датасеты (TDBGridEh + TOraQuery) и нужно было добавить одно поле в реальную таблицу, то там целый геморой по их добавлению. Когда дело доходило до обработчиков типа OnGetText OnScroll и.т.п. то там вообще жопа. Приходится пересоздавать все фреймы по проекту, а их там добрый десяток.
Прощлкаешь какой то, в одном gettext не отображается, в осталььных отображается... и сидишь вспоминаешь где ты чё не сменил, и какой я был дебил когда согласился на фреймы.
вот как то так.

Цитата:
А я вот не понимаю - и зачем вам некие массивы окон?
ResourceSpace, вот теперь включи мозги и посмотри что получилось у тебя, и что получилось у ответчиков до тебя.
У них 3 простые функции, а у тебя портянка кода которая предназначена явно не для начинающего.

п.с. я о OffsetRect(Msg.DragRect^, -Left, 0); с оператором ^ я познакомился в 2005 году когда переводил один проект с зяблодиалекта (Си без плюсов) причём учитывая то, что в Паскале я сидел с 1997 (турбо паскаля7) а программирую с 1989 (с бейсика фортрана и асемблера)
95% сбоев и ошибок приложений, находится в полу метрах от монитора

Последний раз редактировалось JUDAS; 03.08.2015 в 08:51.
JUDAS вне форума Ответить с цитированием
Старый 03.08.2015, 09:22   #19
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
Лучше не используй фреймы
Ага, неудачный опыт какого-то программиста в массы Нормально фреймы ведут себя, при условии аккуратного подхода к их использованию
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 03.08.2015, 09:35   #20
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Да ладно, проблема не во фреймах (TWinControl - от и в Африке TWinControl). Основная проблема - рукожопая прокладка между креслом и монитором. По себе знаю, сам когда-то в прошлой жизни рукожопил.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Закрытие родительской формы[Visual C#] spectrum988 Помощь студентам 2 08.02.2015 22:00
Запретить появление родительской формы Random2 Общие вопросы Delphi 9 12.01.2015 18:54
как сделать кнопку BitBtn, на одной дочерней форме, не активной при закрытии другой дочерней формы? yds-09 Общие вопросы Delphi 18 30.09.2013 20:42
Обновление дочерней формы Nulex Microsoft Office Access 1 05.09.2010 21:51
Обновление Родительской формы denver_ua Microsoft Office Access 0 26.03.2009 16:15