Jump to content

Как определить создана ли форма?


dbf_usr

Recommended Posts

 Как определить создана ли форма?

Приведенный ниже код не работает:

procedure TMainForm.UniButton3Click(Sender: TObject);
var Y: TUniMessenger;
begin
 if not Assigned(Y) then TUniMessenger.Create(UniApplication).Show; 
 if Y=nil then TUniMessenger.Create(UniApplication).Show;
 if Assigned(Y) then Showmessage(Y.Caption);
end;

а строка: if Assigned(Y) then Showmessage(Y.Caption); - вызывает ошибку Access violation, что свидетельствует о то что форма таки не создана, но почему не одно из двух условий не соблюдается.

Link to comment
Share on other sites

38 minutes ago, Sherzod said:

Здравствуйте,

А где (и что) присваиваете Y? 

var Y: TUniMessenger;

 

 

unit UnitMessenger;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics,
  Controls, Forms, uniGUITypes, uniGUIAbstractClasses,
  uniGUIClasses, uniGUIForm, uniMemo, uniSplitter, uniGUIBaseClasses, uniPanel;

type
  TUniMessenger = class(TUniForm)
    UniPanel1: TUniPanel;
    UniSplitter1: TUniSplitter;
    UniPanel2: TUniPanel;
    UniMemo1: TUniMemo;

...

Link to comment
Share on other sites

Quote

if not Assigned(Y)

неинициализированная локальная переменная. более того - скорее всего среда написала хинт по этому поводу. в коде должно быть 0 хинтов и варнингов, количество вопросов и проблем сильно уменьшится.

Link to comment
Share on other sites

5 hours ago, Tokay said:

неинициализированная локальная переменная. более того - скорее всего среда написала хинт по этому поводу. в коде должно быть 0 хинтов и варнингов, количество вопросов и проблем сильно уменьшится.

Ага , это мы умеем

{$Warnings Off}

{$Hints Off}

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...