- 1
[color=green][s][u][b][size=20]ДАВАЙТЕ ФЛУДИТЬ И ТРОЛЛИТЬ[/size][/color][/b][/u][/s]
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
Всего: 5
−1
[color=green][s][u][b][size=20]ДАВАЙТЕ ФЛУДИТЬ И ТРОЛЛИТЬ[/size][/color][/b][/u][/s]
ДАВАЙТЕ ФЛУДИТЬ И ТРОЛЛИТЬ
−1
TServerThread = class(TThread)
private
procedure DoReadData;
protected
ThreadOwner: TIPCServer;
procedure Execute; override;
constructor Create(AThreadOwner: TIPCServer);
destructor Destroy; override;
public
end;
Мы кодили, кодили и наконец накодили!
0
procedure TForm1.ProcListAdvancedCustomDrawItem(Sender: TCustomListView;
Item: TListItem; State: TCustomDrawState; Stage: TCustomDrawStage;
var DefaultDraw: Boolean);
var
TP:TprocessInfo;
xColor: TColor;
xRect: TRect;
xBitmap: TBitmap;
I, L, R: Integer;
begin
DefaultDraw:=False;
TP:=TProcessInfo(Item.SubItems.Objects[0]);
if (Item.Selected) then
begin
if Sender.Focused then
begin
if (FItemAtCursor <> -1) and (Item.Index = FItemAtCursor) then
xColor:=clNavy
else
xColor:=$00C56A31;
end
else
xColor:=$00D8E9EC
end
else
begin
if (TP.New<2) or (TP.Terminated<2) or (TP.Hidden) then
begin
if ShowDangerousProcesses then
if TP.Hidden then
xColor:=$00DBDBDB;
if ShowNewProcesses then
if TP.New <2 then
xColor:=$001DEB2D;
if ShowTerminatedProcesses then
if TP.Terminated < 2 then
xColor:=$001D2DEB;
end
else
if (Item.Index mod 2 = 1) then
xColor:=RGB(245,245,255)
else
xColor:=clWindow;
end;
Sender.Canvas.Brush.Color:=xColor;
DefaultDraw:=True;
if (Item.Selected) and Sender.Focused
then Sender.Canvas.Font.Color:=clWindow
else Sender.Canvas.Font.Color:=clWindowText;
Sender.Canvas.FillRect(Item.DisplayRect(drLabel));
DefaultDraw:=True;
Exit;
xRect:=Item.DisplayRect(drLabel);
Sender.Canvas.TextRect(xRect,xRect.Left+2,xRect.Top,Item.Caption);
for I:=0 to TListView(Sender).Columns.Count-1 do
begin
if TListView(Sender).Columns[TListView(Sender).Columns[I].ID].Width<=0 then Continue;
if (I=0) and (TListView(Sender).Columns[I].ID <> 0) then
begin
xRect.Left:=0;
xRect.Right:=xRect.Left+TListView(Sender).Columns.Items[TListView(Sender).Columns[I].ID].Width-1;
Sender.Canvas.FillRect(xRect);
Sender.Canvas.TextRect(xRect,xRect.Left+2,xRect.Top,Item.SubItems[TListView(Sender).Columns[I].ID-1]);
end
else
begin
if I>0 then
begin
xRect.Left:=xRect.Right+1;
xRect.Right:=xRect.Left+TListView(Sender).Columns.Items[TListView(Sender).Columns[I].ID].Width-1;
Sender.Canvas.FillRect(xRect);
if TListView(Sender).Columns[I].ID >0 then
Sender.Canvas.TextRect(xRect,xRect.Left+5,xRect.Top,Item.SubItems[Pred(TListView(Sender).Columns[I].ID)])
else
begin
L:=(Item.DisplayRect(drIcon).Right-Item.DisplayRect(drIcon).Left)+6;
Sender.Canvas.TextRect(xRect,xRect.Left+L,xRect.Top, Item.Caption)
end;
end;
end;
end;
Sender.Canvas.Brush.Color:=clWindow;
Sender.Canvas.FillRect(Item.DisplayRect(drIcon));
if Item.ImageIndex=-1 then Exit;
xBitmap:=TBitmap.Create;
TListView(Sender).SmallImages.GetBitmap(Item.ImageIndex,xBitmap);
ListView - великий и ужасный! - в режиме OwnerDraw.
Писал диспетчер процессов. Когда я разрешил прятать столбцы и включил свойство FullDrag, моя жизнь круто изменилась.
−1
(багрепорт)
http://www.alphaskins.com/forum/index.php?app=core&module=attach§ion=attach&attach_rel_module=post&attach_id=8330Сергох Гончаров с AlphaSkins.com шалит )
Сергох Гончаров с AlphaSkins.com шалит )
0
function IsExecutablePacked(FileName: WideString): Boolean;
var
i: Cardinal;
CompressionRatio: Double;
Count: Cardinal;
MathX: array [0 .. 255] of Integer;
FileStream: TFileStream;
Buffer: PAnsiChar;
FileHandle: THandle;
begin
Result := False;
try
FileHandle := 0;
FileHandle := CreateFileW(PWideChar(FileName), GENERIC_READ, FILE_SHARE_READ or FILE_SHARE_DELETE, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
if (FileHandle <> 0) and FileExists(FileName) then
begin
try
FileStream := TFileStream.Create(FileHandle);
Count := FileStream.Seek(0, soFromEnd);
try
GetMem(Buffer, Count);
FileStream.Seek(0, soFromBeginning);
FileStream.Read(Buffer^, Count);
CompressionRatio := 0;
FillChar(MathX, Sizeof(MathX), 0);
for i := 0 to Count - 1 do
Inc(MathX[Windows.PByte(DWORD(Buffer) + (i))^]);
for i := 0 to 255 do
if MathX > 0 then
CompressionRatio := CompressionRatio - Log2(MathX / Count) * MathX;
finally
FreeMem(Buffer, Count);
end;
CompressionRatio := (Count * 8) / CompressionRatio;
CompressionRatio := 100 / CompressionRatio;
if CompressionRatio > 97 then
Result := True;
finally
FileStream.Free;
end;
end;
finally
end;
end;
"Ис Эксекутабле Пуцкед" - форматирование сохранено.