Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   Usar TPrinter con Builder 6 (https://www.clubdelphi.com/foros/showthread.php?t=88237)

Angel.Matilla 05-05-2015 13:17:20

Usar TPrinter con Builder 6
 
Estoy usando este código
Código PHP:

TPrinter *imp Printer();
for(
int x=0;x<imp>Printers->Count-1;x++) 
     
ComboBox1->->Items->Add(imp->Printers->Strings[x]); 

para sacar la lista de impresoras que hay en un sistema. Si lo pongo solo en un formulario nuevo limpio compila y se ejecuta sin problema, pero si lo incluyo dentro del código de otro formulario como por ejemplo así:
Código PHP:

Query->Close();
Query->SQL->Text "INSERT INTO 'Instalacion.db' (Etiqueta, Valor, Literal) "
                   "VALUES (:Etiqueta, :Valor, :Literal)"
;
Query->ParamByName("Etiqueta")->AsString "Situacion";
Query->ParamByName("Valor")->AsInteger   99;
Query->ParamByName("Literal")->AsString  "Baja";
try
{
     
Query->ExecSQL();
}
catch(...)
{
     return 
false;
}
TPrinter *imp Printer();[/code]me da un error [b]E2314 Call of nonfunction[/ben la línea del TPrintery según la ayuda

El nombre que se llama no se declara como una función.
Esto es comúnmente causado porque se declara la función de forma incorrecta o una falta de ortografía del nombre de la función.[/quote]He probado poniendo el include <Printers.hpp>, pero da lo mismo.

ecfisa 05-05-2015 16:01:03

Hola Angel.Matilla.


Te hago dos observaciones:
La primera es que podes usar Printer() de forma directa ya que devuelve una instancia global de TPrinter.
La segunda, dado que la propiedad Printers es de tipo TStrings, es sobre el modo de asignación al TComboBox.

Tu código se puede resumir a:
Código PHP:

#include <printers.hpp>

void __fastcall TForm1::FormCreate(TObject *Sender) {
  
ComboBox1->Items->Assign(Printer()->Printers);
  ...


En cuanto al error que te provoca el código
Código PHP:

TPrinterprn Printer(); 

no lo he podido reproducir en ninguna situación.

Es decir, no me provoca inconvenientes agregarlo en cualquier form de un proyecto, ¿ Hay involucrado algún otro código que pudiera estar provocándolo ?

Saludos :)

Angel.Matilla 05-05-2015 18:17:15

Cita:

Empezado por ecfisa (Mensaje 491908)
Código PHP:

#include <printers.hpp>

void __fastcall TForm1::FormCreate(TObject *Sender) {
  
ComboBox1->Items->Assign(Printer()->Printers);
  ...



Perfecto. Muchas gracias
Cita:

Empezado por ecfisa (Mensaje 491908)
En cuanto al error que te provoca el código
Código PHP:

TPrinterprn Printer(); 

no lo he podido reproducir en ninguna situación.

Es decir, no me provoca inconvenientes agregarlo en cualquier form de un proyecto, ¿ Hay involucrado algún otro código que pudiera estar provocándolo ?

Saludos :)

Lo del código también me sorprende a mi. En donde lo he probado lo que hay son varias ejecuciones de un TQuery normal y corriente, similares al código que he puesto. Tampoco lo entiendo yo.


La franja horaria es GMT +2. Ahora son las 02:32:48.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi