Здесь не на что смотреть

Просто куски кода из различных прог в Delphe7

Здесь не на что смотреть Шпаргалка, Delphi, Гифка, Длиннопост

Очистка канвы:

InvalidateRect(0, nil, true);


Защита едита:

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);

begin

if not(Key in ['0'..'9',#8]) then Key := #0;

end;


Рандомные линии:

for i:=1 to 7 do

begin

canvas.Pen.Color := RGB(Random(256), Random(256), Random(256));

canvas.LineTo(random(Form1.Width),random(Form1.Height));

end;


Рандомные фигуры:

var shape:Tshape;

Canvas.Brush.Color := RGB(Random(256), Random(256), Random(256));

canvas.Pen.Color := RGB(Random(256), Random(256), Random(256));

a:=1+random(4);

case a of

1 : Canvas.Ellipse(random(Form1.Width),random(Form1.Height),random(Form1.Width),random(Form1.Height));

2 : Canvas.Rectangle(random(Form1.Width),random(Form1.Height),random(Form1.Width),random(Form1.Height));

3 : Canvas.Polygon([Point(random(Form1.Width),random(Form1.Height)), Point(random(Form1.Width),random(Form1.Height)), Point(random(Form1.Width),random(Form1.Height))]);

end;


Рандомные строки из массива:

canvas.brush.style:=bsClear;

<заполнение массива> //если рандомные символы, то без массива рандомим их код в цикле

for i:=1 to 8 do

begin

canvas.Font.color:=RGB(Random(256), Random(256), Random(256));

canvas.font.Size:=5+random(15);

canvas.textout(random(Form1.Width-100),random(Form1.Height),M[random(9)]);

end;


Задача принтер:


var a,i,m : integer;

Shape8.Height:=1;  //стартовое положение листа на форме

Shape8.Top:=231;

a:=0;

i:=1;

m:=200;

case strtoint(Edit1.Text) of  // "Пуск" - считываем кол-во копий и запускаем таймер

1..10: begin

a:=StrToInt(Edit1.Text);

Timer1.Enabled:=True;

end;

end;


Движение фигуры (в таймере интервал 5-10):

begin

if Shape7.Brush.Color=clRed then

i:=a-1;

If (Shape6.left=70) and (Shape6.top>110) then

Shape6.top:=Shape6.Top-1

else

if (Shape6.top=110) and (Shape6.left<320) then

Shape6.Left:=Shape6.Left+1

else

if (Shape6.left=320) and (Shape6.top<m) then

Shape6.Top:=Shape6.top+1

else

begin

i:=i+1;

m:=m-10;

Shape5.Top:=Shape5.top+10;

Shape5.Height:=Shape5.Height-10;

Shape8.Height := Shape8.Height + 10;

Shape8.Top := Shape8.Top - 10;

Shape6.Left := 70;

Shape6.Top := Shape5.top;

if i=a then

begin

Timer1.Enabled:=false;

Button1.Enabled:=False;

Shape7.Brush.Color:=clRed;

end;

end;


Битовые образы. Вывод статичного изображения.

var Air,Plan : TBitmap;

// создать битовые образы

Air := TBitMap.Create;

Plan := TBitMap.Create;

// загрузить картинки

Air.LoadFromFile('Air.bmp');

Plan.LoadFromFile('Plan.bmp') ;

Form1.Canvas.Draw(0,0,Air); // отрисовка фона

Form1.Canvas.Draw(20,20,Plan); // отрисовка левого самолета

Plan.Transparent:=True;

// теперь элементы рисунка, цвет которых совпадает с цветом

// левой нижней точки битового образа, не отрисовываются

Form1.Canvas.Draw(120,20,Plan);

// отрисовка правого самолета

// освободить память

Air.free;

Plan.free;

Здесь не на что смотреть Шпаргалка, Delphi, Гифка, Длиннопост

Движение кругов на форме

var

x,y: byte; // координаты центра окружности

dx: byte; // приращение координаты x при движении окружности

a,b: byte;

da: byte;

procedure Ris;

begin

// стереть окружность

form1.Canvas.Pen.Color:=form1.Color;

form1.Canvas.Ellipse(x,y,x+10,y+10);

x:=x+dx;

// нарисовать окружность на новом месте

form1.Canvas.Pen.Color:=clBlack;

form1.Canvas.Ellipse(x,y, x+10, y+10) ;

// стереть окружность

form1.Canvas.Pen.Color:=form1.Color;

form1.Canvas.Ellipse(a,b,a+10,b+30);

a:=a+da;

// нарисовать окружность на новом месте

form1.Canvas.Pen.Color:=clBlack;

form1.Canvas.Ellipse(a,b, a+10, b+30) ;

end;

<в таймере прописать Ris;> //сразу включен

OnActivate формы

begin

x:=0;

y:=10;

dx:=5;

a:=0;

b:=20;

da:=5;

timer1.Interval:=50;

// период возникновения события OnTimer -0.5 сек

form1.canvas.brush.color:=clRed;

end;


Движение кораблика

var x,y: integer;

// вычерчивает кораблик

procedure Titanik(x,y: integer; // координаты базовой точки

color: TColor); // цвет корабля

const dx = 5; dy = 5;

var

buf: TColor;

begin

with form1.canvas do

begin

buf:=pen.Color; // сохраним текущий цвет

pen.Color:=color;

// установим нужный цвет

// рисуем . . .

// корпус MoveTo(x,y);

LineTo(x,y-2*dy) ;

LineTo (x+10*dx, y-2*dy) ;

LineTo (x+11*dx, y-3*dy) ;

LineTo (x+17*dx,y-3*dy) ;

LineTo (x+14*dx, y) ;

LineTo (x,y) ;

// надстройка

MoveTo(x+3*dx,y-2*dy) ;

LineTo (x+4*dx, y-3*dy) ;

LineTo (x+4*dx, y-4*dy) ;

LineTo (x+13*dx,y-4*dy) ;

LineTo (x+13*dx, y-3*dy) ;

MoveTo(x+5*dx,y-3*dy) ;

LineTo (x+9*dx, y-3*dy) ;

// капитанский мостик

Rectangle (x+8*dx, y-4*dy, x+11*dx, y-5*dy);

// труба

Rectangle(x+7*dx, y-4*dy, x+8*dx, y-7*dy) ;

// иллюминаторы

Ellipse (x+11*dx,y-2*dy,x+12*dx,y-1*dy) ;

Ellipse (x+13*dx, y-2*dy, x+14*dx, y-1*dy) ;

// мачта

MoveTo(x+10*dx,y-5*dy) ;

LineTo(x+10*dx,y-10*dy);

// оснастка

MoveTo(x+17*dx,y-3*dy);

LineTo(x+10*dx,y-10*dy);

LineTo(x,y-2*dy);

LineTo(x,y);

pen.Color:=buf; // восстановим старый цвет карандаша

end;

end;


В таймере:

Titanik(x,y,form1.color); // стереть рисунок

if x < Form1.ClientWidth then

x := x+5

else

begin // новый рейс x := 0;

y:= Random(50) + 100;

end;

Titanik(x,y,clWhite); // нарисовать в новой точке


OnActivate формы:

x:=0; y:=100;

Form1.Color:=clNavy;

Timer1.Interval := 50; // сигнал таймера каждые 50 миллисекунд

Здесь не на что смотреть Шпаргалка, Delphi, Гифка, Длиннопост

Полёт самолётика :)

var

Back, bitmap, Buf : TBitMap; // фон, картинка, буфер

BackRct : TRect; // область фона, которая должна быть

// восстановлена из буфера

BufRet: Trect; // область буфера, которая используется для

// восстановления фона

x,y:integer; // текущее положение картинки

W,H: integer; // размеры картинки


procedure TForm1.FormActivate(Sender: TObject);

begin

// создать три объекта - битовых образа

Back := TBitmap.Create; // фон

bitmap := TBitmap.Create; // картинка

Buf := TBitmap.Create; // буфер

// загрузить и вывести фон

Back.LoadFromFile('Air.bmp');

Form1.Image1.canvas.Draw(0,0,Back);

// загрузить картинку, которая будет двигаться

bitmap.LoadFromFile('Plane.bmp');

// определим "прозрачный" цвет

bitmap.Transparent := True;

bitmap.TransparentColor := bitmap.canvas.pixels[1,1];

// создать буфер для сохранения копии области фона,

// на которую накладывается картинка

W:= bitmap.Width;

H:= bitmap.Height;

Buf.Width:= W;

Buf.Height:=H;

Buf.Palette:=Back.Palette;

// Чтобы обеспечить соответствие палитр //

Buf.Canvas.CopyMode:=cmSrcCopy;

// определим область буфера, которая

// будет использоваться

// для восстановления фона

BufRet:=Bounds(0,0,W,H);

// начальное положение картинки

x := -W;

y:= 20;

// определим сохраняемую область фона

BackRct:=Bounds(x,y,W,H); // и сохраним ее

Buf.Canvas.CopyRect(BufRet,Back.Canvas,BackRct);

end;


procedure TForm1.Timer1Timer(Sender: TObject);

begin

// восстановлением фона (из буфера) удалим рисунок

Form1.image1.canvas.Draw(x,y,Buf);

x:=x+2;

if x>(form1.Image1.Width) then x:=-W;

// определим сохраняемую область фона

BackRct:=Bounds(x,y,W,H);

// сохраним ее копию

Buf.Canvas.CopyRect(BufRet,Back.Canvas,BackRct);

// выведем рисунок

Form1.image1.canvas.Draw(x,y,bitmap);

end;


procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);

