Autor |
Beitrag |
Schweini31
      
Beiträge: 26
|
Verfasst: Do 20.12.07 19:41
Hallo,
Ich habe 2 Fragen zum MessageDlg in Delphi.
Ich würde gerne einen MessageDlg machen in dem ich 2 Buttons beschriften kann.
Dabei habe ich 2 Probleme.
1+2.
Delphi-Quelltext 1:
| messagedlg('Welchen Wert soll das Ass haben?',mtConfirmation,); |
So jetzt weiß ich nicht wie ich die Buttons proggen soll... Ich hätte gerne 2 Buttons mit der Aufschrift '1' und '11'.
Geht das überhaupt mit einem MessageDlg?
Bitte helft mir
Schweini 
|
|
LorenzS
      
Beiträge: 128
MS-DOS, WIN 7, WIN 10
BP7.0, D3, D5
|
Verfasst: Do 20.12.07 19:45
Du kannst dir auch nen dialog selber erstellen , zB als Tform mit einer public funtion die die form auf show oder showmodal macht und die das egebnis zurück gibt wenn diese wieder gechlossen wird.
|
|
Schweini31 
      
Beiträge: 26
|
Verfasst: Do 20.12.07 19:48
LorenzS hat folgendes geschrieben: | Du kannst dir auch nen dialog selber erstellen , zB als Tform |
Sogut bin ich leider noch nicht, das heißt ich weiß nicht wie die Form dann aufrufe....
Wenn es mir vllt jemand erklären könnte? 
|
|
LorenzS
      
Beiträge: 128
MS-DOS, WIN 7, WIN 10
BP7.0, D3, D5
|
Verfasst: Do 20.12.07 19:54
mindestens eine formular erstellst du doch beim anwenundungs erstellen, einfach ein 2. formular erstellen.
fomulare zeigt man mit Form.show oder Form.showmodal an
|
|
Schweini31 
      
Beiträge: 26
|
Verfasst: Do 20.12.07 19:57
LorenzS hat folgendes geschrieben: | mindestens eine formular erstellst du doch beim anwenundungs erstellen, einfach ein 2. formular erstellen. |
Jaja das erstellen ist nicht das was ich nicht verstehe sondern das "aufrufen" nachdem ich Form erstellt habe. Also die Hauptform. Was mir klar ist: Ich muss die Form in der Uses Klausel deklarieren.
Aber dann brauch ich ja einen Button der die 2. aufruft und wie sieht der Code davon aus ?
Schweini
|
|
LorenzS
      
Beiträge: 128
MS-DOS, WIN 7, WIN 10
BP7.0, D3, D5
|
Verfasst: Do 20.12.07 20:12
1. Hauptformular
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| uses UAltDlg;
Function ShowAltDialog(lText,lButton1,lButton2:string):integer; begin AltDialog.Label1 .caption := lText; AltDialog.Button1.caption := lButton1; AltDialog.Button2.caption := lButton2; AltDialog.showmodal; Result:=AltDialog.Ergebnis; end;
procedure TForm1.Button1Click(Sender: TObject); begin ShowAltDialog('Welchen Wert soll das Ass haben?','1','11'); end; |
2. UAltDlg.pas ein Formular mit einem Label und 2 Buttons
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48:
| unit UAltDlg;
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
type TAltDialog = class(TForm) Button1: TButton; Label1: TLabel; Button2: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure FormShow(Sender: TObject); private public Ergebnis:integer; end;
var AltDialog: TAltDialog;
implementation
{$R *.DFM}
procedure TAltDialog.Button1Click(Sender: TObject); begin Ergebnis:=1; close; end;
procedure TAltDialog.Button2Click(Sender: TObject); begin Ergebnis:=2; close; end;
procedure TAltDialog.FormShow(Sender: TObject); begin Ergebnis:=-1; end;
end. |
Sry, das es solange gedauert hat, ich musste es erst noch programmieren.
|
|
Schweini31 
      
Beiträge: 26
|
Verfasst: Do 20.12.07 20:31
Brauchste dich doch nicht für entschudligen; ich habe zu danken. gibt sicher nicht viele die sich hier die Mühe gemacht hätten das Programm zu schreiben ! Danke!
Schweini
|
|
Shorty
      
Beiträge: 107
Win XP, Ubuntu 8.04
Delphi 7 Prof., Delphi 2005 Pers.
|
Verfasst: Fr 21.12.07 19:11
So eine neue Form erzeugen ist eigentlich relativ umständlich, wenn man einen Dialog haben will, der wie der von MessageDlg aussieht, geht das auch einfacher:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| var Dlg: TForm; begin Dlg := CreateMessageDialog('Fehler', mtError, MBOKCANCEL); try TButton(Dlg.FindComponent('OK')).Caption := 'Löschen'; TButton(Dlg.FindComponent('Cancel')).Caption := 'Beenden'; case Dlg.ShowModal of mrOK:ShowMessage('Löschen'); mrCancel:ShowMessage('Beenden'); end; finally FreeAndNil(Dlg); end; end; |
MfG Shorty
|
|
|