Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Guardar el resultado en un String (https://www.clubdelphi.com/foros/showthread.php?t=65199)

caifan_0883 27-11-2009 02:14:53

Guardar el resultado en un String
 
Que tal compañeros foreros:

Aqui tengo una cuestion que a lo mejor es sencilla pero yo no doy con bolas, por eso acudo a ustedes.

Encontre un codigo el cual saca el nombre de la impresora predeterminada. Pero esta la muestra con un messagebox, el detalle es que lo quiero guardar en una variable tipo string. Les dejo el codigo saludos..

Código:

procedure TForm1.Button1Click(Sender: TObject);
 var
    Size,Count,Index:Cardinal;
    Items: array[0..2047] of TPrinterInfo5;
    Default:array[0..255] of char;

 begin
  EnumPrinters(PRINTER_ENUM_LOCAL+PRINTER_ENUM_CONNECTIONS,nil,5,@items,Sizeof(Items),Size,Count);
    GetProfileString('Windows','Device','',@default,sizeof(Default)-1);
    Index:=0; While Not (Default [Index] in [#0,',']) do Inc(Index);
    Default[Index]:=#0;

    For Index:=0 to Count-1 do
      If not Longbool(lstrcmp(@default,Items[Index].pPrinterName)) Then
        Begin
              Messagebox(Handle,Items[Index].PPortname,nil,0);
              Messagebox(Handle,Items[Index].pPrinterName,Nil,0);
        End;
 end;

En si lo que aparece en el Messagebox quisiera guardarlo en la variable string..

Saludos y gracias anticipadas.

ElKurgan 27-11-2009 07:34:20

[quote=caifan_0883;347555]
Código:

procedure TForm1.Button1Click(Sender: TObject);
 var
    Size,Count,Index:Cardinal;
    Items: array[0..2047] of TPrinterInfo5;
    Default:array[0..255] of char;
 
 begin
  EnumPrinters(PRINTER_ENUM_LOCAL+PRINTER_ENUM_CONNECTIONS,nil,5,@items,Sizeof(Items),Size,Count);
    GetProfileString('Windows','Device','',@default,sizeof(Default)-1);
    Index:=0; While Not (Default [Index] in [#0,',']) do Inc(Index);
    Default[Index]:=#0;
 
    For Index:=0 to Count-1 do
      If not Longbool(lstrcmp(@default,Items[Index].pPrinterName)) Then
        Begin
              Messagebox(Handle,Items[Index].PPortname,nil,0);
              Messagebox(Handle,Items[Index].pPrinterName,Nil,0);
        End;
 end;

... ¿Y no te sirve con hacer simplemente esto?
Código:

  MiImpresora := String(Items[Index].pPrinterName);
Saludos

Caro 27-11-2009 13:51:40

Hola caifan_0883, como te han indicado, es solo asignar lo que tienes en PPortname y pPrinterName a tus variables.

Código Delphi [-]
var
 Puerto, Impresora : String;
   .......................................
   .......................................
   For Index:=0 to Count-1 do
       If not Longbool(lstrcmp(@default,Items[Index].pPrinterName)) Then
         Begin
           Puerto := Items[Index].PPortname;
           Impresora := Items[Index].pPrinterName;
         End;
    .......................................

Saluditos

caifan_0883 28-11-2009 01:09:16

Gracias compañeros..


Andaba un poco perdido jejeje.

Estaba en mi momento de bloqueo. Gracias funciona.


Saludos!!


La franja horaria es GMT +2. Ahora son las 22:46:16.

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