PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Alles markieren und With Sender As


SAV
05.05.2002, 19:11
Hallo, ich habe da mal zwei Fragen.

1. Wie kann ich es machen das wenn ich auf ein Button klicke der ganze Text im Memo Feld markiert wird?

2. Was bedeutet es wenn ich With Sender AS benutze. Habe ich vom Buch Delphi 3 für Dummies steht fast überal in den den Quelcodes? Kann mir das vielleicht jemand erklähren?

Währe für jede Hilfe äuserst dankbar... :]


Felix Kaiser
05.05.2002, 19:28
1. TMemo.SelectAll;
Mach das auf den OnClick Event von dem Button.

2. (Sender as ClassName) bewirkt eine Typenkonvertierung von Sender in die gewünschte Klasse. Was with tut ist in der Hilfe gut beschrieben. Damit kannst du auf die Elemente eines Objektes oder eines Rekords zugreifen, ohne immer erst die Variable die die benötigten Daten enthält zu referenzieren.

SAV
05.05.2002, 20:23
:D Ersteinmal vielen dank für die schnelle Antwort, aber komisch wieso habe ich keine E-Mail bekommen das jemand geantwortet hat?

1. Naja wie auch immer das erste geht zwar, aber im Mainmenü, im Button leider :( immer noch nicht!

2. ;( Ich habe da leider einiges immer noch nicht so richtig verstanden.
1.Was ist überhaupt ein Sender
2.Was bedeutet as
3.ClassName ist mir leider nicht bekant
4.Währe super wenn ich wissen würde was Typenkonvertierung ist
5.With habe ich mehrfach gelesen versteh ich auch nicht
6.Record kenne ich leider auch noch nicht.

Also wie man hier an meinen Fragen sicherlich sehen kann, gehöre ich noch zu den totalen Anfänger, aber ich hoffe und gebe mein bestes, das es sich schon bald ändern wird. :] Übrigens währe es nett von euch wenn mir das jemand ganz einfach erklähren könnte so das ich es verstehen kann.

Felix Kaiser
05.05.2002, 22:04
ClassName war nur Synonym für einen Klassenname, wie z.B. TMemo oder TButton.

Sender ist das Objekt, welches das Ereignis was verarbeitet wird ausgelöst hat.

´as´ bedeutet ´als´ und so funktioniert es auch. (Sender as TButton) würe bedeuten, dass wenn der Sender kompatibel zu TButton wäre man auf Sender zugreifen kann wie auf das TButton Objekt. Wäre hingegen Sender nicht kompatibel, so würde eine Exception erzeugt.

Mit record kannst du Typen definieren, die mehrere Variablen enthalten. Wenn du dann später im Programm eine Variable definierst, kannst du auf die Elemente dieses ´records´ mit ´Variable.Element´ zugreifen.

Mit ´with Variable do´ referenzierst du die Variable direkt, so dass du um Zugriff auf die Elemente der Variable zu bekommen nicht mehr mit ´Variable.´ referenzieren musst.

Typenkonvertierung meint einfach nur, dass du eine Variable die ein bestimmter Typ ist konvertierst in einen anderen kompatiblen Typ und somit im Endeffekt eine Variable hast, die nun ein anderer Typ ist. Einfachstes Beispiel wäre:

var
foo: Cardinal;
big: Int64;
begin
foo:= 1000;
big:= Int64(foo);
end;

Im Beispiel würde Int64(foo) die Variable foo ins Format Int64 konvertieren und der Variable big zuweisen.

Messiah_of_Death
05.05.2002, 22:44
(Sender as Txyz) is auch ganz nützlich wenn man z.B. 1 Funktion auf mehr als 1 Knopf legen möchte..
und dann per Knopf entscheiden möchte..(Bsp. Malprogramm)

also


if (Sender as TButton).Name = ´Knopf1´ then
begin
end
else
if (Sender as TButton).Name = ´Knopf1000´ then
begin
end;



usw.

SAV
07.05.2002, 20:48
Gleich noch ne Frage.

Ich weiß jetzt wie man Alles markieren macht, aber wie macht man Rückgängig und Löschen....

Felix Kaiser
07.05.2002, 21:22
Du scheinst mir Hilfe-Lese-Faul zu sein ;)

Steht alles wunderbar drin.
Alles löschen: TMemo.Clear;
Nur markiertes löschen: TMemo.ClearSelection;
Rückgängig: TMemo.Undo;

Ich würde vorschlagen, du liest dir unbedingt mal den Abschnitt zu TMemo durch ...