Memo-ähnliche Komponente gesucht

Hi,

ich such eine Komponente,die ähnlich einem Memo aufgebaut ist. Beim einem Memo hab ich das Problem,dass wenn ich da was reinlade,dass ich diese Elemente nicht verlinken kann.

Also wenn ich ein Verzeichnis durchsuch und die Dateien darin in das Memo liste,kann ich die Dateien nicht separat verlinken sondern nur das komplette Memofeld (korrigiert mich wenn ich was falsches sage oder ihr nicht mitkommt).

Ich suche nun eine Komponente,die Folgendes kann:
- Man sollte Daten laden und speichern können (wie bei Memo,RichEdit,StrList,...)
- Jeder Eintrag sollte separat durch ein OnClick-Ereignis angesprochen werden können,damit ich die Elemente verlinken kann.
- Nach Möglichkeit (muss aber nicht sein) sollte die Komponente eine Nummerierung am Beginn der Zeile haben (wie zB in MS Word),wär noch ganz praktisch

Sind vielleicht zu hohe Ansprüche meinerseits aber vielleicht gibts sowas ja.Ich danke euch schon mal für Antworten und Hilfen (sofern denn jemand was parat hat ^^) ;)
 
Hi Alex

Hast Du mal probiert, ob man beim OnClick einer Memo-Komponente nicht irgend wie die geklickte Zeile ermitteln kann?
Damit wäre Dir doch bereits geholfen, oder?

Gibt es da nicht eine Property Selection oder so?

Habe mal wieder gerade kein Delphi zur Hand.

Vielleicht gibts da aber was. Dann könntest Du ja beim OnClick der Memo-Komponente in Abhängigkeit der aktuellen Zeile entsprechend verzweigen.

vop
 
Danke,du hattest (wie so oft) recht ;)

Ich hab zuerst etwas gegoogelt,dann bei SwissDelphiCenter einen Code gefunden,der bei Klicken in ein Memo die Zeile markiert und die markierte Zeile kann ich mit SelText ja einfach auslesen ;)

Vielen Dank! ;)
 
ListView - Geklickte Spalte ermitteln

Um nicht noch ein Thema zu dem selben Thema zu eröffnen,führ ich einfach mal das hier weiter ;)

Diesmal gehts um ne ListView und ich will wieder die geklickte Zeile ermitteln oder halt irgendwie eine Zahl kriegen,damit ich damit weitermachen kann. Die ListView hat leider keine Eigenschaft "Itemindex" oder Ähnliches, das mir helfen könnte. Nach Code im Netz hab ich auch schon geschaut,nur leider nix wirklich Passendes gefunden.


Ein Ansatz, vielleicht kann damit jemand was anfangen und mir weiterhelfen ;)

Code:
procedure xxx
var
x,y:integer;
LI: TListItem;
begin
x := Mouse.CursorPos.X;
y := Mouse.CursorPos.Y;
LI := ListView1.GetListItemAt(x,y);
 
Wie wäre es mit Listbox.selected (als Eigenschaft) oder OnSelectItem als Ereignis? Oder brauchst du was anderes?

lg Hellie
 
Mit dem Ereignis müsste es gehen,wenn nicht eine Fehlermeldung bei folgendem Code erscheinen würde...

Code:
procedure TForm1.ListView1SelectItem(Sender: TObject; Item: TListItem;
  Selected: Boolean);
begin
Item := ListView1.GetItemAt(Mouse.CursorPos.X,Mouse.CursorPos.Y);
If Item.Selected = True then
ShowMessage(Item.Caption);
end;

---------------------------
Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt Project1.exe ist eine Exception der Klasse C0000005 aufgetreten. Meldung: 'Zugriffsverletzung bei 0x004380ec: Lesen von Adresse 0x00000004'. Prozess wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen.
---------------------------
OK Hilfe
---------------------------
 
Wozu brauchst du die erste zeile in deinem Code? Wenn du ein Item auswählst, wird die Prozedur aufgerufen, und ein Parameter ist Item, und damit kannst du direkt auf das Item zugreifen, dass du grad angeklickt hast?!
Und die Fehlermeldung kommt, weil die Funktion GetItemAt als Parameter die Koordinaten von der linken oberen Exke der listView aus gesehen haben wll, CurserPos sich aber auf den gesamten Bildschirm bezieht --> da wo das Item sein soll, ist keins mehr --> falscher Speicherbereich.

Hoffe, ich konnte dir ein Bisschen weiterhelfen.

lg Hellie //die heute ihre letzte Klausur für dieses Halbjahr schreibt... Psychologie...
 
Zurück