- Megdöntheti az iPhone 4 rekordját az iPhone 17
- Megjött a jubileumi Pixel széria
- Elalmásodik a Xiaomi: 100 wattos töltéssel érkezik a 16 Pro Max
- Akciófigyelő: Megnyílt a Xiaomi hivatalos magyar webáruháza
- Az iPhone a mobilpiac katalizátora
- Bemutatkozott a Poco X7 és X7 Pro
- Redmi Note 13 Pro 5G - nem százas, kétszázas!
- Xiaomi 15 - kicsi telefon nagy energiával
- iPhone topik
- Fotók, videók mobillal
Új hozzászólás Aktív témák
-
tusi74
őstag
Eddig én is eljutottam, csak nem jövök, rá, melyik kódot hová kell
copy-paste-zni, hogy működjön.
Eddig, ha így szereztem kódot, akkor egyértelmű volt, hogy melyik eseményhez
melyik eljárást kell írni. De most pl. Van külön type stb, és nem tudom beilleszteni
az én programomba.
type
TrecPrintStrGrid = Record
PrCanvas : TCanvas; //Printer or PaintBox Canvas
sGrid: TStringGrid; //StringGrid containing data
sTitle: String; //Title of document
bPrintFlag : Boolean; //Print if True
ptXYOffset : TPoint; //Left and Top margins
ftTitleFont : TFont; //Font for Title
ftHeadingFont : TFont; //Font for Heading row
ftDataFont : TFont; //Font for Data
bBorderFlag : Boolean //Print border if True
end;
var
recPrintStrGrid : TrecPrintStrGrid;
procedure PrintGrid(ArecPrintStrGrid : TrecPrintStrGrid);
var
iX1, iX2, iY1, iY2, iY3, iTmp , iLoop, iWd : Integer;
trTextRect : TRect;
begin
iWd := 0;
with ArecPrintStrGrid, PrCanvas do
begin
//Calculate Total Width of String Grid
Font := ftHeadingFont;
for iLoop := 0 to sGrid.ColCount-1 do
begin
if (TextWidth(sGrid.Cells[iLoop, 0])+5) < sGrid.ColWidths[iLoop] then
iWd := iWd + sGrid.ColWidths[iLoop]
else
iWd := iWd + TextWidth(sGrid.Cells[iLoop, 0])+5;
end; // for sGrid.ColCount
//Initialize Printer
if bPrintFlag then
begin
Printer.Title := sTitle;
Printer.BeginDoc;
end;
//Output Title
Pen.Color := clBlack;
Font := ftTitleFont;
TextOut(((iWd Div 2) - (TextWidth(sTitle) Div 2)), ptXYOffset.Y, sTitle);
//Output Column Data
for iLoop := 0 to sGrid.ColCount-1 do
begin
Font := ftHeadingFont;
iX1 := ptXYOffset.X;
for iTmp := 0 to (iLoop-1) do
if (TextWidth(sGrid.Cells[iTmp, 0])+5) < (sGrid.ColWidths[iTmp]) then
iX1 := iX1 + (sGrid.ColWidths[iTmp])
else
iX1 := iX1 + TextWidth(sGrid.Cells[iTmp, 0])+5;
iY1 := ptXYOffset.Y + ((TextHeight('Ag')+5) * 2);
iX2 := ptXYOffset.X;
for iTmp := 0 to iLoop do
if (TextWidth(sGrid.Cells[iTmp, 0])+5) < (sGrid.ColWidths[iTmp]) then
iX2 := iX2 + (sGrid.ColWidths[iTmp])
else
iX2 := iX2 + TextWidth(sGrid.Cells[iTmp, 0])+5;
iY2 := iY1 + TextHeight('Ag');
trTextRect := Rect(iX1, iY1, iX2, iY2);
TextRect(trTextRect, trTextRect.Left+5, trTextRect.Top+3, sGrid.Cells[iLoop, 0]);
Brush.Color := clWhite;
if bBorderFlag then FrameRect(trTextRect);
Brush.Style := bsClear;
//Output Row Data
Font := ftDataFont;
iY1 := iY2;
iY3 := TextHeight('Ag')+5;
for iTmp := 1 to sGrid.RowCount-1 do
begin
iY2 := iY1 + iY3;
trTextRect := Rect(iX1, iY1, iX2, iY2);
TextRect(trTextRect, trTextRect.Left+5, trTextRect.Top+3, sGrid.Cells[iLoop, iTmp]);
Brush.Color := clBlack;
if bBorderFlag then FrameRect(trTextRect);
Brush.Style := bsClear;
iY1 := iY1 + iY3;
end; // for sGrid.RowCount-1 do
end; // for sGrid.ColCount-1
if bPrintFlag then Printer.EndDoc;
end; // with ArecPrintStrGrid, prCanvas
end; { PrintGrid }
procedure TfrmSamp.buPrintClick(Sender: TObject);
begin
with recPrintStrGrid do
begin
PrCanvas := pbPreview.Canvas;
sGrid := stgData;
sTitle := 'Print of String Grid';
bPrintFlag := False;
ptXYOffset.X := 10;
ptXYOffset.Y := 100;
ftTitleFont := TFont.Create;
with ftTitleFont do
begin
Name := 'Arial';
Style := [fsBold, fsItalic, fsUnderLine];
Size := 14;
end;
ftHeadingFont := TFont.Create;
with ftHeadingFont do
begin
Name := 'Arial';
Style := [fsBold];
Size := 12;
end;
ftDataFont := TFont.Create;
with ftDataFont do
begin
Name := 'Arial';
Style := [];
Size := 10;
end;
bBorderFlag := True;
end; //with recPrintStrGrid do
PrintGrid(recPrintStrGrid);
end;
Új hozzászólás Aktív témák
- Milyen széket vegyek?
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- VR topik (Oculus Rift, stb.)
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Megdöntheti az iPhone 4 rekordját az iPhone 17
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- PROHARDVER! feedback: bugok, problémák, ötletek
- No Man's Sky - Befutott a Voyagers frissítés
- Kerékpárosok, bringások ide!
- A fociról könnyedén, egy baráti társaságban
- További aktív témák...
- 1-7 gen M2 Ax201/9560cnvi/9260/8260/8265/7265ngw/xmm7560/L860 GL/ac 7260hmw mxm 3.0A GTX1070 P3200
- iBasso DC Elite
- Lenovo P510 - 1650-2680 v4 akár 14 mag/28 szál, 32GB DDR4 RAM, akár M4000 8GB VGA, számla, 6 hó gar
- Intel Core I9 14900F - 24mag/32szál - Új, Gari 2030.08.27. -ig - Eladó!
- Intel Core Ultra 7 265K - Új, Gari 2028.09.27. -ig - Eladó!
- Keychrone Q1 V2 billentyűzet / Számla / Garancia /
- ÁRGARANCIA!Épített KomPhone i5 13400F 16/32/64GB RAM RTX 5060 Ti 8GB GAMER PC termékbeszámítással
- GYÖNYÖRŰ iPhone 12 mini 128GB Blue -1 ÉV GARANCIA - Kártyafüggetlen, MS3195, 95% Akkumulátor
- HIBÁTLAN iPhone 13 mini 128GB Starlight -1 ÉV GARANCIA - Kártyafüggetlen, MS3276
- Telefon felvásárlás!! Samsung Galaxy Note 10+/Samsung Galaxy Note 20/Samsung Galaxy Note 20 Ultra
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft.
Város: Budapest
Cég: FOTC
Város: Budapest