AGB  ·  Datenschutz  ·  Impressum  







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

Bild per button verändern

Ein Thema von gelvuun · begonnen am 25. Dez 2005 · letzter Beitrag vom 26. Dez 2005
Antwort Antwort
gelvuun

Registriert seit: 16. Dez 2005
Ort: Bad Vöslau
19 Beiträge
 
#1

Bild per button verändern

  Alt 25. Dez 2005, 18:09
Hallo!

also es geht wieder um mein mathe-programm (1. version zum download fertig, wird demnächst bei den opensource-programmen hinzugefügt)

also das is mein problem:
Ich hab ein bild auf dem Formular das angezeigt werden soll wenn der radiobutton 'kreis' aktiviert ist. Ich will aber das wenn ich jetzt den radiobutton 'sektor' anklicke, sich der inhalt von diesem picture ändert/ein neues bild geladen wird welche dann an dieser stelle eingesetzt wird....

WIE GEHT DAS??
  Mit Zitat antworten Zitat
Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#2

Re: Bild per button verändern

  Alt 25. Dez 2005, 18:22
Hi,
lad die beiden Bilder in jeweils ein Bitmap-Objekt (mir fällt gerade nicht der Name der Liste ein, die du alternativ nehmen kannst wenn die gleich groß sind). Bei einem Button klick weißt du dann immer nur die entsprechende Bitmap zu :

Delphi-Quellcode:
constructor TDeineKlasse.create;
begin
  inherited create;
  self.BmpKreis := TBitmap.Create;
  self.BmpKreis.LoadFromFile(<Pfad zur Bitmap>);

  self.BmpSektor := TBitmap.Create;
  self.BmpSektor.LoadFromFile(<Pfad zur Bitmap>);
  
  ...
end;

procedure TDeineKlasse.RadioButtonKreisClick(Sender: TObject);
begin
  self.RadioButtonSektor.Checked := False;
  self.RadioButtonKreis.Checked := True;
  self.Image1.Picture.Bitmap := self.BmpKreis;
end;

procedure TDeineKlasse.RadioButtonKreisClick(Sender: TObject);
begin
  self.RadioButtonSektor.Checked := True;
  self.RadioButtonKreis.Checked := False;
  self.Image1.Picture.Bitmap := self.BmpSektor;
end;
So ungefähr sollte es klappen.

Gruß Der Unwissende
  Mit Zitat antworten Zitat
gelvuun

Registriert seit: 16. Dez 2005
Ort: Bad Vöslau
19 Beiträge
 
#3

Re: Bild per button verändern

  Alt 25. Dez 2005, 18:26
danke erstmal...
nur weil ich noch ziemlich neu bin hab ich noch folgende fragen:

was heißt das constructor?
as heißt das self.?
  Mit Zitat antworten Zitat
Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#4

Re: Bild per button verändern

  Alt 25. Dez 2005, 19:56
Zitat von gelvuun:
danke erstmal...
nur weil ich noch ziemlich neu bin hab ich noch folgende fragen:
Na dann erstmal Herzlich Willkommen in der Delphi Praxis

Zitat von gelvuun:
was heißt das constructor?
as heißt das self.?
Delphi beherscht ein wenig die Objekt Orientierte Programmierung (OOP). Sehr sehr stark vereinfacht heißt es, dass du aus Klassen konkrete Instanzen machst. Eine Klasse ist ein Bauplan (den du schreibst). Möchtest du jetzt auch was produzieren, so musst du auch die Fabrik anwerfen. Das was sie produziert nennt man eine Instanz.
Für dein Programm heißt dass, das nur eine Instanz auch wirklich Speicher belegt. Die Klasse sagt nur was eine Instanz speichern könnte. Variablen die einen Klassentyp haben (etwas mit = class(...)) sind nur Referenzen auf eine Instanz. Sie zeigen also nur auf eine Instanz oder auf nil, wenn es keine Instanz gibt.

Um nun eine Klasse anzulegen, musst dein Rechner Speicher reservieren. Dazu fragt er Windows nach einer bestimmten Menge Speicher, Winows sucht eine freie Stelle, reserviert den Speicher und gibt die Adresse zurück (das ist dann die Referenz).
Genau das erledigt dein Konstruktor.

Hat die Instanz ihren Zweck erfüllt, brauchst du sie nicht mehr (also auch nicht ihren Speicher), dann rufst du den Destruktor auf. Dieser sagt Windows dann, dass der Speicher wieder freigegeben werden kann.

Bei deinem Formular / Hauptfenster wird der Konstruktor immer schon von Delphi aufgerufen. Da wird dann das Formular erzeugt und dann auch gleich angezeigt. Hier kannst du einfach unter den Ereignissen doppelt auf das OnCreate Ereignis klicken. Dieses wird immer direkt nach dem Aufruf des Konstruktor aufgerufen. Dort kannst du dann die Bitmaps laden. Damit du zwei Bitmaps speichern kannst, musst du vorher im private-Teil deines Forms einfach zwei Variablen vom Typ TBitmap eintragen.
Dies sind dann auch Klassen. Damit du sie benutzen kannst, reserviert TBitmap.Create einfach Speicher für ein TBitmap. Die Adresse würde in meinem Beispiel in BmpKreis gespeichert werden. Da BmpKreis eine Variable von TDeineKlasse (bei dir wahrscheinlich TForm1) ist, sagt self nur, dass du dich auf die eigene Klasse beziehst.
Jede Methode, die zu einer Klasse gehört beginnt immer procedure/function TKlassenname., möchtest du in der Methode auf Variablen von TKlassenname zugreifen stellt man immer ein self. vor. Dann ist klar welche Variable du meinst.
Braucht man auch häufiger mal, z.B. :

Delphi-Quellcode:
type
  TKlasseIrgendwas = class(TObject)
    private
      foo : Integer; // (1)
      procedure setFoo(foo : Integer);
  end;

...

procedure TKlasseIrgendwas.setFoo(foo : Integer); // (2)
begin
  // wie sagst du jetzt, dass die Klassenvariable foo (1) den Wert von diesem foo (2) hier bekommen soll?
  // heißt ja dummerweise beide gleich
  self.foo = foo;
  // self.foo = (1)
  // foo = letzte Deklaration von foo = (2)
end;
  Mit Zitat antworten Zitat
gelvuun

Registriert seit: 16. Dez 2005
Ort: Bad Vöslau
19 Beiträge
 
#5

Re: Bild per button verändern

  Alt 26. Dez 2005, 09:46
oi.... kompliziert....

weiß net ob ich das jetz richtig verstanden hab aber danke ich werds mal versuchen
  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 15:02 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