unit frmGen;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, IniFiles, StdCtrls;
type
Tfrm_Gen =
class(TForm)
picMap: TImage;
picTopL: TImage;
picTopF: TImage;
picTopText: TImage;
picTopM: TImage;
picTopStretch: TImage;
picTopC: TImage;
picBorderL: TImage;
picBottomL: TImage;
picBottomR: TImage;
picBottomM: TImage;
picClose: TImage;
picTopTextSrc: TImage;
picBorderR: TImage;
picFormResize: TImage;
picMapSrc: TImage;
pBack: TPanel;
procedure picFormResizeMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure picCloseMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure picBottomMMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure picFormResizeMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure picFormResizeMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure picTopFMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure FormDestroy(Sender: TObject);
procedure picTopLMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure picTopMMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure picTopStretchMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure picTopMDblClick(Sender: TObject);
procedure picCloseClick(Sender: TObject);
procedure picCloseMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure picTopTextSrcMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure picBottomMDblClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormResize(Sender: TObject);
private
procedure LoadSkin;
procedure ImageCopy;
procedure ScaleScreen;
procedure picBottomM_Resize;
procedure picTopText_Resize;
procedure picTopStretch_Resize;
procedure StandardSize;
function GetBitArray(StrView:
String): Integer;
procedure SetImage(Destination : TImage; x: Integer;
y: Integer;
W : Integer;
H : Integer;
Source : TImage;
startX : Integer;
StartY : Integer);
procedure ChangeGenPos;
function MidStr(
Const Str:
String; From, Size: Word):
String;
function RightStr(
Const Str:
String; Size: Word):
String;
function LeftStr(
Const Str:
String; Size: Word):
String;
function SetFullWindowDrag(hwnd: DWORD; ShowFullWindow: Boolean): Boolean;
procedure MouseTrap(Sender: TObject; X, Y: Integer);
procedure MouseTrap_Release;
public
end;
TSplitStrArray =
array of String;
function Split(
const Source, Delimiter:
String): TSplitStrArray;
var
frm_Gen : TForm;
i : Integer;
picW : Integer;
fTimer : Single;
Prg :
String;
Sect :
String;
OptDefPath :
String;
FormFlag : Boolean;
FX : Integer;
FY : Integer;
FormFirst : Boolean;
AX : Integer;
AY : Integer;
PicMapDC : hdc;
implementation
{$R *.dfm}
procedure Tfrm_Gen.ChangeGenPos;
Begin
picBottomM_Resize;
picTopText_Resize;
picTopStretch_Resize;
End;
function Tfrm_Gen.GetBitArray(StrView:
String): Integer;
Var
IntI : Integer;
//Zähler
StrPosX :
String;
//X Position im Bitmap
StrPosW :
String;
//Weite des Buchstaben
IntPos : Integer;
//Zähler für die Buchstabenweite
DelemiterCol : TCOLOR;
//Delemiter als Farbe
IntDelPos : Integer;
//Aktuelle Delemiter Position
ColFound : Boolean;
//Farbe gefunden, ergebnis = Buchstabenweite
BWidth : Variant;
//Resultat der gefundenen Buchstabenweiten Spliten
PosX : Variant;
//
NewPos : Integer;
StrS :
String;
IntX : Integer;
image : TImage;
begin
IntPos := 0;
IntDelPos := 0;
ColFound := False;
PicMapDC := PicMap.Picture.Bitmap.Canvas.Handle;
//******************** Schleife zum ermitteln der Buchstabenweite *********************
///////////////////////////////////////////////////////////////////////////////////////
//Ermitteln der Delemiter Farbe
DelemiterCol := GetPixel(PicMapDC, 0, 88);
//Schleife durchlaufen bis 26* die Delemiter Farbe gefunden wurde
For IntI := 1
To picMap.Width
do
begin
//Raus hier wenn Farbe 26* gefunden
If IntDelPos = 26
Then Break;
//Aktuelle Position der Buchstabenweite um eins erhöhen
inc(IntPos);
//Wenn aktuelle position im Bitmap die gleiche Farbe
//enthält wie DelemiterCol ..
If GetPixel(PicMapDC, IntI, 88) = DelemiterCol
Then
begin
If IntDelPos <= 24
Then
begin
//Position zum StrPosX addieren und Delemiter komma anhängen
StrPosX := StrPosX + IntToStr(IntI) + '
,';
end
Else
//Letze Position zum StrPosX addieren ohne Delemiter
StrPosX := StrPosX + IntToStr(IntI);
//Zähler für Farbe um eins erhöhen
inc(IntDelPos);
//Farbe gefunden
ColFound := True;
End;
//wenn Farbe gefunden
If ColFound
Then
begin
//weite des Buchstaben zum StrPosW addieren
If IntDelPos <= 25
Then
begin
.