AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein FreePascal [gelöst] Lazarus: StringGrid drucken

[gelöst] Lazarus: StringGrid drucken

Ein Thema von Kralle · begonnen am 18. Feb 2015 · letzter Beitrag vom 19. Feb 2015
Antwort Antwort
Seite 2 von 5     12 34     Letzte » 
BadenPower

Registriert seit: 17. Jun 2009
616 Beiträge
 
#11

AW: Lazarus: StringGrid drucken

  Alt 18. Feb 2015, 16:45
So, jetzt habe ich den anderen Code eingebunden und bei dem kennt Lazarus
GetDeviceCaps nicht.
Du musst die "Windows" in die Uses-klausel aufnehmen.
Programmieren ist die Kunst aus Nullen und Einsen etwas sinnvollen zu gestalten.
Der bessere Künstler ist allerdings der Anwender, denn dieser findet Fehler, welche sich der Programmierer nicht vorstellen konnte.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.533 Beiträge
 
Delphi 11 Alexandria
 
#12

AW: Lazarus: StringGrid drucken

  Alt 18. Feb 2015, 16:47
Bei BeginDoc kommt eine Exception, weil sich der Status auf Drucken ändert? Das kann ich kaum glauben. Natürlich ist auch Lazarus nicht fehlerfrei (genau wie Delphi), aber das wäre schon ein dicker Hund.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Kralle

Registriert seit: 31. Okt 2004
Ort: Bremerhaven
349 Beiträge
 
Delphi XE7 Professional
 
#13

AW: Lazarus: StringGrid drucken

  Alt 18. Feb 2015, 16:48
Moin,

Die Unit Windows (oder wie die auch sonst heißen mag) ist eingebunden?
Ähh, Nein. Wenn ich die einbinde, dann knallt es in der Suchroutine.

Gruß Heiko
OS: Linux Mint 20 Cinnamon (64-Bit), Windows 10 Professional, Delphi XE7 Pro SP1 +(Mobilpack & FireDAC), Lazarus 2.1 (Freepascal 3.3.1),
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.533 Beiträge
 
Delphi 11 Alexandria
 
#14

AW: Lazarus: StringGrid drucken

  Alt 18. Feb 2015, 16:49
Was denn für eine Suchroutine? Ich kann Dir nicht folgen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Kralle

Registriert seit: 31. Okt 2004
Ort: Bremerhaven
349 Beiträge
 
Delphi XE7 Professional
 
#15

AW: Lazarus: StringGrid drucken

  Alt 18. Feb 2015, 16:51
Moin,

Du musst die "Windows" in die Uses-klausel aufnehmen.
Dann meint Lazarus
Zitat:
unit1.pas(183,24) Error: Incompatible type for arg no. 1: Got "TSearchRec", expected "LongWord"
Und zwar hier :   FindClose (FindRecord);
OS: Linux Mint 20 Cinnamon (64-Bit), Windows 10 Professional, Delphi XE7 Pro SP1 +(Mobilpack & FireDAC), Lazarus 2.1 (Freepascal 3.3.1),
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.533 Beiträge
 
Delphi 11 Alexandria
 
#16

AW: Lazarus: StringGrid drucken

  Alt 18. Feb 2015, 16:52
Ah, sag das doch gleich. Qualifizier das mal mit
SysUtils.FindClose(FindRecord); [edit] Oder Windows vor SysUtils einbinden, sollte auch funktionieren. [/edit]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Kralle

Registriert seit: 31. Okt 2004
Ort: Bremerhaven
349 Beiträge
 
Delphi XE7 Professional
 
#17

AW: Lazarus: StringGrid drucken

  Alt 18. Feb 2015, 16:53
Moin,

Was denn für eine Suchroutine? Ich kann Dir nicht folgen.
Delphi-Quellcode:
Procedure FindFiles (aPath, aFindMask: String; aWithSub: Boolean; aResult: tStrings);
Var
  FindRecord: tSearchRec;
  tempstr: String;
