Lazarus (Delphi) FreePascal

Codeschnipsel

http://lazarus-ccr.sourceforge.net/docs/lcl/index.html

Taste Enter Aktion auslösenListboxFehlermeldungenArraysDatei lesen, schreiben
Text aufteilen (Split)TStringGridRechnen mit DatumRundenForm drucken
Drucken Beispiel    

Dialoge / Dialoge übersetzen


https://www.tutorialspoint.com/jquery_programming_examples/

https://www.tutorialspoint.com/tpcg.php?p=d3IQYz


http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/delphivclwin32/Graphics_TCanvas_CopyRect.html

rechtsbündig drucken

https://www.delphipraxis.net/133104-printer-canvas-fontgroesse.html
https://www.entwickler-ecke.de/topic_Drucken+mit+TPrinter++Tutorial+I_71392,0.html
http://wiki.freepascal.org/Using_the_printer/de
http://forum.lazarus.freepascal.org/index.php?topic=35198.0
http://forum.lazarus.freepascal.org/index.php/topic,21687.0.html?PHPSESSID=rvghpdme4suvkcl5tn47hr30e5

http://www.lazarusforum.de/viewforum.php?f=10
http://www.lazarusforum.de/viewforum.php?f=21
http://wiki.lazarus.freepascal.org/Lazarus_Faq
http://www.schoolfreeware.com/Free_Pascal_Tutorials.html
http://www.delphipraxis.net/26733-xor-verschluesselung.html
http://www.freidling.info/Download/info11/Delphi-opgrundlagen.pdf

http://www.bergt.de/workshop/delphi/inhalt.htm

http://www.martinjakobs.de/

http://wiki.freepascal.org/Form_Tutorial/de

http://www.delphi-treff.de/tipps-tricks/object-pascal/prozedurenfunktionen/eigenschaften-ueber-sender-variable-erfahren/

Erste Schritte:

http://www.bergt.de/workshop/delphi/inhalt.htm

http://wiki.freepascal.org/Lazarus_Tutorial/de

Delpi-treff

http://wiki.freepascal.org/Form_Tutorial/de

Application.terminate;

Dialoge / Dialoge übersetzen -> zurück

http://wiki.freepascal.org/Dialog_Examples/de

    procedure ShowMessage (const Msg: string);
    function MessageBox (Text, Caption : PChar; Flags: Word): Integer;
    function MessageDlg (const Msg: string; AType: TMsgDlgType; AButtons: TMsgDlgButtons; HelpCtx: LongInt): Word;
    function InputBox (const ACaption, APrompt, ADefault: string); string;
    function InputQuery (const ACaption, APrompt: string; var Value: string): Boolean;
    function PasswordBox(const ACaption, APrompt : String) : String;

Beispiel:

 uses Translations;
 procedure TForm1.FormCreate(Sender: TObject);
 var
  PODirectory: String;
 begin
  PODirectory:='/usr/lib/lazarus/lcl/languages/'; // Schrägstrich nicht vergessen!
  TranslateUnitResourceStrings('LCLStrConsts',PODirectory+'lclstrconsts.%s.po','de','');
  MessageDlg('Title','Text',mtInformation,[mbOk,mbCancel,mbYes],0);
 end;

Hinweis: man muss die po Dateien mit der Anwendung mitliefern bzw. als Ressource einbinden!

kleine Binärdateien:

http://www.lazarusforum.de//viewtopic.php?f=51&t=1878

Menü: Projekt -> Projekteinstellungen -> Compilereinstellungen -> Debuggen -> Debugger-Informationen .. (Haken entfernen)

Datei lesen und schreiben:
http://wikis.zum.de/zum/Lazarus-Buch/Dateien


C
http://www.tutorials.at/c/compiler-installieren.html


Mit Entertaste Aktion auslösen -> zurück

Entertaste Aktion auslösen

 begin
    If Key =  13 then
    begin
  //Aktion
      Key := 0;
    end;
 end;

Wichtig ist es anschließend den Key auf #0 zu setzen. So wird verhinder, dass noch eine weitere Verarbeitung im Edit stattfindet.

Wenn bei Drücken der Enter-Taste ein Button geklickt werden soll, kann auch die Eigenschaft "Default" des Buttons auf "true" gestzt werden. Damit wird automatisch der Button geklickt, wenn Enter gedrückt wird.

Dasselbe gilt es auch für die ESC-Taste, in diesem Fall muss die Eigenschaft "Cancel" auf "true" gesetzt werden.


Listbox -> zurück


http://wiki.lazarus.freepascal.org/TListBox/de

Listbox leeren : listbox.items.clear
Listbox Eintrag zufügen : listbox.items.add

Listbox Eintrag löschen

 procedure TForm1.btnDelClick(Sender: TObject);
 begin
  if ListBox1.ItemIndex > -1 then    //Nur löschen, wenn ein String in der Listbox selektiert ist
    ListBox1.Items.Delete(ListBox1.ItemIndex);
 end;

Fehlermeldungen -> zurück

Errorcode 5 trat auf weildie zu kompilierende Anwendung lief. Erst die alte Anwendung schließen dann Start


Arrays -> zurück


https://de.wikibooks.org/wiki/Programmierkurs:_Delphi:_Pascal:_Arrays


Dateien lesen schreiben -> zurück


