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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.04.2010, 10:06   #1
spaun88
 
Регистрация: 14.04.2010
Сообщений: 9
По умолчанию не пойму почему.

Сворачивается в трей нормально, разворачивается тоже, все работает отлично кроме одного но. Когда вводится неверный пароль или логин, выскакивает окно (Как и было запрограммировано) об ошибке с просьбой ввести правильные данные, но при закрытии этого сообщения, программа исчезает, нигде нет, кроме процессов. Где ошибка? Единственное что исправил, стандартную иконку. не смерку поставил а другую
Если в этом ошибка, то как исправить?
Вот код:
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ImgList, ExtCtrls, StdCtrls, XPMAN, Menus, shellapi;

type
TForm1 = class(TForm)
Image1: TImage;
Button1: TButton;
Edit1: TEdit;
Edit2: TEdit;
Memo1: TMemo;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Image2: TImage;
Label5: TLabel;
procedure Button1Click(Sender: TObject);
procedure FormKeyPress(Sender: TObject; var Key: Char);
procedure Image2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
Procedure WindowMessage(Var Msg:TMessage); message WM_SYSCOMMAND;
Procedure MouseClick(var Msg:TMessage); message WM_USER+1;
public
{ Public declarations }
procedure ActionIcon(n:Integer;Icon:TIcon);
Procedure OnMinimizeProc(Sender:TObject);
end;

var
Form1: TForm1;

implementation

uses Unit2;

{$R *.dfm}

procedure TForm1.ActionIcon(n:Integer;Icon:TI con);
Var Nim:TNotifyIconData;
begin
With Nim do // Çàïîëíÿåì ñòðóêòóðó Nim….
Begin
cbSize:=SizeOf(Nim); // Ðàçìåð
Wnd:=Form1.Handle; // Õåíäë íàøåãî ïðèëîæåíèÿ(îêíà)
uID:=1;
uFlags:=NIF_ICON or NIF_MESSAGE or NIF_TIP;
hicon:=Icon.Handle; // Õåíäë ïåðåäàâàåìîé â ïðîöåäóðó èêîíêè
uCallbackMessage:=wm_user+1;
szTip:='Ñîîáùåíèå ïîÿâëÿþùååñÿ ïðè íàâåäåíèè';
End;
Case n OF // Äåéñòâèÿ âûïîëíÿåìûå ïðîöåäóðîé
1: Shell_NotifyIcon(Nim_Add,@Nim);
2: Shell_NotifyIcon(Nim_Delete,@Nim);
3: Shell_NotifyIcon(Nim_Modify,@Nim);
End;
end;

Procedure TForm1.WindowMessage (Var Msg:TMessage);
Begin
IF Msg.WParam=SC_MINIMIZE then Begin
ActionIcon (1,Application.Icon); // Äîáàâëÿåì çíà÷îê â òðåé
ShowWindow(Handle,SW_HIDE); // Ñêðûâàåì ïðîãðàììó
ShowWindow(Application.Handle,SW_HI DE); // Ñêðûâàåì êíîïêó ñ TaskBar'à

End else inherited;

End;

Procedure TForm1.OnMinimizeProc(Sender:TObjec t);
Begin
PostMessage(Handle,WM_SYSCOMMAND,SC _MINIMIZE,0);
End;

procedure TForm1.MouseClick(var Msg:TMessage);
Var p:tpoint;
begin
GetCursorPos(p); // Çàïîìèíàåì êîîðäèíàòû êóðñîðà ìûøè(ñì. P/S)
Case Msg.LParam OF // Ïðîâåðÿåì êàêàÿ êíîïêà áûëà íàæàòà
WM_LBUTTONUP,WM_LBUTTONDBLCLK: {Äåéñòâèÿ, âûïîëíÿåìûé ïî îäèíàðíîìó èëè äâîéíîìó ùåë÷êó ëåâîé êíîïêè ìûøè íà çíà÷êå}
Begin
ActionIcon (2,Application.Icon); // Óäàëÿåì çíà÷îê èç òðåÿ
ShowWindow(Application.Handle,SW_SH OW); // Âîññòàíàâëèâàåì êíîïêó ïðîãðàììû
ShowWindow(Handle,SW_SHOW); // Âîññòàíàâëèâàåì îêíî ïðîãðàììû
End;
End;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
Application.onMinimize:=OnMinimizeP roc;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
dir, login, password: string;
a,i: integer;
dostup: boolean;
begin
dostup:= false;
getdir(0,dir);
dir:=dir+'\pass.txt';
Memo1.Lines.LoadFromFile(dir);
a:= Memo1.Lines.Count;
for i:=0 to a-1 do
begin
login:= copy(Memo1.Lines[i],0,pos(':',Memo1.Lines[i])-1);
password:=copy(Memo1.Lines[i],pos(':',Memo1.Lines[i])+1, length(Memo1.Lines[i]));
if (Edit1.Text=login) and (Edit2.Text=password) then
dostup:= true
else
showmessage('Ââåäèòå ïàðîëü è ëîãèí!');
end;
if dostup then
Form2.Show;
Form1.Visible:= False;
end;

procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
button1.Click;
end;

procedure TForm1.Image2Click(Sender: TObject);
begin
Application.Terminate;
end;

end.

Последний раз редактировалось spaun88; 25.04.2010 в 10:14.
spaun88 вне форума Ответить с цитированием
Старый 25.04.2010, 10:19   #2
VintProg
not
Участник клуба
 
Аватар для VintProg
 
Регистрация: 27.06.2009
Сообщений: 1,399
По умолчанию

Закинь пожалуйста исходник.
VintProg вне форума Ответить с цитированием
Старый 25.04.2010, 10:27   #3
spaun88
 
Регистрация: 14.04.2010
Сообщений: 9
По умолчанию

вот исходник
Вложения
Тип файла: rar справочник студента Энергофака(Эд).rar (2.02 Мб, 20 просмотров)
spaun88 вне форума Ответить с цитированием
Старый 25.04.2010, 11:13   #4
VintProg
not
Участник клуба
 
Аватар для VintProg
 
Регистрация: 27.06.2009
Сообщений: 1,399
По умолчанию

Не компилируются, unit2,unit3???
VintProg вне форума Ответить с цитированием
Старый 25.04.2010, 11:20   #5
spaun88
 
Регистрация: 14.04.2010
Сообщений: 9
По умолчанию

хм..вроде верно все положил туда. Нет компилируются.. а ну там не хватает многих юнитов) просто не стал их выкладывать, а то размер большой получается. Нашел я проблему. она в строчке Form1.Visible:=False; Вот из за неё. Вопрос теперь по другом стоит как убрать форму уже не нужную в работе? Скрыть её по по просту говоря.
spaun88 вне форума Ответить с цитированием
Старый 25.04.2010, 11:31   #6
VintProg
not
Участник клуба
 
Аватар для VintProg
 
Регистрация: 27.06.2009
Сообщений: 1,399
По умолчанию

Может тут есть что то по твоей теме: Delphi Russian Knowledge Base v.3 (полная версия)
VintProg вне форума Ответить с цитированием
Старый 25.04.2010, 11:53   #7
MadReason
Ищу работу
Форумчанин
 
Аватар для MadReason
 
Регистрация: 16.02.2007
Сообщений: 269
По умолчанию

Код:
form.hide;//скрытие формы
//или
form.free;//ее уничтожение
Пишу на Delphi все что угодно, недорого, красиво, с комментариями
###icq 107335###
MadReason вне форума Ответить с цитированием
Старый 27.04.2010, 10:14   #8
NeVerSS
Пользователь
 
Аватар для NeVerSS
 
Регистрация: 30.03.2010
Сообщений: 23
По умолчанию

Цитата:
Сообщение от MadReason Посмотреть сообщение
Код:
form.hide;//скрытие формы
//или
form.free;//ее уничтожение
form.destroy;//тоже уничтожение
просто слово destroy лучше free звучит
Император всё видит... Император всё знает...
NeVerSS вне форума Ответить с цитированием
Старый 09.06.2010, 17:26   #9
MadReason
Ищу работу
Форумчанин
 
Аватар для MadReason
 
Регистрация: 16.02.2007
Сообщений: 269
По умолчанию

зато работает хуже)
Пишу на Delphi все что угодно, недорого, красиво, с комментариями
###icq 107335###
MadReason вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не пойму что не правельно ...(С++) exKenny Помощь студентам 38 06.03.2010 16:51
не пойму с запросом kaizer131 Microsoft Office Access 8 23.03.2009 22:27
Не пойму по поводу Windows Jantar Windows 19 24.02.2009 08:20
Не пойму чо так Cricket2007 Помощь студентам 5 15.05.2008 01:17