Вопросы раздела Delphi
вот мой исходный код
- procedure TUserForm.bbDrawnClick(Sender:TObject);
Var i,j:integer;
begin
UserImage.Canvas.pen.color := clBlack;
UserImage.Canvas.brush.color:= clBlack;
for i:=1 to 4 do
for j:=1 to 4 do
UserImage.Canvas.rectangle(0+(i-1)*150,0+(j-1)*150,75+(i-1)*150,75+(j-1)*150);
UserImage.Canvas.pen.color := clBlack;
UserImage.Canvas.brush.color:= clBlack;
for i:=1 to 4 do
for j:=1 to 4 do
UserImage.Canvas.rectangle(75+(i-1)*150,75+(j-1)*150,150+(i-1)*150,150+(j-1)*150);
UserImage.Canvas.pen.color := clBlack;
UserImage.Canvas.brush.color:= clOlive;
for i:=1 to 4 do
for j:=1 to 2 do
UserImage.Canvas.ellipse(5+(i-1)*150,5+(j-1)*150,70+(i-1)*150,70+(j-1)*150);
UserImage.Canvas.pen.color := clBlack;
UserImage.Canvas.brush.color:= clOlive;
for i:=1 to 4 do
for j:=1 to 1 do
UserImage.Canvas.ellipse(80+(i-1)*150,80+(j-1)*150,145+(i-1)*150,145+(j-1)*150);
UserImage.Canvas.pen.color := clBlack;
UserImage.Canvas.brush.color:= clWhite;
for i:=1 to 4 do
for j:=1 to 2 do
UserImage.Canvas.ellipse(80+(i-1)*150,380+(j-1)*150,145+(i-1)*150,445+(j-1)*150);
UserImage.Canvas.pen.color := clBlack;
UserImage.Canvas.brush.color:= clWhite;
for i:=1 to 4 do
for j:=1 to 1 do
UserImage.Canvas.ellipse(5+(i-1)*150,455+(j-1)*150,70+(i-1)*150,520+(j-1)*150);
end; - procedure TUserForm.UserImageDblClick(Sender: TObject);
Var i,j:integer;
begin
UserImage.Canvas.pen.color := clBlack;
UserImage.Canvas.brush.color:= clBlack;
for i:=1 to 4 do
for j:=1 to 4 do
UserImage.Canvas.rectangle(0+(i-1)*150,0+(j-1)*150,75+(i-1)*150,75+(j-1)*150);
UserImage.Canvas.pen.color := clBlack;
UserImage.Canvas.brush.color:= clBlack;
for i:=1 to 4 do
for j:=1 to 4 do
UserImage.Canvas.rectangle(75+(i-1)*150,75+(j-1)*150,150+(i-1)*150,150+(j-1)*150);
UserImage.Canvas.pen.color := clBlack;
UserImage.Canvas.brush.color:= clWhite;
for i:=1 to 4 do
for j:=1 to 2 do
UserImage.Canvas.ellipse(5+(i-1)*150,5+(j-1)*150,70+(i-1)*150,70+(j-1)*150);
UserImage.Canvas.pen.color := clBlack;
UserImage.Canvas.brush.color:= clWhite;
for i:=1 to 4 do
for j:=1 to 1 do
UserImage.Canvas.ellipse(80+(i-1)*150,80+(j-1)*150,145+(i-1)*150,145+(j-1)*150);
UserImage.Canvas.pen.color := clBlack;
UserImage.Canvas.brush.color:= clOlive;
for i:=1 to 4 do
for j:=1 to 2 do
UserImage.Canvas.ellipse(80+(i-1)*150,380+(j-1)*150,145+(i-1)*150,445+(j-1)*150);
UserImage.Canvas.pen.color := clBlack;
UserImage.Canvas.brush.color:= clOlive;
for i:=1 to 4 do
for j:=1 to 1 do
UserImage.Canvas.ellipse(5+(i-1)*150,455+(j-1)*150,70+(i-1)*150,520+(j-1)*150);
end;
Удаленная компьютерная помощь через TeamViewer ОНЛАЙН!
☑ Окажу помощь в настройке, администрировании, установке любых программ, драйверов и операционных систем семейства Windows, Mac OS
☑ Помощь в установке и активации редких, узкоспециализированных программ
◄►◄► Избавлю от вирусов, баннеров и прочей гадости. ◄►◄►
☑ Помогу разобраться с железом.
☑ Работа с фото и видео.
◄►◄► Удаленная компьютерная помощь ◄►◄►
☑ Готов решить множество ваших проблем с ПК посредством удаленного управления.
Русификация, навигация для автомобилей из США удаленно!
Консультация по разработке
Часовая консультация по вопросам разработки или доработки сайта, нового IT-проекта или по вопросам разработки программного обеспечения.
Сообщите по какой теме Вам требуется консультация, чтобы эксперт мог (при необходимости) провести предварительную подготовку.
Нужно чтобы через определенное время запускался звуковой файл из папки, без медиа плеера, т.е с помощью playsound и таймера. На форме не должно быть никаких лишних компонентов, кроме таймера.
Но когда я на таймере вписываю
Sndplaysound('файл',
SND Nodefault or SND Async or Snd Loop);
То после проигрыша звука, он начинает заного загружатся, а надо чтобы файл воспроизвелся только 1 раз.
Куда вписывать остановку воспроизведения, если
Есть кривая линия (волнообразная), как сделать чтобы Делфи сама отрисовала ее
есть компонент ttabcntrol. На нем 2 Tabitem. На каждом Tabitem есть компонент memo. НА первом мемо написан стих. На втором Tabitem есть кнопка. Как
есть две формы, одна для входа пользователя, другая для регистрации, после регистрации можно сделать вход и выйдет в лайбеле ВХОД ПОТДВЕРЖДЕН, нужно сделать так, чтобы на лейбле была кнопка, видимость ее была в false, но когда вход потдверждается то кнопка становиться видимой, как прописать это в условии?
Возможно ли контролировать через 1 USB выход (Вкл/Выкл) приборов 12v а так-же 220?
Var a,b,c,D,x1,x2:double;
Begin
if Trim(Edit_A.Text)='' then
begin
ShowMessage('введите коэффициенты А');
Edit_A.SetFocus;
Exit;
End;
if Trim(Edit_B.Text)='' then
begin
ShowMessage('введите коэффициенты B');
Edit_B.SetFocus;
Exit;
End;
if Trim(Edit_C.Text)='' then
begin
ShowMessage('введите коэффициенты C');
Edit_C.SetFocus;
Exit;
End;
a:=StrToFloat(Edit_A.Text);
b:=StrToFloat(Edit_B.Text);
c:=StrToFloat(Edit_C.Text);
if a=0 then
if b<>0 then
begin
x1:=-c/b;
x2:=x1;
end
else
begin
ShowMessage('Коэффициенты А и В равны нулю');
exit;
end
else
begin
D:=b*b-4*a*c;
if D<0 then
begin
ShowMessage('Дискриминант отрицателен.');
exit;
end
else
begin
x1:=(-b+sqrt(D))/(2*a);
x2:=(-b-sqrt(D))/(2*a);
end;
end;
x1:=(-b+sqrt(D))/(2*a);
x2:=(-b-sqrt(D))/(2*a);
StringGrid_Result.Cells[0,1]:=FloatToStr(x1);
StringGrid_Result.Cells[1,1]:=FloatToStr(x2);
end;
procedure TForm3.CheckBox1Click(Sender: TObject);
Var b,a,d,x1,x2:double;
begin
if CheckBox1.Checked=true then
begin
x1:=(-b+sqrt(D))/(2*a);
x2:=(-b-sqrt(D))/(2*a);
end;
if x2>0
then
begin
StringGrid_Result.Cells[0,1]:=FloatToStr(x1);
StringGrid_Result.Cells[1,1]:=FloatToStr(x2);
end
else
ShowMessage('..');
end;
procedure TForm3.Edit_AClick(Sender: TObject);
begin
Edit_A.Clear;
end;
procedure TForm3.Edit_AKeyPress(Sender: TObject; var Key: Char);
begin
if (Key in ['0'..'9','-',Chr(44),Chr(VK_BACK)])=false then Key:=#0;
end;
procedure TForm3.Edit_BClick(Sender: TObject);
begin
edit_B.Clear;
end;
procedure TForm3.Edit_CClick(Sender: TObject);
begin
Edit_C.Clear;
end;
procedure TForm3.FormShow(Sender: TObject);
begin
StringGrid_Result.Cells[0,0]:='x1';
StringGrid_Result.Cells[1,0]:='x2';
end;
end.
Здравствуйте, если есть у кого библиотека DataMap на delphi7 поделитесь пожалуйста… очень не хватает...
Я работаю в IE только при работе с данной программой, остальную работу я провожу в Гугл Хром.
Требуется: решение (скрипт) для того, чтобы не происходило лог-оффа. Например, скрипт, который раз в 10 минут будет менять активное окно на IE, кликать там мышкой и возвращать предыдущее активное окно.
Вопрос: на основе какой программы можно это реализовать и как? Я в языках программирования разбираюсь поверхностно и сам реализовать не смогу.
1. Скорость света 299792 км / с. Какое расстояние преодолевает свет за час, сутки? 2. Треугольник задан координатами вершины А (0; 0), В (10; 10-1), С (10; 10 + 1). Вычислите медиану mc и биссектрису Wa.
Весь день убил на то чтобы вызвать по клику из одной формы другую. Эксперты, помогите!!!
Вычислить арифметическое выражение, выданное в текстовой строке (стринге). Выражение может содержать положительные натуральные и любые (реальные) числа, символы бинарных операций сложения (+), вычитания (-), умножения (*) и деления (/), кронштейны (возможно вложенные), чтобы изменить приоритет операций. Если невозможно вычислить выражение — вывод ошибки. Например: “12.5*2+4*1.5” – 31 “10*(15+35)-2.5*10” – 475 Пожалуйста, откликнитесь люди, те кто в этом разбирается, очень нужна
Здравствуйте, подскажите пожалуйста. Работаю в Delphi XE8. Когда, допустим в Rectangle, находятся две кнопки и нужно поменять цвет самого Rectangle, то кнопки «перекрываются» цветом фона. Подскажите, как это можно исправить?
Найти сумму целых положительных чисел из промежутка от А до B кратных 4.
Модули ComObj, ActiveX подключены.
var MyExcel: OleVariant; — глобальная переменная
1. Определяем запущен ли excel
function CheckExcelRun: boolean;
begin
try
MyExcel:=GetActiveOleObject(ExcelApp);
Result:=True;
except
Result:=false;
end;
end;
2.После создания рабочей книги функцией
function AddWorkBook(AutoRun:boolean=true):boolean;
begin
if CheckExcelRun then
begin
MyExcel.WorkBooks.Add;
Result:=true;
end
else
if AutoRun then
begin
RunExcel;
MyExcel.WorkBooks.Add;
Result:=true;
end
else
Result:=false;
end;
пытаюсь ее сохранить вызовом функции
function SaveWorkBook(FileName:TFileName; WBIndex:integer):boolean;
begin
try
MyExcel.WorkBooks.Item[WBIndex].SaveAs(FileName);
if MyExcel.WorkBooks.Item[WBIndex].Saved then
Result:=true
else
Result:=false;
except
Result:=false;
end;
end;
но компилятор выдает ошибку при вызове функции
Not enought actual parameters
Could not compile used unit .....
Проблема в многопользовательности. Как решить задачу? Заранее спасибо.
uses TLHelp32;
...
function CloseByExeName(ExeFilename: String): Integer;
var
continueloop: Boolean;
fsnapshothandle: THandle;
fprocessentry32: TProcessEntry32;
const
//константа для команды завершения процесса
process_terminate=$0001;
begin
Result := 0;
//переводим имя файла в верхний регистр для сравнения
ExeFilename = uppercase(ExeFilename);
//получаем снимок работабщих в системе процессов
fsnapshothandle := createtoolhelp32snapshot(th32cs_snapprocess,0);
fprocessentry32.dwsize := sizeof(fprocessentry32);
continueloop := process32first(fsnapshothandle,fprocessentry32);
//перебираем процессы
while integer(continueloop)<>0 do
begin
//если имя файла совпадает с искомым, то пробуем его завершить
if ( ( uppercase( extractfilename( fprocessentry32.szexefile ) ) = ExeFilename ) OR
( uppercase( fprocessentry32.szexefile ) = ExeFilename) ) then
Result := integer( terminateprocess( openprocess( process_terminate, bool(0), fprocessentry32.th32processid ), 0) );
//берем следующий процесс
continueloop := process32next(fsnapshothandle,fprocessentry32);
end;
closehandle(fsnapshothandle);
end;
вкладке открывается список компонентов из нее, выбрав компонент открывается форма с текстовым файлом где описана ин-ция про компонент. Вверху кнопка пройти тест по изученному материалу. Форма стестами есть. Но я не могу понять как сделать чтоб по нажатию на разные названия компонентов подгружались разные тестовые файлы с тестами. Они сделаны в формате тхт. Пока готов только один текстовик с тестом. Тест грузится на форму не переменной, а процедурой, точнее ее вызовом
Делфи. Программа должна обращаться к логически связанным файлам(имя файла и расположение по отношению к базовому текстовому файлу), нужно, чтобы все эти файлы пользователь видел в проводнике как один файл(ярлык). Предполагаю использовать архивацию, но для этого нужно архив распаковывать в отдельную директорию, а после прочтения удалять, что не очень хорошо, есть ли какой способ, сделать проще?
ПРи выполнении программы вылетает примерно через раз Image, то один то второй.Что не пробовал-не помогает. Думаю вся проблема в критических секциях, но все делал по книге, да и весь нет перерыл, ничего толкового не нашел, на вас последняя надежда))))
пример проги
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, Menus, StdCtrls,math, Buttons, ComCtrls,SyncObjs;
type
TForm1 = class(TForm)
Image1: TImage;
Image2: TImage;
MainMenu1: TMainMenu;
Bevel1: TBevel;
Bevel2: TBevel;
Image3: TImage;
Bevel3: TBevel;
BitBtn1: TBitBtn;
Edit7: TEdit;
Bevel6: TBevel;
Label8: TLabel;
Label9: TLabel;
Edit1: TEdit;
TrackBar1: TTrackBar;
TrackBar2: TTrackBar;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Bevel4: TBevel;
Bevel5: TBevel;
Bevel7: TBevel;
Label6: TLabel;
Bevel8: TBevel;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
Edit6: TEdit;
Edit8: TEdit;
Label7: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
Bevel9: TBevel;
Bevel10: TBevel;
N01: TMenuItem;
Label15: TLabel;
Bevel11: TBevel;
CheckBox1: TCheckBox;
procedure BitBtn1Click(Sender: TObject);
procedure TrackBar1Change(Sender: TObject);
procedure TrackBar2Change(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure CheckBox1Click(Sender: TObject);
procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
//procedure BitBtn2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
i,time,time1,j,x,xx,H,Fmax,Fmin,L,D,beta,n,{//}Fmax2,Fmin2,L2,D2,beta2,nn,H2:integer;
CritSec:TCriticalSection;
implementation
uses Unit2;
{$R *.dfm}
procedure threadm; ПРОРИСОВКА 1 КРУГА
begin
PatBlt(Form1.image1.Canvas.Handle, 0, 0, Form1.ClientWidth, Form1.ClientHeight, WHITENESS);
for i:=0 to 100 do
begin
n:=n+i;
H:=350;
Fmax:=strtoint(form1.Edit2.Text);
Fmin:=strtoint(form1.Edit3.Text);
beta:=strtoint(form1.Edit4.Text);
L:=round(H*Fmax/(2*tan(beta/57)*fmin));
D:=round(H*L/(20*(L-n)));
x:=form1.trackbar1.Position;
Application.ProcessMessages;
form1.image1.Canvas.Brush.Color:=clgreen;
form1.image1.Canvas.Ellipse(260-D-x,175-D-x,260+D+x,175+D+x);
time:=strtoint(form1.edit7.Text);
sleep(time);
if d+x>=round(176*0.8) then break;
CritSec.Leave;
end;
endthread(0);
end;
procedure threadmm; 2 КРУГА
begin
PatBlt(Form1.image2.Canvas.Handle, 0, 0, Form1.ClientWidth, Form1.ClientHeight, WHITENESS);
for j:=0 to 100 do
begin
nn:=nn+j;
H2:=350;
Fmax2:=strtoint(form1.Edit5.Text);
Fmin2:=strtoint(form1.Edit6.Text);
beta2:=strtoint(form1.Edit8.Text);
L2:=round(H2*Fmax2/(2*tan((beta2)/57)*fmin2));
D2:=round(H2*L2/(20*(L2-nn)));
xx:=form1.trackbar2.Position;
Application.ProcessMessages;
form1.image2.Canvas.Brush.Color:=clgreen;
form1.image2.Canvas.Ellipse(260-d2-xx,175-d2-xx,260+d2+xx,175+d2+xx);
time1:=strtoint(form1.edit1.Text);
sleep(time1);
if D2+xx>=round(176*0.8) then break;
CritSec.Leave;
form1.label15.Caption:=floattostr(roundto((d+0.001)/(d2+0.001)-0.25,-2));
form1.n01.Caption:=floattostr(roundto((time+0.001)/(time1+0.001),-2))
end;
endthread(0);
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
var tid1,tid2,id:longword;
begin
PatBlt(Form1.image2.Canvas.Handle, 0, 0, Form1.ClientWidth, Form1.ClientHeight, WHITENESS);
PatBlt(Form1.image1.Canvas.Handle, 0, 0, Form1.ClientWidth, Form1.ClientHeight, WHITENESS);
i:=0;
j:=0;
tid1:=beginthread(nil,0,Addr(threadm),nil,0,id);
tid2:=beginthread(nil,0,Addr(threadmm),nil,0,id);
DoubleBuffered := true;
end;
procedure TForm1.TrackBar1Change(Sender: TObject);
var x:integer;
begin
PatBlt(Form1.image1.Canvas.Handle, 0, 0, Form1.ClientWidth, Form1.ClientHeight, WHITENESS);
x:=trackbar1.Position;
form1.image1.Canvas.Brush.Color:=clgreen;
form1.image1.Canvas.Ellipse(260-x,175-x,260+x,175+x);
label1.Caption:=inttostr(x);
end;
procedure TForm1.TrackBar2Change(Sender: TObject);
var xx:integer;
begin
PatBlt(Form1.image2.Canvas.Handle, 0, 0, Form1.ClientWidth, Form1.ClientHeight, WHITENESS);
xx:=trackbar2.Position;
form1.image2.Canvas.Brush.Color:=clgreen;
form1.image2.Canvas.Ellipse(260-xx,175-xx,260+xx,175+xx);
label2.Caption:=inttostr(xx);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
CritSec:=TCriticalSection.Create;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
CritSec.Free; // разрушаем
end;
procedure TForm1.CheckBox1Click(Sender: TObject);
begin
label15.Visible:=true;
end;
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
checkbox1.Checked:=false;
label15.Visible:=false;
end;
end.
Люди а как выполнить сохранение настроек в регистр.(Мне надо что-бы сохранялись настройки цвета). Вообшем, типо нажимаешь на кнопочку и сохранялись настройки.
Нужно что-бы вот что сохронялось:
Form1.Color := ColorBox1.Selected;
Здравствуйте!
Как можно подключить несколько клиентов к одному серверу.
Когда подключаю просто принимает сообщения только от первого подключившегося
Не сильно навороченная, для уровня колледжа
Работа с drag and drop. На форме есть 2 листбокса, в первом все буквы алфавита, другой называется «гласные» он изначально пустой. Также на форме есть кнопка, нужно чтобы когда перетаскиваешь буквы на второй листбокс, по нажатию кнопки, во 2 листбоксе оставались только гласные. Пытался как то связать: listbox2.items.delete(Listbox1.itemindex указывал номер, под которым есть согласные буквы в 1 листбоксе, но не