AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

In Funktion Memo ändern

Ein Thema von bundaberg · begonnen am 15. Okt 2006 · letzter Beitrag vom 15. Okt 2006
Antwort Antwort
bundaberg

Registriert seit: 15. Okt 2006
3 Beiträge
 
#1

In Funktion Memo ändern

  Alt 15. Okt 2006, 12:51
Hi, habe ein kleines Problem an dem ich grad hänge.. Ich habe ein Funktion geschrieben, die mir aus einem Quelltext alle Verweise auf eine andere Seite rauskopiert. Nun möchte ich das sie in eine ListBox eingetragen werden, aber ich kann scheinbar aus der Funktion heraus nicht auf eine ListBox oder so zugreifen..
hier ein Beispiel wie es nicht geht:

Delphi-Quellcode:
    if alllink = True then begin
      link:='';
      for nr2:=linkanfang to linkend do link:=link + s[nr2];
      ShowMessage(link);
      ListBox1.Items.Add(link);
ich habe es auch mit einer globalen Variable versucht, will aber auch nicht so ganz :-(

mfg,
bundaberg
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: In Funktion Memo ändern

  Alt 15. Okt 2006, 12:53
Wo ist diese Prozedur deklariert? Als Methode? In welcher Unit?
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3

Re: In Funktion Memo ändern

  Alt 15. Okt 2006, 12:55
Ist die Funktion eine Methode deiner Form-Klasse? Wenn nicht, musst du das Formular mit angeben, auf dem sich deine Listbox befindet.

Davon mal abgesehen, sollte man die Daten und deren Verarbeitung immer von der Oberfläche trennen. Das macht den Code leichter wartbar, übersichtlicher und man kann ihn leichter wiederverwenden.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: In Funktion Memo ändern

  Alt 15. Okt 2006, 12:59
Moin Bundaberg,

erst einmal herzlich willkommen hier in der Delphi-PRAXiS.

Ich vermute mal stark, dass Du die ListBox in einer Funktion ansprechen willst, die keine Methode des Formulares ist, auf dem sich die Listbox befindet.
Dann müsstest Du entweder aus der Funktion eine Methode machen, oder den Namen des Formulares noch davorschreiben.


Delphi-Quellcode:
TForm1 = class(TForm)
//...
  function MeineFunktion : string;
//...
end;

implementation

function TForm1.MeineFunktion : string;
begin
  // Hier kann dann die Listbox direkt angesprochen werden, wenn sie auf Form1 liegt
end;

//Oder

function MeineFunktion : string;
begin
  Form1.ListBox1.....
end;
Wenn sich die Funktion in der Unit des ersten Formulares befindet ist die erste Variante vorzuziehen, da sie dann ja logisch zum Formular gehört.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
bundaberg

Registriert seit: 15. Okt 2006
3 Beiträge
 
#5

Re: In Funktion Memo ändern

  Alt 15. Okt 2006, 13:06
hmm.. und wie kann ich dann machen das ich nicht direkt die listbox anspreche, wenn es wie luckie sagt ungünstig ist?

Delphi-Quellcode:
function LinksMarkieren(RichEdit: TRichEdit): String;
var
s, link: String;
nr, nr2, linkanfang, linkend: Integer;
href, hrefend, alllink: Boolean;
begin
  for nr:=0 to Length(RichEdit.Text)
  do begin
    s:=RichEdit.Text;
    if (s[nr] = '<') then href := True;
    if href then
      if (s[nr] = 'a') and (s[nr-1] = '<') then linkanfang:=nr-1;

    if (s[nr] = '/') and (href=true) then hrefend:=True;

    if hrefend and (href=true) then
      if (s[nr] = 'a') and (s[nr+1] = '>') then
      begin
        linkend := nr+1;
        alllink := True;
      end;

    if alllink = True then begin
      link:='';
      for nr2:=linkanfang to linkend do link:=link + s[nr2];
      ListedLinks:=ListedLinks + link; // das ist der versuch mit der globalen, aber ist nicht was ich will
      ListBox1.Items.Add(link); // damit hat er scheinbar ein problem...
      alllink := False;
      href := False;
      hrefend := False;
    end;
  end;
end;
aufgerufen wird sie ann einfach mit:

Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
begin
  LinksMarkieren(RichEdit1);
end;
danke für eure Hilfe
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#6

Re: In Funktion Memo ändern

  Alt 15. Okt 2006, 13:21
Hi,

in deinem Fall müsste es wohl Form1.ListBox1.Items.Add() heißen, aber man hat dir ja schon beschrieben, warum das suboptimal ist. Hier noch ein thread, der sich auch mit deinem Problem beschäftigt hat: klick

Freundliche Grüße vom marabu
  Mit Zitat antworten Zitat
bundaberg

Registriert seit: 15. Okt 2006
3 Beiträge
 
#7

Re: In Funktion Memo ändern

  Alt 15. Okt 2006, 13:35
ok, vielen dank an alle, so werde ich es jetzt erstmal machen. das es nicht die optimalste lösung ist hab ich verstanden, bin mir aber nicht sicher wie ich es noch anders lösen könnte :-)
danke nochmal,
mfg
bundaberg
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:34 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz