Montag

Einleitung

Delphi - Die Erleuchtung

Was ist Delphi? - Eine Programmiersprache, über die sich Programme in alle möglichen Richtungen schreiben lassen, von Spielen bis zu Server-Client Diensten, auch sehr Systemnahe Programme wie NT-Dienste etc.

Was muss ich kennen lernen?

  • Variablen, dass sind Platzhalter, die Speicherplatz für Werte etc frei halten, wie eine Schachtel, in die ich beliebig Gegenstände hineintuen kann, wieder herausnehmen, sie verändern etc.
  • Konstanten, mit Zetteln zu vergleichen, auf die man etwas draufschreibt um es sich wieder in Erinnerung zu rufen
  • Deklaration - eine Variable "definieren" - Beispiel: Ich habe die Variable mit dem Namen "Zahl1" und ihr werde ich dann ganze Zahlen(natürliche Zahlen) zuweisen, z.B.: 1
  • Variablentypen - Diese sind nötig, weil nicht jede Variable gleich viel Speicher frei halten kann, so weise ich sie z.B.: dem Typen Integer zu, in welchem nur(!!) natürliche Zahlen "gespeichert" werden können, oder dem Typen String, in welchem Zeichenketten, also alle sich auf der Tastatur befindlichen Zeichen befinden können, der Unterschied zwischen diesen Typen ist, dass man sie nicht für dasselbe benutzen kann, so kann ich mit Strings z.B nicht rechnen
  • Prozeduren, sie sind wie eine Aktion und können aufgerufen werden, so kann man mit Prozeduren etwas machen, wie z.B.: Durch das drücken eines Buttons wird eine Prozedur aufgerufen die eine Schrift sichtbar macht
  • Funktionen - Wie in der Mathematik, nur werden sie oft so gebildet, dass sie in Prozeduren benutzt werden, in dem ihnen Werte übergeben werden, womit sie dann etwas machen und dann ein Ergebnis wiedergeben, so könnte ich zum Beispiel eine Prozedur schreiben die beim drücken eines Buttons eine Funktion mit den vom Benutzer angegebenen Werten aufruft, dann wird das Ergebniss, welches die Funktion liefert durch die Prozedur dem Benutzer sichtbar gemacht, dies werde ich aber noch detaillierter erklären
  • Formulare - eine grafische Oberfläche auf denen ich Komponenten wie Buttons oder Eingabefelder platzieren kann
  • Kompilieren - Der Quellcode, also der Programmtext, wird so umgewandelt, dass ein ausführbares Programm, also eine .exe entsteht
  • Debugger - Er kontrolliert unseren Programmcode auf Fehler
  • Syntax - Auch unser Programmcode braucht eine Struktur und benutzt sowas wie Satzzeichen
Das sind die Grundlegenden Begriffe, die man kennen lernen sollte, bevor man sich ans praktische Programmieren setzt.

Sonntag

Impressum

Der Autor dieses Blogs, im weiteren Glamr genannt garantiert weder für die Richtigkeit
der Inhalte, noch werden alle auf dieser Seite vorhandenen Links überprüft, da diese teilweise von den Usern gepostet werden.

eigene GUI ganz einfach

Also zu erst würde ich persöhnlich unter Uses die XPMAN einbinden, denn dann passen sich die Komponenten dem Xp Design an, was schon mal ein Fortschritt ist, dann bearbeiten wir die Form im Objektinspektor und zwar so:

  • Transparentcolor: Die Farbe, welche nachher im Programm Unsichtbar seien soll, jede Komponente, Bild etc, einfach alles auf dem Formular was diese Farbe hat wird dann Unsichtbar, aber nur im Falle von Transparentcolor:= true
  • Transparentcolor:=true - lässt sich im Objektinspektor einstellen und somit wird die Transparentcolor dann Unsichtbar
  • Borderstyle:=bsNone - wir haben nicht den normalen Windows Rahmen, denn wir werden uns einen eigenen machen
Als nächstes machen wir uns ein Hintergrundbild für die Form, welche ja Durchsichtig ist, da ihre Farbe die selbe ist wie die Transparentcolor.

Ich habe mich für dieses Entschieden, welches ich jetzt auf die Form legen werde, im Vordergrund sind dann meine Komponenten.



Als Titelleiste mit der man die Form später mit der Maus verschieben sollen kann nehme ich dieses Bild, was als TImage auf meine Form kommt.



Die Komponente TImage die nachher per Mauszug die Form verschieben soll bekommt nun der Prozedur:

procedure TForm2.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
ReleaseCapture;
Form2.Perform(WM_SYSCOMMAND, $F012, 0);
end;

So, eure GUI ist fertig!
Hier mein Ergebnis:


Damit es funktioniert müssen die Bilder die ihr in die TImages packt als .bmp gespeichert seien! Mit .jpg Bildern funktioniert es nicht.






Sendkey

So hier die Unit Sndkey32 mit deren hilfe sich Tastenanschläge an das jeweils aktive Fenster senden lassen.

Download

Einfach unter Uses Sndkey32 angeben und dann lässt sich die Funktion mit

sendkey('hallo');
oder
sendkey(edit1.text);

aufrufen.

Virtuelle Tastenanschläge an ein bestimmtes Fenster

So nun zeige ich euch wie man einen virtuellen Tastenanschlag an ein bestimmtes Fenster sendet.

procedure key(s:string);
var
wnd: HWND; //Das Fenster
i: Integer;
//Die Zeichenlänge
begin
wnd := FindWindow(nil,'SRO_Client');
//Das Fenster: Sikroad(Spiel)
if wnd <> 0 then
//Fehler? kein Prob
begin
wnd := FindWindow(nil,'SRO_Client');
for i := 1 to Length(s) do
//Jedes Zeichen wird ausgelesen und per virtuellem Tastenanschlag gesendet
PostMessage(wnd, WM_Keydown, Word(s[i]), 0);
//Taste drücken
PostMessage(wnd, WM_Keyup, Word(s[i]), 0);
//und wieder frei geben
end;
end;

Aufgerufen wird das ganze mit:

key('Der Text');

oder sowas wie

key(edit1.text);

Viel spaß beim ausprobieren!

Wenn ihr die Tastenanschläge immer an das aktive Fenster senden wollt dann sucht mal unter Downloads nach Sendkey ;)