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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.06.2013, 20:00   #1
Dennis777
Форумчанин
 
Регистрация: 06.11.2009
Сообщений: 203
По умолчанию Главная форма

По непонятной причине при загрузке главной формы также подгружается форма 24 в свернутом виде. Выглядит это вот так:
http://clip2net.com/s/5dVfQh

С чем это может быть связано и как убрать?) Подскажите пожалуйста!
Интересный проект по изучению английского:
Английский в формате путешествия по США

Последний раз редактировалось Dennis777; 13.06.2013 в 20:08.
Dennis777 вне форума Ответить с цитированием
Старый 13.06.2013, 20:38   #2
Dennis777
Форумчанин
 
Регистрация: 06.11.2009
Сообщений: 203
По умолчанию

ребята, ну неужели никто не знает, как можно решить эту проблему?
Интересный проект по изучению английского:
Английский в формате путешествия по США
Dennis777 вне форума Ответить с цитированием
Старый 13.06.2013, 20:50   #3
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,762
По умолчанию

Выложи нормально рисунок на форум и код дай. Здесь нет телепатов.
FaTaL вне форума Ответить с цитированием
Старый 13.06.2013, 20:56   #4
Dennis777
Форумчанин
 
Регистрация: 06.11.2009
Сообщений: 203
По умолчанию


Код - ничем не примечательный. По клику на имейдж открыть другую форму.
Единственное что, для масштабирования формы используются некоторые процедуры, аналогичные тем, что описаны в 24 форме
Интересный проект по изучению английского:
Английский в формате путешествия по США

Последний раз редактировалось Dennis777; 13.06.2013 в 20:59.
Dennis777 вне форума Ответить с цитированием
Старый 13.06.2013, 21:01   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Код - ничем не примечательный.
Это MDI проект?
Если да то все дочерние формы так и будут себя вести.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 13.06.2013, 21:10   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
ребята, ну неужели никто не знает, как можно решить эту проблему?
Единственный способ - показать код создания формы и её открытия
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 13.06.2013, 21:37   #7
Dennis777
Форумчанин
 
Регистрация: 06.11.2009
Сообщений: 203
По умолчанию

Код:
unit Unit1;
type
TControlVisualState = class;

  TStateArray = array of TControlVisualState;

  TControlVisualState = class
  strict private
    FControl   : TControl   ;
    FRect      : TRect      ;
    FFontSize  : Integer    ;
    FCount     : Word       ;
    FStateArray: TStateArray;

    function  GetI (AIndex: Word): TControlVisualState;

    procedure SetCount (AValue: Word);
    procedure SetI (AIndex: Word; AValue: TControlVisualState);
  protected
  public
    constructor Create;
    destructor Destroy;

    procedure SaveControlState (AControl: TControl);
    procedure ResizeControl    (AControl: TControl; kX, kY: Real);

    property Rect    : TRect   read FRect     write FRect    ;
    property FontSize: Integer read FFontSize write FFontSize;
    property Count   : Word    read FCount    write SetCount ;
    property StateArray [AIndex: Word]: TControlVisualState read GetI write SetI; default;
  end;

  TForm1 = class(TForm)
    Image1: TImage;
    Label1: TLabel;
    Label2: TLabel;
    sSkinManager1: TsSkinManager;
    sSkinProvider1: TsSkinProvider;
    procedure Label1MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure Label1MouseLeave(Sender: TObject);
    procedure Label2MouseLeave(Sender: TObject);
    procedure Label2MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure FormCreate(Sender: TObject);
    procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure Label1Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormRes;
  private
    { Private declarations }
    FOldState: TControlVisualState;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

uses Unit2;

type
  TMyControl = class (TControl)
  public
    property Font;
  end;

constructor TControlVisualState.Create;
var
  b, h: Integer;
begin
  inherited Create;
  FCount := 0;
  SetLength (FStateArray, FCount);
end;

destructor TControlVisualState.Destroy;
begin
  Count := 0;
  inherited Destroy;
end;

procedure TControlVisualState.SetCount (AValue: Word);
var
  b, h: Integer;
begin
  h := FCount - 1;
  for b := AValue to h do begin
    FStateArray[b].Free;
    FStateArray[b] := nil;
  end;
  h := AValue - 1;
  SetLength (FStateArray, AValue);
  for b := FCount to h do
    FStateArray[b] := TControlVisualState.Create;
  FCount := AValue
end;

function TControlVisualState.GetI (AIndex: Word): TControlVisualState;
begin
  if AIndex < FCount then
    Result := FStateArray[AIndex]
  else
    Result := nil;
