| Author |
Topic  |
|
|
Fábio Nascimento
 
Brazil
77 Posts |
Posted - Sep 18 2025 : 10:30:54
|
Hi
Does ImageENMView.Checkboxes and PrintPreviewParams.PrintSelected work together?
I'm using ImageENMView to show a Multipage Tiff file and I'd like the user to be able to select the pages to print using the checkboxes.
But when I code:
imgThumbs.MIO.PrintPreviewParams.PrintSelected := True;
imgThumbs.MIO.DoPrintPreviewDialog('Imprimir', True, 'Visualizar Impressão', False);
I prints all the pages regardless it's checked (which I tought means selected).
In my old system, I had to use a listbox with the page numbers, create a new PrintImageENMView, loop through the pages checkboxes and code PrintImageENMView.SetIEBitmapEx(iIndex, iIEBitmap); in order to print only the selected pages in the listbox.
I think theres a better way to achieve that?
What am I missing?
Thanks! |
|
|
xequte
    
39279 Posts |
Posted - Sep 18 2025 : 11:08:57
|
Hi
PrintSelected only makes the printing selection combobox default to "Print Selected".
Calling imgThumbs.MIO.DoPrintPreviewDialog() will carry the selection over from imgThumbs, but only the regular selection, not checkboxes. So you should convert your checkbox selection to a normal selection prior to calling DoPrintPreviewDialog().
Please see the example at:
http://www.imageen.com/help/TImageEnMView.Checked.html
I'll look at making it handle checkbox selection automatically in the next update.
Nigel Xequte Software www.imageen.com
|
 |
|
|
Fábio Nascimento
 
Brazil
77 Posts |
Posted - Sep 18 2025 : 13:41:59
|
Ah ok cool xequte.
I wrote a helper for that:
procedure TImageEnMViewHelper.PrintCheckedImages;
var
I: Integer;
LWasMultiSelect: Boolean;
begin
LWasMultiSelect := Self.EnableMultiSelect;
LockUpdate;
try
EnableMultiSelect := True;
Deselect;
BeginSelectImages(True);
for I := 0 to ImageCount - 1 do
if Checked[I] then
SelectedImage := I;
EndSelectImages;
if CheckedCount > 0 then
MIO.PrintPreviewParams.PrintSelected := True;
MIO.DoPrintPreviewDialog('Imprimir', True, 'Visualizar Impressão', False);
finally
EnableMultiSelect := LWasMultiSelect;
UnlockUpdate;
end;
end;
But this way even though it carries on the checked pages as selection, it shows all the pages..
I'd like to add an option to show only the checked images on the PrintPreviewDialog instead, is that possible?
Thanks
Fábio |
 |
|
|
Fábio Nascimento
 
Brazil
77 Posts |
Posted - Sep 18 2025 : 14:16:31
|
| I tried using Filter but it seens that DoPrintPreviewDialog does not care about that and shows all pages regardless. |
 |
|
|
Fábio Nascimento
 
Brazil
77 Posts |
Posted - Sep 18 2025 : 17:52:04
|
I did it now the same way that I did in 2016:
procedure TImageEnMViewHelper.PrintAllOrCheckedPages;
var
TempView: TImageEnMView;
I, PaginaAtual: Integer;
ieBmp: TIEBitmap;
begin
if Self.ImageCount = 0 then begin
ShowAlerta('Nenhuma imagem sendo exibida para ser impressa!');
Exit;
end;
if Self.CheckedCount = 0 then
Self.MIO.DoPrintPreviewDialog('Imprimir', True, 'Visualizar Impressão', False)
else begin
PaginaAtual := Self.SelectedImage;
ieBmp := TIEBitmap.Create;
TempView := TImageEnMView.Create(nil);
TempView.MIO.PrintPreviewParams.DlgMaximized := True;
TempView.MIO.PrintPreviewParams.MarginTop := 0;
TempView.MIO.PrintPreviewParams.MarginLeft := 0;
TempView.MIO.PrintPreviewParams.MarginRight := 0;
TempView.MIO.PrintPreviewParams.MarginBottom := 0;
TempView.AnnotationsVisible := True;
Self.LockUpdate;
try
for I := 0 to Self.ImageCount - 1 do begin
Self.SelectedImage := I;
if Self.Checked[i] then begin
ieBmp.AssignImage(Self.IEBitmap);
TempView.InsertImage(TempView.ImageCount,ieBmp);
end;
end;
TempView.SelectedImage := 0;
TempView.MIO.DoPrintPreviewDialog('Imprimir', True, 'Visualizar Impressão', False);
finally
ieBmp.Free;
TempView.Free;
Self.SelectedImage := PaginaAtual;
Self.UnlockUpdate;
end;
end;
end;
When you can, please let me know if there's a better way to do that!
Also, I'll work mainly with the checkbox for selection, so DeleteSelectedImages will not work too, I'll have to create a helper SelectCheckedPages I guess, would be nice to have a way to use the checks or the selection itself.
Thanks!
|
 |
|
|
xequte
    
39279 Posts |
Posted - Sep 19 2025 : 01:52:27
|
Hi
Yes, that looks the best way to show only checked images.
Perhaps there should be some way to make checkboxes function like regular selections. I'll look into that.
Also, maybe filtering (e.g. by checked status) should be possible to only show the checked images (and be applied in the print dialog). I'll look into that too.
Nigel Xequte Software www.imageen.com
|
 |
|
|
Fábio Nascimento
 
Brazil
77 Posts |
Posted - Sep 19 2025 : 06:45:56
|
| Hi xequte, thanks! |
 |
|
|
xequte
    
39279 Posts |
Posted - Oct 12 2025 : 22:51:17
|
Hi Fabio
In the current beta, we now use checkboxes rather than selections in the print dialogs, and it will automatically inherit a checkbox selection if it is active.
Please email me to test the beta.
Nigel Xequte Software www.imageen.com
|
 |
|
| |
Topic  |
|