AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Reagieren auf Ereignisse meines zur Laufzeit erzeugten Forms
Thema durchsuchen
Ansicht
Themen-Optionen

Reagieren auf Ereignisse meines zur Laufzeit erzeugten Forms

Ein Thema von Pseudemys Nelsoni · begonnen am 30. Mär 2003 · letzter Beitrag vom 31. Mär 2003
Antwort Antwort
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#1

Reagieren auf Ereignisse meines zur Laufzeit erzeugten Forms

  Alt 30. Mär 2003, 18:54
hi,

siehe überschrift, ich habs so erstellt:

Delphi-Quellcode:
  var
    InfoForm: TForm;
Delphi-Quellcode:
  InfoForm := TForm.Create(Application);
  InfoForm.Height := 100;
  InfoForm.Width := 300;
  InfoForm.Color := $00423029;
  InfoForm.Position := poScreenCenter;
  InfoForm.BorderStyle := bsNone;
  InfoForm.AlphaBlendValue := 0;

ich möchte aber nun auf ereignisse reagieren, wie "OnCreate" habs versucht mit "InforForm.OnCreate", aber wie es dann weitergehen würd (ob es überhaupt so geht) weiss ich nicht.
wenn es jemand weiss bitte posten

danke =)

gruss silent
Mario
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#2
  Alt 30. Mär 2003, 18:59
das sollte gehen
InfoForm.OnCreate := NameDerProzedur; bei manchen prozeduren, die du in ereignissen von Forms verwendest
musst du als Parameter für die Prozedur noch "Sender" nehmen. Bsp:
procedure Prozedur_Fuer_ein_Eregnis(Sender: TObject); ich hoffe das hilft

mirage228
David F.
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#3
  Alt 30. Mär 2003, 19:27
hoi,

danke für die hilfe

klappt bei mir aber irgendwie nicht, hab das so:


Delphi-Quellcode:
procedure AlphaBlendCount(Sender: TObject);
var i: integer;
begin
  InfoTimer.Enabled := True;
  if i <> 255 then
  begin
  i := i + 3;
  InfoForm.AlphaBlendValue := i;
  end
  else InfoTimer.Enabled := False;
end;

und zum aufrufen des timers das:

Delphi-Quellcode:
  with TTimer.Create(InfoForm) do
  begin
    InfoTimer.Enabled := False;
    InfoTimer.Interval := 5;
    InfoTimer.OnTimer := AlphaBlendCount;
  end;
fehlermeldung ist "[Fehler] Unit1.pas(385): Inkompatible Typen: 'Methodenzeiger und reguläre Prozedur'"

Mario
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#4
  Alt 30. Mär 2003, 20:14
ich glaub des geht so:

InfoTimer := TTimer.Create(InfoForm); <Edit>: Und das brauchste auch das With ... Do net mehr:
Delphi-Quellcode:
    InfoTimer := TTimer.Create(InfoForm);
    InfoTimer.Enabled := False;
    InfoTimer.Interval := 5;
    InfoTimer.OnTimer := AlphaBlendCount;
</edit>

und du solltest die procedure AlphaBlendCount zwischen die anderen Ereignisprozeduren des Forms (über private und public)

und dann musste schreiben
Delphi-Quellcode:
procedure TDasIstDasForm.AlphaBlendCount(Sender: TObject);
var i: integer;
begin
  InfoTimer.Enabled := True;
  if i <> 255 then
  begin
  i := i + 3;
  InfoForm.AlphaBlendValue := i;
  end
  else InfoTimer.Enabled := False;
end;
so sollte es gehen!

mirage228
David F.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5
  Alt 30. Mär 2003, 22:30
Warum erstellst du alles zur Laufzeit? Mach es doch zur Entwurfszeit und schmeiß in Projekt -> Optionen das Formular raus welche zur Laufzeit beim Start erzeugt werden sollen. Und wenn du es dann brauchst erzeugst du nur das Formular dynamisch. Alles was drauf und alles Ereignisse und Prozeduren ist kennt dein Programm schon - keine Sorge.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#6
  Alt 31. Mär 2003, 06:30
danke mirage ich versuch das mal ^^

luckie, ich erstelle sie zur laufzeit, weil ich beliebig viele brauche, je nachdem wieviele querys ich hab (irc client)

danke^^

gruss silent
Mario
  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 02:38 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