Drucken

  • Delphi

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Hallo,
    ich versuche im moment verzweifelt delphi dazu zu bringen etwas an einem drucker zu drucken. die lpt ansteuerung an sich geht, nur mach ich scheinbar was mit der reihenfolge falsch.

    Quellcode

    1. procedure TForm1.bt_sendClick(Sender: TObject);
    2. var i: integer;
    3. begin
    4. for i:=1 to length(ed_send.Text) do begin
    5. LPT.writePort($378, Ord(ed_send.Text[i]));
    6. pause(100);
    7. LPT.writePort($378+1, $00);
    8. pause(100);
    9. LPT.writePort($378+1, $01);
    10. LPT.writePort($378, $00);
    11. pause(100);
    12. end;
    13. end;
    Alles anzeigen


    was mach ich falsch? kennt jemand ein tutorial oder hat zufällig quellcode? ich suche aber kein tutorial für LPT ansteuern, wiegesagt, das geht alles perfekt... nur der drucker fühlt sich nicht angesprochen und bis auf 1 LED die angeht wenn ich strobe setzte passiert null....
    danke

    langer hans
  • Hi, also an deiner stelle würde ich versuchen das problem ganz anders anzugehen ich würde zu erst auf die idee kommen das windows ( denk ma wirst du als betriebssystem haben) eine eigene Druckerverwaltung besitz warum versuchte nich ganz einfach einem bestimmten drucker einen druckauftrag zu übergeben fände ich einfacher als den drucker dierekt an zu steuern.

    Und du wirst doch sicherlich über Internet verfügen, da gibt es eine recht weit verbreitete Suchmaschien "google" ich hab da mal --> "delphie drucker ansteuern tutorial" eingegeb und bin auf z.B. diese vieleicht ganz nützliche seite gekommen Drucker LPT mit Delphi ansteuern ich denk auch mal das für dich allgemein diese Seite ganz hilfreich sein kann auch für weitere Projekte

    MFG

    Chris2603
  • Danke erstmal!
    Aber:

    Erstens will ich es direkt aus delphi heraus machen. zweitens hab ich gegoogelt und "delphi drucker ansteuern tutorial" bringt nicht viel da ich ja weis wie man den LPT ansteuert...
    Nur die signale/reichenfolge und so hab ich eben nicht...

    mfg
  • Hallo langer hans,

    ich habe vor ein paar Jahren mal eine Kasernenverwaltung mit Druck-Unterstützung programmiert und mir im Programm dann beim Klick auf "Drucken" das standard-Druckfenster anzeigen lassen und dann folgendes:

    Quellcode

    1. units ..., Printers;
    2. [...]
    3. if PrintDialog1.Execute then // Nach dem Beendigen des Druckdialoges...
    4. begin
    5. Printer.BeginDoc; // Druckauftrag wird begonnen.
    6. Printer.Title:='Soldat drucken'; // Titel des Auftrage, der im Druckmanager angezeigt wird.
    7. Breite:=GetDeviceCaps(Printer.Canvas.Handle, HORZSIZE)*10; // Blattbreite in 1/10 Millimeter verwenden
    8. LinkerRand:=250; // Breite des linken Randes (2,5cm)
    9. ObererRand:=250; // Breite des oberen Randes (2,5cm)
    10. x:=LinkerRand; // x-Anfangskoordinate werden festgelegt.
    11. y:=ObererRand*-1; // Ursprung ganz oben Links am Blatt.
    12. SetMapMode(Printer.Canvas.Handle, MM_LOMETRIC); // Allgemeine Umstellung auf 1/10 Millimeter
    13. Printer.Canvas.Font.[Schrifteinstellungen]
    14. Printer.Canvas.TextOut(x, y, 'Persönliche Daten'); // Textausgabe bei den Koordinaten x und y. Um auf der Seite weiter nach unten zu kommen muss y jetzt immer negativer werden.
    15. Printer.EndDoc; // Dokument wird gedruckt
    Alles anzeigen



    Ich hoffe du kannst damit etwas anfangen, ich erinnere mich auch nur noch daran, dass das mit dem Erlernen für mich eine Heidenarbeit war. Scheint wohl einfacher mit dafür gedachten Programmen wie "Rave Reports" zu sein, aber das ist nur finanziell erhältlich (oder du lädst bei mir notgedrungen die ganze Delphi-2007-Version herunter, da ist es auch dabei).

    Viel Glück damit, halte uns am besten über dein Fortschritte auf dem Laufenden,

    Palad :bing:
  • Vielen dank erstmal!
    Problem ist folgendes:
    Ich will die Schnittstelle selbst programmieren.
    Dafür habe ich eine Klasse die es mir erlaubt auf bestimmte Hardware-Adressen direkt zu schreiben ($378 für den LPT).

    Wenn ich an den LPT nun ein Steuergerät für LEDs hänge, leuchten auch die entsprechenden schön...
    Allerding braucht der Drucker auch etwas Vorlauf um dann zu drucken. Es müssen bestimmte Steuersignale gesetzt werden (Strobe....).
    Mir geht es jetzt um die zeitliche Abfolge der Signale die der Drucker braucht um zu arbeiten.

    Ich hoffe das war jetzt verständlich :P

    mfg