AGB  ·  Datenschutz  ·  Impressum  







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

mal wieder pointer

Ein Thema von kiar · begonnen am 1. Mär 2004 · letzter Beitrag vom 2. Mär 2004
Antwort Antwort
Benutzerbild von kiar
kiar

Registriert seit: 2. Aug 2003
Ort: Aschersleben
1.362 Beiträge
 
Delphi 5 Professional
 
#1

mal wieder pointer

  Alt 1. Mär 2004, 15:50
zur laufzeit erstelle ich ein Tedit. nun will ich dieses edit mit einem wert füllen.

folgender Versuch scheiterte
Delphi-Quellcode:

var
  e : Tedit;
  pe :^Tedit;

begin
  pe:=@e; //liest die adresse von e
  pe^.text:=' es geht nicht! warum?'
end;
raik

ps ich begreife das mit den pointern einfach nicht
verhältnisse die einem nicht passen,
muss man verändern oder verlassen
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

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

Re: mal wieder pointer

  Alt 1. Mär 2004, 15:54
Moin Raik,

das Problem sind nicht die Pointer.
Wie wäre es denn, wenn Du das Edit Feld erst einmal erzeugst, bevor Du es benutzt?


Code:
var
  e : Tedit;
  pe :^Tedit;

begin
[color=red] e := TEdit.Create(self);
  e.Parent := self;[/color]
  pe:=@e; //liest die adresse von e
  pe^.text:=' es geht nicht! warum?'
end;
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
Benutzerbild von kiar
kiar

Registriert seit: 2. Aug 2003
Ort: Aschersleben
1.362 Beiträge
 
Delphi 5 Professional
 
#3

Re: mal wieder pointer

  Alt 1. Mär 2004, 15:58
hi chris ,

danke für den hinweis, aber des editfeld existiert.es wird zur laufzeit erzeugt und hat sein parent auf einem panel,aber nicht in der procedure, in der ich darauf zugreifen will. deshalb habe ich versucht mit pointer darauf zuzugreifen.

hier erstelle ich
Delphi-Quellcode:

procedure TfrmMain.geteilter1Click(Sender: TObject);
var
   p : TPanel;
   l : TEdit;
   MousePos: Tpoint;
begin
     mousePos:=screentoClient(Mouse.CursorPos);
     p:= TPanel.Create(self);
       with p do
         begin
           parent:= self;
           height:=100;
           Width :=200;
           Top:= mousePos.x;
           left:= MousePos.y;
           Ctl3D:=false;
           popupmenu:=popupmenu1;

         end;
     l:= TEdit.Create(self);
     l.parent:=p;
     l.height:=20;
     l.width:=80;
     l.top:=10;
     l.left:=10;
     
end;
und hier versuche ich darauf zuzugreifen
Delphi-Quellcode:
procedure TfrmMain.mypopupclick(Sender: TObject);
var
   l:Tedit;
   p:Tpanel;
   pl:^Tedit;
begin

         if PopupMenu1.PopupComponent.Name = 'StringGrid1then
            stringgrid1.cells[stringgrid1.col,stringgrid1.row]:=TMenuItem(sender).caption
         else
            pl:=@l;
            pl^.text:=TMenuItem(sender).caption;


end;
raik

[edit] quelltext eingefügt
verhältnisse die einem nicht passen,
muss man verändern oder verlassen
  Mit Zitat antworten Zitat
DelphiDeveloper

Registriert seit: 9. Apr 2003
Ort: Köln
256 Beiträge
 
Delphi XE2 Enterprise
 
#4

Re: mal wieder pointer

  Alt 1. Mär 2004, 15:58
du schreibst zur laufzeit ERSTELLST du ein Tedit

und wo ist dein create?



du erzeugst ja nirgens eine instanz von Tedit und somit kannst du auch
nicht auf properties von tedit zugreifen

versuchs mal mit der zeile und dein code läuft auch wenn
das bestimmt kein paradebeispiel fuer verwendung von pointern ist.

e := Tedit.Create(nil);
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

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

Re: mal wieder pointer

  Alt 1. Mär 2004, 15:59
Moin Raik,

also wenn ich die obigen Zeile ausführe, klappt das.
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
Christian Seehase
(Co-Admin)

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

Re: mal wieder pointer

  Alt 1. Mär 2004, 16:07
Moin Raik,

und woher soll die Variable l in der zweiten Prozedur den Inhalt der Variablen l in der ersten Prozedur haben?
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
Benutzerbild von kiar
kiar

Registriert seit: 2. Aug 2003
Ort: Aschersleben
1.362 Beiträge
 
Delphi 5 Professional
 
#7

Re: mal wieder pointer

  Alt 1. Mär 2004, 16:14
hi chris ,

es funktioniert so wie du beschrieben, aber wie oben schon erwähnt,liegen create und zugriff nicht in einer procedure.

raik
verhältnisse die einem nicht passen,
muss man verändern oder verlassen
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

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

Re: mal wieder pointer

  Alt 2. Mär 2004, 15:59
Moin Raik,

nimm' doch als Variable ein Feld/Eigenschaft im Formular, so dass Du von der erzeugenden und der nutzenden Methode aus Zugriff darauf hast.
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
Benutzerbild von kiar
kiar

Registriert seit: 2. Aug 2003
Ort: Aschersleben
1.362 Beiträge
 
Delphi 5 Professional
 
#9

Re: mal wieder pointer

  Alt 2. Mär 2004, 16:28
hi chris,

das hab ich auf die 'schnelle' nicht begriffen. dabei bin ich gar kein hamburger

lasse es mir mal durch den kopf gehen.

raik
verhältnisse die einem nicht passen,
muss man verändern oder verlassen
  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 19:04 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