end;

procedure TControlVisualState.SetI (AIndex: Word; AValue: TControlVisualState);
begin
  if AIndex < FCount then
    FStateArray[AIndex] := AValue;
end;

procedure TControlVisualState.SaveControlState (AControl: TControl);
var
  b, h: Integer;
  rabWC: TWinControl;
begin
  FRect     := AControl.BoundsRect;
  FFontSize := TMyControl(AControl).Font.Size;
  if AControl is TWinControl then begin
    rabWC := TWinControl (AControl);
    h := rabWC.ControlCount;
    Count := h;
    Dec (h);
    for b := 0 to h do
      FStateArray[b].SaveControlState (rabWC.Controls[b]);
  end;
end;

procedure TControlVisualState.ResizeControl (AControl: TControl; kX, kY: Real);
var
  b, h: Integer;
  BR: TRect;
  FS: Integer;
  rabWC: TWinControl;
begin
  if AControl is TWinControl then begin
    rabWC := TWinControl (AControl);
    if Length (FStateArray) <> rabWC.ControlCount then
      raise EInvalidCast.Create ('Error in TControlState.ResizeControl:' + #13 +
                                 'Saved state of the control does not match the used control.');

    h := Length (FStateArray) - 1;
    for b := 0 to h do
      FStateArray[b].ResizeControl (rabWC.Controls[b], kX, kY);
  end;
  BR.Left   := Round (FRect.Left   * kX);
  BR.Right  := Round (FRect.Right  * kX);
  BR.Top    := Round (FRect.Top    * kY);
  BR.Bottom := Round (FRect.Bottom * kY);
  FS        := Round (FontSize     * kY);
  AControl.BoundsRect := BR;
  TMyControl(AControl).Font.Size := FS;
end;

{$R *.dfm}

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Application.Terminate
end;

procedure TForm1.FormCreate(Sender: TObject);
var
  b, h,ww: Integer;
  r: TRect;
  kX, kY: Real;
  x, y: LongInt;
begin
doublebuffered:=true;
FOldState := TControlVisualState.Create;
  r.Left   := 0;
  r.Top    := 0;
  r.Right  := 1362 ;
  r.Bottom := 742;
  FOldState.Rect := r;
  FOldState.FontSize := 16;
  FOldState.Count := ControlCount;
  h := ControlCount - 1;
  for b := 0 to h do
  FOldState.StateArray[b].SaveControlState (Controls[b]);
  FormRes;
end;

end.
Интересный проект по изучению английского:
Английский в формате путешествия по США
Dennis777 вне форума Ответить с цитированием
Старый 13.06.2013, 22:05   #8
Dennis777
Форумчанин
 
Регистрация: 06.11.2009
Сообщений: 203
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Это MDI проект?
Если да то все дочерние формы так и будут себя вести.
До этого - все норм было. есть более старая версия программы, в которой все нормально работает, и эта чертова 24 форма не выскакивает. Не могу понять, на каком этапе возникла эта ошибка. Первую форму я 100 лет не трогал уже, а 24 у меня вообще никак не вызывается нигде
Интересный проект по изучению английского:
Английский в формате путешествия по США
Dennis777 вне форума Ответить с цитированием
Старый 13.06.2013, 22:12   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
24 у меня вообще никак не вызывается нигде
Такого быть не может на 99%.
Где-то ты ее описал именно как дочерняя по отношению к главной.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 13.06.2013, 22:28   #10
Dennis777
Форумчанин
 
Регистрация: 06.11.2009
Сообщений: 203
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Такого быть не может на 99%.
Где-то ты ее описал именно как дочерняя по отношению к главной.
я использую этот юнит в паре других юнитов, но как дочернюю, я ее нигде не описывал. Только что решил проблему. Случайно поставил на ней минимайзд. Сейчас вернул на нормал - все стало нормально. Только не могу понять, почему другие формы, у которых есть минимайзд - не отображаются при запуске главной формы в свернутом виде, как эта.
Интересный проект по изучению английского:
Английский в формате путешествия по США
Dennis777 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не открывается главная форма sasha198407 Общие вопросы Delphi 5 24.02.2012 15:45
Главная форма cashmail Общие вопросы Delphi 15 17.10.2011 13:58
Главная форма. aleksandr278 Общие вопросы Delphi 17 23.03.2010 13:28
Главная форма Михаил Юрьевич Общие вопросы Delphi 3 03.02.2008 21:42
Первая форма приложения не главная Avron Общие вопросы Delphi 4 28.09.2007 12:02