mit TOpenDialog

 var filename : string;

 if OpenDialog1.Execute then
 begin
     filename := OpenDialog1.Filename;
     ShowMessage(filename);
 end;

Ohne Dialog (Quelle)

 PROGRAM Dateien_lesen;
 USES Crt;

 VAR Datei: Text;     (* Dateizeiger *)
   Gelesen, Pfad: String;

 BEGIN
    Datei := 'beispieldatei.txt';
    Pfad := 'C:\tmp\';   (* ''  aus dem aktuellen Verzeichnis *)

    Assign (Datei, Pfad);     (* Pfad festlegen *)
    Reset (Datei);    (* Datei zum Lesen oeffnen *)

    REPEAT
      ReadLn (Datei, Gelesen);   (* eine Zeile lesen *)
      MsgBox(Gelesen);   (* eine Zeile  ausgeben *)
    UNTIL EOF (Datei);  (* Abbruch, wenn das Zeilenende erreicht ist; also wenn EOF TRUE liefert *)

    Close (Datei);  (* Datei schliessen *)
 END.

Textaufteilen mit Split -> zurück

\\http://www.lazarusforum.de/viewtopic.php?f=11&t=9746

 procedure TForm1.Button1Click(Sender: TObject);
 const
  s = 'A12;BX;XV;VG';
 var
  sr: TStringArray;
  i: integer;
 begin
  sr := s.Split(';');
  for i := 0 to Length(sr) - 1 do begin
    Memo1.Lines.Add(sr[i]);
  end;
 end

Textaufteilen mit SplitTSringGrid -> zurück


https://www.delphipraxis.net/102733-stringgrid-fuellen.html

procedure FillGrid(sg: TStringGrid; nCols, nRows: Integer);

 var
  iCol, iRow: Integer;
 begin
  with sg do
  begin
    RowCount := nRows;
    ColCount := nCols;
    FixedCols := 0;
    FixedRows := 0;
    for iRow := 0 to Pred(nRows) do
      for iCol := 0 to Pred(nCols) do
        Cells[iCol, iRow] := IntToStr(Succ(iRow * nCols + iCol));
  end;
 end; 

Rechnen mit Datumswerten, -> zurück


https://www.freepascal.org/docs-html/rtl/dateutils/index-5.html


Runden -> zurück

https://www.askingbox.de/tutorial/delphi-lazarus-funktion-um-zahl-auf-beliebige-position-vor-oder-nach-dezimalzeichen-zu-runden

Die normale Round-Funktion von Delphi oder Lazarus kann dazu benutzt werden, eine Kommazahl (float oder extended) auf einen Integer-Wert zu runden:

Die von Delphianer publizierte Funktion erweitert das runden

 function RoundEx(const AInput: extended; APlaces: integer): extended;
 var
  k: extended;
 begin
  if APlaces = 0 then begin
	result := round(AInput);
  end else begin  
	if APlaces > 0 then begin
	  k := power(10, APlaces);
	  result := round(AInput * k) / k;
	end else begin
	  k := power(10, (APlaces*-1));
	  result := round(AInput / k) * k;
	end;
  end;
 end;

Der erste Parameter ist unsere Zahl, die wir runden möchten. Der zweite Parameter gibt die Anzahl von Nachkommastellen beziehungsweise Ziffern an, auf die wir runden möchten.

Wenn wir als zweiten Parameter 0 übergeben, erhalten wir das normale Ergebnis der round-Methode. Nehmen wir eine positive Zahl, schneidet unser Funktion entsprechend viele Nachkommastellen ab. Benutzen wir eine negative Zahl, können wir auf eine Zehnerstelle, eine Tausenderstelle oder jede andere höhere Dezimalstelle runden.


Form drucken -> zurück

procedure TForm1.PrintForm; var

  bmp: TBitmap;
  widthP, heightP: integer;

begin

  bmp:=TBitmap.Create;
  try
    Printer.BeginDoc;
      widthP:=trunc(Printer.XDPI*Width / Screen.PixelsPerInch);
      heightP:=trunc(printer.YDPI*Height / Screen.PixelsPerInch);
      bmp.SetSize(Width, Height);
      PaintTo(bmp.Canvas, 0, 0);
      Printer.Canvas.StretchDraw(Rect(0, 0, widthP, heightP), bmp);
    Printer.EndDoc;
  finally
    bmp.Free;
  end;

end;


Drucken Beispiel -> zurück

 procedure TForm1.Button1Click(Sender: TObject);
 const
  LEFTMARGIN = 100;
  HEADLINE = 'I Printed My Very First Text On ';
 var
  YPos, LineHeight, VerticalMargin: Integer;
  SuccessString: String;
 begin
  with Printer do
  try
    BeginDoc;
    Canvas.Font.Name := 'Courier New';
    Canvas.Font.Size := 10;
    Canvas.Font.Color := clBlack;
    LineHeight := Round(1.2 * Abs(Canvas.TextHeight('I')));
    VerticalMargin := 4 * LineHeight;
    // There we go
    YPos := VerticalMargin;
    SuccessString := HEADLINE + DateTimeToStr(Now);
    Canvas.TextOut(LEFTMARGIN, YPos, SuccessString);
  finally
    EndDoc;
  end;
 end; 

https://www.delphipraxis.net/2345-zaehlen-von-eintraegen-sqlquery.html

http://wiki.freepascal.org/Lazarus_Documentation/de#Web


Page last modified on 19.07.2018 22:50