- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
procedure DoDoubleBuffering(const Form: TForm);
var
Component: TComponent;
begin
Form.DoubleBuffered := True;
for Component in Form do
if (Component is TLabel) or (Component is TButton) or (Component is TEdit)
then
TButton(Component).DoubleBuffered := True;
end;
procedure AppendStringToFile(FileName: string; Data: string);
var
s: TextFile;
begin
if not FileExists(FDir + FileName) then
begin
AssignFile(s, FDir + FileName);
Rewrite(s);
WriteLn(s, Data);
CloseFile(s);
end
else
begin
AssignFile(s, FDir + FileName);
Append(s);
WriteLn(s, Data);
CloseFile(s);
end;
end;
function Pars(T_, ForS, _T: string): string;
var
a, b: Integer;
begin
Result := '';
if (T_ = '') or (ForS = '') or (_T = '') then
Exit;
a := Pos(T_, ForS);
if a = 0 then
Exit
else
a := a + Length(T_);
ForS := Copy(ForS, a, Length(ForS) - a + 1);
b := Pos(_T, ForS);
if b > 0 then
Result := Copy(ForS, 1, b - 1);
end;
procedure LoginAndPassword(const Data: string;
out Login, Password: string); inline;
var
FIndex: Integer;
FDelimetr: String;
begin
FDelimetr := ':';
if Pos(';', Data) <> 0 then
FDelimetr := ';';
FIndex := Pos(FDelimetr, Data);
Login := Copy(Data, 1, FIndex - 1);
Password := Copy(Data, FIndex + 1, Length(Data) - FIndex);
end;
procedure IPAndPort(out IP, Port: string); inline;
begin
if TP >= Proxy.Count then
TP := 0;
IP := Copy(Proxy.Strings[TP], 1, Pos(':', Proxy.Strings[TP]) - 1);
Port := Copy(Proxy.Strings[TP], Pos(':', Proxy.Strings[TP]) + 1,
Length(Proxy.Strings[TP]));
Inc(TP);
end;
function ParsIndex(_S: String; S1: String; S_: String; I: Integer): String;
var
TS: TStringList;
s: String;
begin
TS := TStringList.Create;
while Pos(_S, S1) <> 0 do
begin
TS.Add(Pars(_S, S1, S_));
Delete(S1, Pos(_S, S1), 1);
end;
Result := TS.Strings[I];
FreeAndNil(TS);
end;
gost 11.01.2016 18:06 # +2
Фу-фу-фу. Как зашел туда - сразу на мониторе говно появилось. Пришлось спиртом оттирать.
ponchic 11.01.2016 20:10 # 0
bormand 11.01.2016 20:16 # +2
ponchic 11.01.2016 20:36 # 0
kegdan 11.01.2016 20:36 # 0
inkanus-gray 12.01.2016 22:11 # +1
bormand 12.01.2016 22:13 # 0
kegdan 12.01.2016 22:23 # +1
bormand 12.01.2016 22:24 # +1
kegdan 12.01.2016 22:26 # +1
gost 11.01.2016 21:42 # 0
bormand 11.01.2016 22:03 # +2
3_dar 11.01.2016 22:47 # +2
inkanus-gray 12.01.2016 22:12 # 0
bormand 11.01.2016 22:59 # +1
Мастер оптимизации.
gost 13.01.2016 12:58 # 0
Vasiliy 13.01.2016 13:02 # +1
guest 12.01.2016 21:43 # 0
кошерное говно.
bormand 12.01.2016 22:08 # +3
> TButton(Component).DoubleBuffered := True
Кровь-кишки-распидорасило.
inkanus-gray 12.01.2016 22:16 # +2
guest 12.01.2016 22:19 # 0
:/
inkanus-gray 12.01.2016 22:20 # +1