AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi pointer auf TButton - verständtnis problem

pointer auf TButton - verständtnis problem

Ein Thema von cherry · begonnen am 26. Feb 2009 · letzter Beitrag vom 26. Feb 2009
Antwort Antwort
Seite 2 von 2     12
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#11

Re: pointer auf TButton - verständtnis problem

  Alt 26. Feb 2009, 14:43
Zitat von cherry:
hmm, also sind Pointer in Delphi eher selten?!
Korrekt, deswegen mögen wir es ja so
  Mit Zitat antworten Zitat
Benutzerbild von cherry
cherry

Registriert seit: 14. Nov 2005
561 Beiträge
 
RAD-Studio 2009 Ent
 
#12

Re: pointer auf TButton - verständtnis problem

  Alt 26. Feb 2009, 14:45
Ok, dann hab ich ja wieder was gelernt. Also nochmal, wenn ich einer Procedure den Sender als TObject übergebe, ist das auch ein "Pointer" ? (Weil ja TObject auch eine Klasse ist)
Ist das nur mein Gefühl, oder ist die ganze Welt verrückt geworden!?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.371 Beiträge
 
Delphi 12 Athens
 
#13

Re: pointer auf TButton - verständtnis problem

  Alt 26. Feb 2009, 14:49
Jupp, so isses.


Du kannst (wenn du unbedingt willst) ein Objekt auch über einen Pointer ansprechen, aber dann mußt du auch einen Speicherplatz (für die Objekt-Variable) nutzen, welcher nicht gelöscht wird.


Delphi-Quellcode:
type
  PEButton = ^TEButton;
  Tabulator = record
    hwnd: THandle; // contains handle of a window
    P: PEButton; // contains pointer of the tabulator button
  end;

  ...

procedure TForm1.AddTab(name: String; hwnd: THandle; FormCount: Integer);
var
  Current: Integer;
  NewButton: PEButton;
begin
  // increase pointer array
  SetLength(Tabs, Length(Tabs) + 1);
  Current := Length(Tabs)-1;

  // create button, positionize button
  New(NewButton);
  NewButton := TEButton.Create(Form1);
  NewButton.Parent := ToolBar1;
  NewButton.OnClick := OnTabButtonClick;

  Tabs[current].P := @NewButton;
  Tabs[current].hwnd := hwnd;
end;
und Freigeben dann z.B. so:
Delphi-Quellcode:
Tabs[i].P^.Free;
Dispose(Tabs[i].P);
aber direkt über die Objektinstanz isses natürlich einfacher/schöner
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Cyf

Registriert seit: 30. Mai 2008
407 Beiträge
 
Lazarus
 
#14

Re: pointer auf TButton - verständtnis problem

  Alt 26. Feb 2009, 15:31
Zitat von cherry:
hmm, wenn das so ist für was braucht man dann Pointer in Delphi überhaupt? (also ich meine selbst "erstellte")
Für Abstrakte Datentypen, wie z.B. verkettete Listen, Binärbäume und nen paar andere und in einigen speziellen Fällen, wo Lösungen ohne Pointer nicht oder nur unschön gehen. Hinzu kommt noch die Übergabe von Strings an API-Schnittstellen und .dll oder wenn man aus irgendwelchen Gründen meint, direkt im virtuellen Speicher rumhantieren zu müssen. Die meisten Pointer in Delphi werden automatisch verwaltet und hinter Dingen wie var, const, Arrays und Objekten versteckt.
Man kann einen Barbier definieren als einen, der alle diejenigen rasiert, und nur diejenigen, die sich nicht selbst rasieren.
Rasiert sich der Barbier?
  Mit Zitat antworten Zitat
Benutzerbild von cherry
cherry

Registriert seit: 14. Nov 2005
561 Beiträge
 
RAD-Studio 2009 Ent
 
#15

Re: pointer auf TButton - verständtnis problem

  Alt 26. Feb 2009, 15:33
Danke euch allen. Das ist die Erleuchtung des Tages für mich. ne im Ernst. Gut zu wissen.

schöner Tag noch
Ist das nur mein Gefühl, oder ist die ganze Welt verrückt geworden!?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.371 Beiträge
 
Delphi 12 Athens
 
#16

Re: pointer auf TButton - verständtnis problem

  Alt 26. Feb 2009, 15:35
Strings, dynamische Arrays und Objekte arbeiten sozusagen mit Pointern, nur daß an sich als Programmier da um nichts kümmern muß (macht Delphi automatisch).
Und bei den Funtions-Parametern, sowie noch einigen anderen Dingen, macht Delphi auch sehr viel automatisch.

ich weiß ja nicht wie sehr du dich z.B. in C auskennst, aber da muß man schon recht viel selber machen.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 11:39 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