Kod: Tümünü seç
var Xlist: TStringList;
a, b, i, j, inds: integeR;
str, welc,kl: string;
begin
if Dm1.QSonuc.Active = false then
begin
ShowMessage('Lütfen Önce Sinavi Seciniz');
exit;
end;
if cb2.ItemIndex = 0 then fmkarnedrucktum.qr1.Page.Orientation := poPortrait
else
fmkarnedrucktum.qr1.Page.Orientation := poLandscape;
globrecno := 1;
FmKarnedrucktum.QRImage1.Enabled := false;
FmKarneDrucktum.QRImage2.enabled := false;
FmKarneDrucktum.QRImage3.enabled := false;
FmKarneDrucktum.QRImage4.enabled := false;
FmKarneDrucktum.QRImage5.enabled := false;
FmKarneDrucktum.QRImage6.enabled := false;
FmKarneDrucktum.QRImage7.enabled := false;
FmKarneDrucktum.QRImage8.enabled := false;
FmKarnedrucktum.QRImage1.picture := nil;
FmKarneDrucktum.QRImage2.picture := nil;
FmKarneDrucktum.QRImage3.picture := nil;
FmKarneDrucktum.QRImage4.picture := nil;
FmKarneDrucktum.QRImage5.picture := nil;
FmKarneDrucktum.QRImage6.picture := nil;
FmKarneDrucktum.QRImage7.picture := nil;
FmKarneDrucktum.QRImage8.picture := nil;
dm1.QSonuc.First;
xlist := TStringList.Create;
xlist.LoadFromFile(cb1.GetValuesWert);
for i := 0 to 10 do
begin
XQLabel[i].Free;
XQLabel[i] := nil;
YQLabel[i].Free;
YQLabel[i] := nil;
Xlabela[i].Alan_Adi := '';
Ylabela[i].Alan_Adi := '';
end;
for I := 0 to fmalanliste.ch2.items.count - 1 do
begin
XQAnaliz[i].Free;
XQAnaliz[i] := nil;
YQAnaliz[i].Free;
YQAnaliz[i] := nil;
XLabelS[i].Xlabel.Free;
XLabelS[i].Xlabel := nil;
XLabelS[i].Alan_Adi := '';
YLabelS[i].Xlabel.Free;
YLabelS[i].Xlabel := nil;
YLabelS[i].Alan_Adi := '';
end;
for I := 0 to 15 do
begin
XCevap[i].Free;
XCevap[i] := nil;
YCevap[i].Free;
YCevap[i] := nil;
XCevapA[i].Xlabel.Free;
XCevapA[i].Xlabel := nil;
XCevapA[i].Alan_Adi := '';
YCevapA[i].Xlabel.Free;
YCevapA[i].Xlabel := nil;
YCevapA[i].Alan_Adi := '';
end;
with FmKarneDrucktum do
begin
// Koordinatlarin alinidigi kisim
//a := 0;
a := 0;
for i := 0 to Xlist.Count - 1 do
begin
if i = 0 then
begin
str := xlist[i];
a := pos(';', str);
b := a;
a := Pos(';', Copy(str, b + 1, Length(str) - (b)));
kl := Copy(str, b + 1, a - 1);
if kl <> 'm' then
begin
ShowMessage('Acmaya calistiginiz dosya OKS icin tanimlanmamistir. Lütfen baska bir dosya seciniz');
exit;
end;
end else if i = 1 then
begin
str := xlist[i];
a := pos(';', str);
GlobPixPerMMX := strtofloat(Copy(str, 1, a - 1));
b := a;
a := Pos(';', Copy(str, b + 1, Length(str) - (b)));
GlobPixPerMMY := strtofloat((Copy(str, b + 1, a - 1)));
end else
begin
str := xlist[i];
a := pos(',', str);
Welc := (Copy(str, 1, a - 1));
b := a;
a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
inds := strtoint((Copy(str, b + 1, a - 1)));
b := a + b;
a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
if Welc = 'X' then // öğrenci birinci bölüm..
begin
XLabela[inds].Alan_Adi := (Copy(str, b + 1, a - 1));
if not Assigned(XqLabel[inds]) then
begin
Xqlabel[inds] := Tqrlabel.Create(FmKarneDruckTum);
Xqlabel[inds].ParentReport := FmKarneDrucktum.Qr1;
Xqlabel[inds].Parent := FmKarneDrucktum.QRBand1;
XqLabel[inds].Enabled := true;
XqLabel[inds].Visible := true;
if inds = fmalanliste.ch1.Items.Count - 1 then
XqLabel[inds].Font.Size := 14
else
XqLabel[inds].Font.Size := 10;
XqLabel[inds].Font.color := clblack;
end;
b := a + b;
a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
b := a + b;
a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
XqLabel[inds].size.Left := strtoint(Copy(str, b + 1, a - 1)) / GlobPixPerMMX;
b := a + b;
a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
XqLabel[inds].size.Top := strtoint(Copy(str, b + 1, a - 1)) / GlobPixPerMMY; //bu satır + - degeler verilerek karne çıktısı denenecek
end else if Welc = 'S' then // sorular birinci bölüm..
begin
XLabelS[inds].Alan_Adi := (Copy(str, b + 1, a - 1));
if not Assigned(XQANaliz[inds]) then
begin
XQAnaliz[inds] := TQRLabel.Create(FmKarneDruckTum);
XQAnaliz[inds].ParentReport := FmKarneDruckTum.Qr1;
XQAnaliz[inds].Parent := FmKarneDruckTum.QRBand1; ;
XQAnaliz[inds].Visible := true;
XQAnaliz[inds].Font.Size := 10;
XQAnaliz[inds].Enabled := true;
b := a + b;
a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
// YQAnaliz[inds].Caption := Dm1.Qsonuc.fieldbyname(XLabelS[inds].alan_adi).AsString;
b := a + b;
a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
XQAnaliz[inds].size.Left := strtoint(Copy(str, b + 1, a - 1)) / GlobPixPerMMX; // mm ' ye çevirme işlemi
b := a + b;
a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
XQAnaliz[inds].size.Top := strtoint(Copy(str, b + 1, a - 1)) / GlobPixPerMMy; // mm ' ye çevirme işlemi
b := a + b;
a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
XQAnaliz[inds].Tag := strtoint(Copy(str, b + 1, a - 1));
b := a + b;
a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
XQAnaliz[inds].HelpKeyword := (Copy(str, b + 1, a - 1));
end;
end else if Welc = 'M' then // sorular ikinci bölüm...
begin
YLabelS[inds].Alan_Adi := (Copy(str, b + 1, a - 1));
if not Assigned(YQANaliz[inds]) then
begin
YQAnaliz[inds] := TQRLabel.Create(FmKarneDruckTum);
YQAnaliz[inds].ParentReport := FmKarneDruckTum.Qr1;
YQAnaliz[inds].Parent := FmKarneDruckTum.QRBand1; ;
YQAnaliz[inds].Visible := true;
YQAnaliz[inds].Font.Size := 10;
YQAnaliz[inds].Enabled := true;
end;
b := a + b;
a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
b := a + b;
a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
YQAnaliz[inds].size.Left := strtoint(Copy(str, b + 1, a - 1)) / GlobPixPerMMX;
b := a + b;
a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
YQAnaliz[inds].size.Top := strtoint(Copy(str, b + 1, a - 1)) / GlobPixPerMMy;
b := a + b;
a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
YQAnaliz[inds].Tag := strtoint(Copy(str, b + 1, a - 1));
b := a + b;
a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
YQAnaliz[inds].HelpKeyword := (Copy(str, b + 1, a - 1));
end else if welc = 'Y' then // öğrenci bilgileri ikinci bölüm...
begin
if RadioGroup1.ItemIndex = 0 then
begin
YLabela[inds].Alan_Adi := (Copy(str, b + 1, a - 1));
if not Assigned(YqLabel[inds]) then
begin
Yqlabel[inds] := Tqrlabel.Create(FmKarneDrucktum);
Yqlabel[inds].ParentReport := FmKarneDrucktum.Qr1;
Yqlabel[inds].Parent := FmKarneDrucktum.QRBand1;
YqLabel[inds].Enabled := true;
YqLabel[inds].Visible := true;
if inds = fmalanliste.ch1.Items.Count - 1 then // alan seçme listedindeki en son seçenek ise...yani Kurum adı ise
YqLabel[inds].Font.Size := 14
else
YqLabel[inds].Font.Size := 8;
YqLabel[inds].Font.color := clblack;
b := a + b;
a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
b := a + b;
a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
YqLabel[inds].Size.Left := strtoint(Copy(str, b + 1, a - 1)) / GlobPixPerMMX;
b := a + b;
a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
YqLabel[inds].Size.Top := strtoint(Copy(str, b + 1, a - 1)) / GlobPixPerMMY;
end else
begin
YqLabel[inds].Free;
YqLabel[inds] := nil;
end;
end;
end else if welc = 'C' then // cevaplar birinci bölüm...
begin
XcevapA[inds].Alan_Adi := (Copy(str, b + 1, a - 1));
if not Assigned(xcevap[inds]) then
begin
xcevap[inds] := Tqrlabel.Create(FmKarneDruckTum);
xcevap[inds].ParentReport := FmKarneDruckTum.Qr1;
xcevap[inds].Parent := FmKarneDruckTum.QRBand1;
xcevap[inds].Enabled := true;
xcevap[inds].Visible := true;
xcevap[inds].Font.Size := 9;
xcevap[inds].Font.color := clblack;
end else
begin
xcevap[inds].Free;
xcevap[inds] := nil;
end;
b := a + b;
a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
b := a + b;
a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
xcevap[inds].size.Left := strtoint(Copy(str, b + 1, a - 1)) / GlobPixPerMMX;
b := a + b;
a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
xcevap[inds].size.Top := strtoint(Copy(str, b + 1, a - 1)) / GlobPixPerMMY;
b := a + b;
a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
xcevap[inds].Tag := strtoint(Copy(str, b + 1, a - 1));
b := a + b;
a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
xcevap[inds].HelpKeyword := (Copy(str, b + 1, a - 1));
xcevap[inds].Font.Name := 'courier new';
xcevap[inds].Font.Size := 6;
end else if welc = 'T' then // cevaplar ikinci bölüm...
begin
YCevapA[inds].Alan_Adi := (Copy(str, b + 1, a - 1));
if not Assigned(ycevap[inds]) then
begin
ycevap[inds] := Tqrlabel.Create(FmKarneDruckTum);
ycevap[inds].ParentReport := FmKarneDruckTum.Qr1;
ycevap[inds].Parent := FmKarneDruckTum.QRBand1;
ycevap[inds].Enabled := true;
ycevap[inds].Visible := true;
ycevap[inds].Font.Size := 9;
ycevap[inds].Font.color := clblack;
end else
begin
ycevap[inds].Free;
ycevap[inds] := nil;
end;
b := a + b;
a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
b := a + b;
a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
ycevap[inds].size.Left := strtoint(Copy(str, b + 1, a - 1)) / GlobPixPerMMX;
b := a + b;
a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
ycevap[inds].size.Top := strtoint(Copy(str, b + 1, a - 1)) / GlobPixPerMMY;
b := a + b;
a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
ycevap[inds].Tag := strtoint(Copy(str, b + 1, a - 1));
b := a + b;
a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
ycevap[inds].HelpKeyword := (Copy(str, b + 1, a - 1));
ycevap[inds].Font.Name := 'courier new';
ycevap[inds].Font.Size := 6;
end else if welc = 'G' then // grafikler... inds 1'deb 4 ' e kadar 1nci bölüm...
begin
if inds = 1 then
begin
QRImage1.enabled := true;
b := a + b;
a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
b := a + b;
a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
QRImage1.size.Left := strtoint(Copy(str, b + 1, a - 1)) / GlobPixPerMMX;
b := a + b;
a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
QRImage1.size.Top := strtoint(Copy(str, b + 1, a - 1)) / GlobPixPerMMy;
end else if inds = 2 then
begin
QRImage2.enabled := true;
QRImage2.Picture.Bitmap := fmkarnex.tc2.TeeCreateBitmap(clWhite, fmkarnex.tc1.BoundsRect);
b := a + b;
a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
b := a + b;
a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
QRImage2.size.Left := strtoint(Copy(str, b + 1, a - 1)) / GlobPixPerMMX;
b := a + b;
a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
QRImage2.size.Top := strtoint(Copy(str, b + 1, a - 1)) / GlobPixPerMMy;
end else if (inds = 3) then
begin
QRImage3.enabled := true;
QRImage3.Picture.Bitmap := fmkarnex.tc3.TeeCreateBitmap(clWhite, fmkarnex.tc1.BoundsRect);
b := a + b;
a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
b := a + b;
a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
QRImage3.size.Left := strtoint(Copy(str, b + 1, a - 1)) / GlobPixPerMMX;
b := a + b;
a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
QRImage3.size.Top := strtoint(Copy(str, b + 1, a - 1)) / GlobPixPerMMy;
end else if (inds = 4) then
begin
QRImage4.enabled := true;
QRImage4.Picture.Bitmap := fmkarnex.tc4.TeeCreateBitmap(clWhite, fmkarnex.tc1.BoundsRect);
b := a + b;
a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
b := a + b;
a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
QRImage4.size.Left := strtoint(Copy(str, b + 1, a - 1)) / GlobPixPerMMX;
b := a + b;
a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
QRImage4.size.Top := strtoint(Copy(str, b + 1, a - 1)) / GlobPixPerMMy;
end else if (inds = 5) and (RadioGroup1.ItemIndex = 0) then
begin
QRImage5.enabled := true;
QRImage5.Picture.Bitmap := fmkarnex.tc1.TeeCreateBitmap(clWhite, fmkarnex.tc1.BoundsRect);
b := a + b;
a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
b := a + b;
a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
QRImage5.size.Left := strtoint(Copy(str, b + 1, a - 1)) / GlobPixPerMMX;
b := a + b;
a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
QRImage5.size.Top := strtoint(Copy(str, b + 1, a - 1)) / GlobPixPerMMy;
end else if (inds = 6) and (RadioGroup1.ItemIndex = 0) then
begin
QRImage6.enabled := true;
QRImage6.Picture.Bitmap := fmkarnex.tc2.TeeCreateBitmap(clWhite, fmkarnex.tc1.BoundsRect);
b := a + b;
a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
b := a + b;
a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
QRImage6.size.Left := strtoint(Copy(str, b + 1, a - 1)) / GlobPixPerMMX;
b := a + b;
a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
QRImage6.size.Top := strtoint(Copy(str, b + 1, a - 1)) / GlobPixPerMMy;
end else if (inds = 7) and (RadioGroup1.ItemIndex = 0) then
begin
QRImage7.enabled := true;
QRImage7.Picture.Bitmap := fmkarnex.tc3.TeeCreateBitmap(clWhite, fmkarnex.tc1.BoundsRect);
b := a + b;
a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
b := a + b;
a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
QRImage7.size.Left := strtoint(Copy(str, b + 1, a - 1)) / GlobPixPerMMX;
b := a + b;
a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
QRImage7.size.Top := strtoint(Copy(str, b + 1, a - 1)) / GlobPixPerMMy;
end else if (inds = 8) and (RadioGroup1.ItemIndex = 0) then
begin
QRImage8.enabled := true;
QRImage8.Picture.Bitmap := fmkarnex.tc4.TeeCreateBitmap(clWhite, fmkarnex.tc1.BoundsRect);
b := a + b;
a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
b := a + b;
a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
QRImage8.size.Left := strtoint(Copy(str, b + 1, a - 1)) / GlobPixPerMMX;
b := a + b;
a := Pos(',', Copy(str, b + 1, Length(str) - (b)));
QRImage8.size.Top := strtoint(Copy(str, b + 1, a - 1)) / GlobPixPerMMy;
end;
end;
end;
end;
Dm1.QSonuc.First;
Application.ProcessMessages;
GlobNeeddata := true;
if rg1.ItemIndex = 0 then FmKarneDrucktum.Qr1.Preview
else
FmKarneDrucktum.Qr1.Print;
end;