Begin
     //
     Form1.StatusBar1.SimpleText:='Starte die Suche ...';

     //
     // Quelle: http://www.entwickler-ecke.de/topic_nach+Dateien+suchen_1107,0.html
     //
     // Wenn die Stringliste nil ist oder aPath oder aFind nicht angegeben ist
  // dann raus
  If (aPath = '') or (aFindMask = '') or Not Assigned (aResult) Then
    Exit;

  // Wenn am Ende der Pfadangabe noch kein \ steht, dieses hinzufügen
  // (Oder die Funktion IncludeTrailingPathDelimiter aus der Unit SysUtils.pas verwenden)
  If aPath[Length (aPath)] <> '\Then
    aPath := aPath + '\';

  // Im aktuellen Verzeichnis nach der Datei suchen
  If FindFirst (aPath + aFindMask, faAnyFile, FindRecord) = 0 Then
    Repeat
      begin

         If (FindRecord.Name <> '.') and (FindRecord.Name <> '..') Then

        // ...Ergebnis in die Stringlist einfügen
        // Gesammter Zugriffspfad incl. Dateiname und Extention darf nicht länger als 160 Zeichen sein
        if length(aPath + FindRecord.Name) > 160 then
          Begin
               tempstr:= aPath + ','+ FindRecord.Name +',Zugriffpfad zu lang! Länge: '+InttoStr(length(aPath + FindRecord.Name))+' (max. 160)';
               aResult.Add (tempstr);
          end;
       // Probleme bei der erneuten Archivierung
      if length(aPath + FindRecord.Name)+40 > 160 then
        Begin
             tempstr:= aPath + ','+ FindRecord.Name +',Erneute Archivierung nicht möglich!';
             aResult.Add (tempstr);
        end;

      // Der Dateiname darf nicht länger als 32 Zeichen sein
          if length(FindRecord.Name) > 32 then
          Begin
               tempstr:= aPath + ','+ FindRecord.Name +',Projektname zulang! Länge: '+InttoStr(length(FindRecord.Name))+' (max. 32)';
               aResult.Add (tempstr); //(aPath + FindRecord.Name);
          end;
          // Der Pfad darf nicht länger als 128 Zeichen sein
          if length(aPath) > 128 then
          Begin
               tempstr:= aPath + ','+ FindRecord.Name +',Projektpfad zulang! Länge: '+InttoStr(length(aPath))+' (max. 128)';
               aResult.Add (tempstr); //(aPath + FindRecord.Name);
          end;
          // Es dürfen nur bestimmte Zeichen im Dateinamen sein
          if HatStringSonderzeichen(KillExt(FindRecord.Name)) then
          Begin
               tempstr:= FindRecord.Name +',Sonderzeichen im Projektnamen!!!';
               aResult.Add (aPath+','+tempstr); //(aPath + FindRecord.Name);
          end;
      Form1.StatusBar1.SimpleText:='Suche ...';
      Form1.StatusBar1.Refresh;

         end;

      Until FindNext (FindRecord) <> 0;

  FindClose (FindRecord);

  // Wenn nicht in Unterverzeichnissen gesucht werden soll dann raus
  If Not aWithSub Then
    Exit;

  // In Unterverzeichnissen weiter suchen
  If FindFirst (aPath + '*.*', faAnyFile, FindRecord) = 0 Then
    Repeat
      If (FindRecord.Name <> '.') and (FindRecord.Name <> '..') Then
        // Feststellen, ob es sich um ein Verzeichnis handelt
        If Boolean (FindRecord.Attr and faDirectory) Then
          // Funktion erneut aufrufen, um Verzeichnis zu durchsuchen (Rekursion)
          FindFiles (aPath + FindRecord.Name, aFindMask, aWithSub, aResult);
    Until FindNext (FindRecord) <> 0;

   FindClose (FindRecord);
        Form1.StatusBar1.SimpleText:='Die Suche ist Beendet';
End;
Gruß Heiko
OS: Linux Mint 20 Cinnamon (64-Bit), Windows 10 Professional, Delphi XE7 Pro SP1 +(Mobilpack & FireDAC), Lazarus 2.1 (Freepascal 3.3.1),
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.533 Beiträge
 
Delphi 11 Alexandria
 
#18

AW: Lazarus: StringGrid drucken

  Alt 18. Feb 2015, 16:55
Siehe meine letzte Antwort, da haben sich die Posts überschnitten.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Kralle

Registriert seit: 31. Okt 2004
Ort: Bremerhaven
349 Beiträge
 
Delphi XE7 Professional
 
#19

AW: Lazarus: StringGrid drucken

  Alt 18. Feb 2015, 16:57
Moin,
Ah, sag das doch gleich. Qualifizier das mal mit
SysUtils.FindClose(FindRecord); [edit] Oder Windows vor SysUtils einbinden, sollte auch funktionieren. [/edit]
Habe ich gemacht. Jetzt hängt es wieder beim Drucken:
   TR := Rect(X1,
Zitat:
unit1.pas(252,18) Fatal: Syntax error, ")" expected but "," found
OS: Linux Mint 20 Cinnamon (64-Bit), Windows 10 Professional, Delphi XE7 Pro SP1 +(Mobilpack & FireDAC), Lazarus 2.1 (Freepascal 3.3.1),
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.533 Beiträge
 
Delphi 11 Alexandria
 
#20

AW: Lazarus: StringGrid drucken

  Alt 18. Feb 2015, 16:59
Die Rect-Funktion steht IIRC in Types.pas, also wieder voll qualifizieren: Types.Rect.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:04 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz