da immer wieder Leute zu Lazarus stoßen die noch wenig Programmier Erfahrung haben oder evlt. umgestiegen sind von Delphi zu Lazarus habe ich heute mal ein kleines FAQ angefangen...
ich hoffe da rauß wird ein schönes Projekt....
01 - Die Zeilen eines Memo Feldes Rauß Bekommen ?
Memo1.Lines.Count
wobei Count bei 0 anfängt
02 - Die Zeile Y einer Memo Komponenten Rauß bekommen ?
Memo1.Lines[index] oder Memo1.Lines.Strings[index]
03 - Den gesammten Text einer TMemo Komponente rauß bekommen ?
Memo1.Lines.Text
04 - Ein Nachrichten Dialog anzeigen ?
ShowMessage('Dies ist eine Nachricht');
05 - Ein Input Dialog anzeigen
if InputQuery('Der Titel','Der Prompt',stringVar) then
Showmessage('USer hat' + Stringvar eingeben);
06 - Schauen ob es eine Datei Bereits gibt
if FileExists(Dateinamen) then
ShowMessage('Datei gibt es schon');
07 - Ein Text auf den Canvas ausgeben ?
Canvas.Textout(10,10,'Dies ist ein einfacher Text');
08 - Roten Text auf den Canvas ausgeben
Canvas.Font.Color:=clRed
Canvas.Textout(10,10,'Dies ist ein einfacher Text');
09 - In einer Memo Komponenten einen Eintrag hinzufügen ?
Memo1.Lines.Add('Dieser Eintrag wurde hinzugefügt');
10 - Einen eintrag löschen in einer Memo Komponte ?
Memoe1.Lines.Delete(index);
11 - Einen Text mit einem Hintergrund ausgeben ?
canvas.brush.color:=clBlack;
canvas.font.color:=clYellow;
Canvas.fillrect(10,10,10+Canvas.TextWidth('Dies ist ein Text'),10+Canvas.TextHeight('Dies ist ein Text'));
canvas.textout(10,10,'Dies ist ein Text');
12 - Eine Datei Löschen ?
DeleteFile(Datei);
13 - Mehrer Verzeichnisse auf einmal anlegen ?
ForceDirectory('/test/hallo/wie');
14 - Mehrer Grafiken an unterschiedlichen Stellen auf den Canvas Anzeigen
Code: Alles auswählen
// Sollte Gobale Defniert werden
var
bmp1, bmp2, bmp3:TBitMap;
begin
// im OnCreate ereigniss
bmp1:=TBitMap.Create;
bmp2:=TBitMap.Create;
bmp3:=TBitMap.Create;
// Die Grafik sollte im BMP Format vorliegen
bmp1.LoadFromFile(Dateinamen);
bmp2.LoadFromFile(Dateinamen);
bmp3.LoadFromFile(Dateinamen);
// Bei Onpaint der Paintbox
Paintbox1.Canvas.Draw(10,10,bmp1);
Paintbox1.Canvas.Draw(10,100,bmp2);
Paintbox1.Canvas.Draw(10,13,bmp3);
// Bei Destroy des Froms
bmp1.free; bmp2.Free; bmp3.free
end;
15 - Einen Dynamischen Array anlegen/Definieren ?
TestArray:array of String;
16 - Einen Dynamischen Array eine Größe geben ?
SetLength(arr,high(arr)+2);
Ein Array muss immer größer Installisiert werden als benötig wird.
Grund: Die Länge des Array wird am anfang ende gepseichert.
(Hier bin ich mir aber nicht sicher)
17 - Einen Array ein Wert geben ?
testarray[0]:='Test';
18 - Die Anzahl aller Elemente von einem Array bekommen ?
for i:=0 to High(TestArray) do begin
ShowMessage(TestArray[i]);
end;
19 - Was ist ein Record und wie Defniere ich ihn ?
Ein Record kann mehrer Variablen von unterschiedlichen Datentypen
speichern.
Z.B. so:
Code: Alles auswählen
type
TTest = record
Name:String;
Vorname:String;
Hausnummer:Integer;
PLZ:Integer
end;
20 - Was für Kontroll Möglichkeit habe ich auf eine Variable ?
Code: Alles auswählen
if, case
if test then
ShowMessage('Variable Test ist True')
else
ShowMessage('Variable Test ist False')
test ist jetzt vom Typ Boolean.
Bei Strings geht das z.b. so:
Code: Alles auswählen
if test = 'Hallo' then
ShowMessage('Test enhält den Wert Hallo')
else
ShowMessage(test);
Bei Integer geht das so:
Code: Alles auswählen
if test = 0 then
ShowMessage('Test ist = 0')
else
ShowMessage(IntTostr(test));
if ausdrücke können auch in gruppen zusammen gefasst werden:
if (test1) and (test2) then ...
oder
if ((test1) and (test2)) or ((test1 and (test3 = 0)) then
...
Ein Case Beispiel könnte so aussehen:
Code: Alles auswählen
case IntVar of
0: ShowMessage('0)';
1: begin
ShowMessage('1');
end
else
ShowMessage(IntTostr(IntVar));
end;
Es gehen bei einem Case nur Integer Variablen also keine Strings oder sonst was.
21 - Schleifen ?
For, While, Repeat
Code: Alles auswählen
for i:=0 to 10 do
ShowMessage('For Schleife ist bei:'+IntTostr(i));
Bei der Forschleife gibt es eine Besonderheit: Die Variable I muss local defniert werden.
und Darf auch nur für Forschleifen verwendet werden sonst nirgends, weil sonst eine Komplier Fehler Meldung
kommt.
Die Vorherige For Schleife zählt Vorwärzt, für rückwährt muss das to druch downto ersetzt werden:
Code: Alles auswählen
for i:=10 DownTo 0 do
ShowMessage('For Schleife ist bei:'+IntTostr(i));
Die While schleife wird so lange ausgeführt bis die Bedinung eintrift:
Code: Alles auswählen
while test do begin
...
end;
Sobald Test auf False gesetzt wird, wird die While schleife verlassen.
ist test schon auf False wird die While-Schleife gar nicht erst ausgefürht.
Bei der repeat schleife ist es genau anders herrum, die schleife wird immer einmal ausgefürht:
Code: Alles auswählen
repeat
...
until Test;