begin

// освободим память, выделенную

// для хранения битовых образов

Back.Free;

bitmap.Free;

Buf.Free;

end;

Здесь не на что смотреть Шпаргалка, Delphi, Гифка, Длиннопост

Почаще бы к коду комментарии делать...

1
Автор поста оценил этот комментарий
какого отечественного? лазарус отечественный? да ты жжошь. ты поди поставил какую-нибудь старинную бета версию с сайта "золотой софт" и чет тыкал в ней.
Иллюстрация к комментарию
раскрыть ветку (1)
Автор поста оценил этот комментарий

Да фиг его знает откуда было скачано это безобразие, дело почти 2 года назад было. Факт тот, что не понравилось мне это бесплатное по, а стремление некоторых преподавателей заставить на нём работать не сказывается положительным образом на работе.

показать ответы
Автор поста оценил этот комментарий
А нормальных БД у вас нет? Зачем акцсесс использовать? Хотя бы mysql
раскрыть ветку (1)
Автор поста оценил этот комментарий

Когда ту прогу делали, то в нашем распоряжении были только эксис и фокспро. SQL в этом полугодии изучать начали. Удобно, но понятного пока что мало. Вчера до select добрались.

Автор поста оценил этот комментарий
1. Оставлю без комментариев
2. Какая база данных?
раскрыть ветку (1)
Автор поста оценил этот комментарий

Вроде про больницу. В access 2003 из 4-ёх таблиц. Врачи, пациенты, регистратура, диагнозы. Требовалось вывести на просмотр каждую таблицу, сделать возможность добавления новых записей, удаление и изменение старых, поиск по определённому полю в таблице. Вроде что-то ещё, но не помню точно.

показать ответы
Автор поста оценил этот комментарий
1. Как именно лазарус тебя подвел?
2. Работа с БД происходит посредством либы, подключаемой или какого-нибудь рест интерфейса. При чем тут лазарус?
раскрыть ветку (1)
Автор поста оценил этот комментарий

1. Фыркал, тормозил и глючил при попытке запуска программы. Затем проблемы по волшебству исчезли, но вот в момент сдачи при... окно программы не отобразилось, а процесс отказывался завершаться (в глазах препода это было то ещё позорище). В итоге я просто накидала тех же компонентов на форму в делфи, перенесла из лазаруса код, запустила и всё прекрасно работает. Оценка правда ниже, ну да ладно.

2. На том же предмете делали задание из методички по базам. На этот раз сразу было сказано, что делаем в делфи, т.к. лазарус для этих целей не подходит. Угадайте кто прослушал. Эта несчастная база из эксис за пару минут подключается в делфи, затем останется добавить возможность редактирования, поиска и т.д. (в отличии от лазика, который сопротивлялся до последнего).

показать ответы
1
Автор поста оценил этот комментарий
Залей туда код и пользуйся когда надо
раскрыть ветку (1)
Автор поста оценил этот комментарий

А ведь идея

Иллюстрация к комментарию
1
Автор поста оценил этот комментарий
я на лазарусе очень много пишу. проблем нет. особенно при работе с бд. судя по всему ты мамкин программист.
раскрыть ветку (1)
Автор поста оценил этот комментарий

Да хоть в паскале зависай. Делфи ни разу не завис без причины, в отличии от этого "отечественного по".

показать ответы
1
Автор поста оценил этот комментарий

А о чём этот пост вообще в крации?

раскрыть ветку (1)
Автор поста оценил этот комментарий

Несколько программ в Delphe7, где требуется работа с самой формой и с объектами на ней. Цветных линий накидать, картинку двигаться заставить. Мне в понедельник не помешает.

показать ответы
Автор поста оценил этот комментарий
Pornhub, ой, github же есть для этих целей
раскрыть ветку (1)
Автор поста оценил этот комментарий

Где я там разжёванную задачу про принтер искать буду? Ладно бы ещё какие-нибудь алгоритмы с примерами применения, но точно не движущиеся листы бумаги)

показать ответы
1
Автор поста оценил этот комментарий

Delphi, а не Delphe, мамкин программист.

раскрыть ветку (1)
Автор поста оценил этот комментарий

Ну, бывает ¯ \ _ (ツ) _ / ¯

Автор поста оценил этот комментарий
А она уже умерла? Новых версий нет?
раскрыть ветку (1)
Автор поста оценил этот комментарий

Есть, но нам вместо них предлагают лазарус, к которому я не приближаюсь по двум причинам:

1. Эта гадость крупно подвела меня при попытке сдачи алгоритма кмп

2. Лазарус не может в работу с бд без танцев с бубном

показать ответы
Автор поста оценил этот комментарий

@moderator, пост "для себя"

раскрыть ветку (1)
Автор поста оценил этот комментарий

Может кроме меня надо кому :)

показать ответы