Lazarus-та Цезарь жасаймыз!!!



Хуиметсіздер ме, херметті ламер ағайын мен пақыр апайын!

F0x_kz деген шуақ бастаған дәстүрді үзбей, өз хезегімде Lazarus — арқылы қалайша Цезарь жасауға болатынын әңгімелеп берсем деймін. Себебі, F0x_kz -тің біржақтылығының кесірінен, Бруттың есімі есте қалып, ал сөзге шешеңңдігінің арқасында Клеопатра сынды сұлуды басжіверген Цезарьдің аты өшкелі тұрған сияқты.
Әлсага, Цезарь амигоның қанатты сөздердің бұлағы екені кейбірімізге тарихтан белгілі. Ендеше, ұмытқымыз келмейтін пензесс қанатты сөздерді компьютерімзге сақтап, оларды көрсетіп тұратын шағын ғана программашық жасасақ дейміз. Сонымен, Lazarus IDE редакторымен жұмыс істейміз. Программаның хуйнар коды мен өзін мына жерден көшіріп ала аласыздар. Ал код төмендегідей, түсіндірмесімен.

unit caesarunit;

{$mode objfpc}{$H+}

interface

uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
ExtCtrls;

type

{ TCaesarForm }

TCaesarForm = class(TForm)
AddNewSoz: TButton;
BVL: TBevel;
ChronoSoz: TIdleTimer;
SozView: TMemo;
SozEdt: TLabeledEdit;
RandomSozBtn: TButton;
procedure AddNewSozClick(Sender: TObject);
procedure ChronoSozTimer(Sender: TObject);
procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
procedure FormCreate(Sender: TObject);
procedure RandomSozBtnClick(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;

var
CaesarForm: TCaesarForm;
PenzessSozder: TStringList; // Бұл хуйнымалы — тізімді жадыны файлдан жүкті қылады және жадыны файлға сақтайды
GlobalPath: TFileName; // Бұл жуйнымалы — ішінде хрегамма бар буманың қай жерге түскенін жаттап қалады

implementation

{$R *.lfm}

{ TCaesarForm }

procedure TCaesarForm.AddNewSozClick(Sender: TObject);
begin
if Length(SozEdt.Text)=0 then exit; // Ештеңе енгізілмесе — бұтақ та істемейміз, шешесстің.
PenzessSozder.Add(SozEdt.Text); // PenzessSozder тізіміне жаңа хенатты сөзімізді енгіземіз де,
PenzessSozder.SaveToFile(GlobalPath+'penzess.txt'); // файлға сақтаймыз, шешесстің.
SozEdt.Clear;
end;

procedure TCaesarForm.ChronoSozTimer(Sender: TObject);
begin
RandomSozBtn.OnClick(Sender); //Таймер 3,5 секунд сайын «Кездейсоқ пензесс сөз» түймесін басып, сөзді шығарып тұрады.
end;

procedure TCaesarForm.FormClose(Sender: TObject; var CloseAction: TCloseAction);
begin
ChronoSoz.Enabled:=false; //Программаны жабарда таймерді қолдан тоқтатып,
PenzessSozder.Free; // PenzessSozder хуйнымалысы үшін алынған жадыдағы орынды босатамыз, мединститутыныңжатақханасынсстың
end;

procedure TCaesarForm.FormCreate(Sender: TObject);
begin
ChronoSoz.Enabled:=false; // Еш жерде ондай нұсқау болмаса да, таймерді о баста қолдан тоқтатып, қолжан жіберген дұрыс;
GlobalPath:=ExtractFilePath(Application.ExeName); //Пензесс сөздер сақталатын буманың маршрутын анықтаймыз
PenzessSozder:=TStringList.Create; //Тізімдік айнымалы үшін жадыдан орын аламыз
if FileExists(GlobalPath+'penzess.txt') then //Егер хреграмма тұрған бумада пензесс сөздер сақталған файл таыблса,
PenzessSozder.LoadFromFile(GlobalPath+'penzess.txt') else //онда жадыны сол файлдан жүкті қыламыз, әйтпесе
PenzessSozder.SaveToFile(GlobalPath+'penzess.txt'); //бірінші рет болса — жаңа файл жасаймыз.
ChronoSoz.Enabled:=true; //Таймерді қосамыз нақ, тігейіннің жадының жұтын
end;

procedure TCaesarForm.RandomSozBtnClick(Sender: TObject);
var
r: longint; //Кездейсоқ бүтін сан үшін хуйнымалы
begin
PenzessSozder.LoadFromFile(GlobalPath+'penzess.txt'); //Бұрын жаңа сөздер енгізілуі мүмкін болғандықтан, тізімді қайта жүктейміз
if PenzessSozder.Count-1<0 then exit; //Егер тізімде бұтақ та жоқ болса, осы жерден тоқтаймыз.
Randomize; //Кездейсоқ сандар автоматын қосамыз
r:=Random(PenzessSozder.Count-1); // r үшін мәні — тізім ұзындығынан үлкен емес санды телиміз, шешесстің.
SozView.ReadOnly:=false; SozView.Clear; //SozView компонентің модификация үшін ашамыз, ішін өшріеміз,
SozView.Lines.Add(PenzessSozder[r]); //сосын тізімнен кездейсоқ сөзді алып, саламыз да,
SozView.ReadOnly:=true; //модификация мүмкіндігін қайта жабамыз. Шешесстің, нақу біләд.
end;

end.
Бөлісу:

3 пікір

F0x_kz
Менің арқамда осындай керемет, дүниелер дүниеге келгені хуйанып отырмын
F0x_kz
Менің де, «Фотошопта маймыл жасаймыз» деген еңбегімді бағалап жіберіңіз.
Erasyl2
 осы дәстүрдің жалғасуына мүдделімін