![]() |
AW: Inputbox mit autmatischer Längenanpassung wie Messagebox
Ich habe mal ein wenig herumprobiert, evtl. mag das als erster Ansatz hilfreich sein:
Delphi-Quellcode:
procedure TForm7.Button1Click(Sender: TObject);
const Frage = 'Select the device variant.' + #13#10 + '===============' + #13#10#13#10 + '1 - UPS with compact powerblock' + #13#10 + ' TempSensors R1.1 / R2.1 / R3.1 on REC - R4.1 / R5.1 / R6.1 on INV' + #13#10#13#10 + '2 - UPS with high powerblocks'#13#10 + ' TempSensors R1,1 / R1.2 / R2.1 / R2.2 / R3.1 / R3.2 on REC - R4.2 / R5.2 / R6.2 on INV' + #13#10#13#10 + '3 - UPS with high powerblocks' + #13#10 + ' TempSensors R1.1 / R1.2 / R2.1 / R2.2 / R3.1 / R3.2 on REC - R4.1 / R4.3 / R5.1 / R5.3 / R6.1 / R6.3 on INV' + #13#10#13#10; XOffset = 10; YOffset = 10; var R: TRect; begin R := Rect(XOffset, YOffset, XOffset, YOffset); DrawText(Canvas.Handle, Frage, -1, R, DT_LEFT or DT_TOP or DT_CALCRECT); ClientWidth := R.Right - R.Left + XOffset * 2; //Offset * 2 für Rand links und rechts, vertikal natürlich genauso, s.u. ClientHeight := R.Bottom - R.Top + YOffset * 2 + 50; //50 für den Button, ist natürlich anzupassen DrawText(Canvas.Handle, Frage, -1, R, DT_LEFT or DT_TOP); end; |
AW: Inputbox mit autmatischer Längenanpassung wie Messagebox
Sieht gut aus. Danke
|
AW: Inputbox mit autmatischer Längenanpassung wie Messagebox
Delphi-Quellcode:
Function MyInputQuery(const ACaption, APrompt: string; var Value: string): Boolean;
var f:TForm; l:TLabel; Edit:Tedit; bok,bnok:TBitBtn; begin F := TForm.Create(nil); l := TLabel.Create(f); l.Parent := f; l.Align := alTop; l.AlignWithMargins := true; l.Caption := APrompt; l.WordWrap := true; f.ClientWidth := l.Width + 20; Edit := Tedit.Create(f); Edit.Parent := f; Edit.Top := l.Top + l.Height + 10; Edit.Left := 10; Edit.Width := f.ClientWidth - 20; Edit.Text := Value; f.Caption := Acaption; bok := TBitBtn.Create(f); bok.Parent := F; bok.Caption := 'OK'; bok.ModalResult := mrok; bok.Default := true; bnok:= TbitBtn.Create(f); bnok.Parent := F; bnok.Cancel := true; bnok.ModalResult := mrCancel; bnok.Caption := 'Abbrechen'; bok.Top := Edit.Top + Edit.Height + 10; bnok.Top := Edit.Top + Edit.Height + 10; bok.Left := 10; bnok.Left := f.ClientWidth div 2 + 10; bok.Width := f.ClientWidth div 2 - 20; bnok.Width := f.ClientWidth div 2 - 20; f.ClientHeight := bok.Top + bok.Height + 10; f.Position := poScreenCenter; f.ShowModal; Result := F.ModalResult= mrok; Value := Edit.Text; f.Free; end; |
AW: Inputbox mit autmatischer Längenanpassung wie Messagebox
Mal was anderes aus der Sicht des Nutzers. Was soll ich denn da jetzt eingeben? Die Ziffer? Oder eine Bezeichnung? Wen nur eine Ziffer, wäre da ein Formular mit drei Optionsfeldern nicht einfacher? oder wenn eine Bezeichnung, wäre es da nicht einfacher eine Combobox oder Listbox mit den ganzen möglichen Bezeichnungen?
|
AW: Inputbox mit autmatischer Längenanpassung wie Messagebox
Danke Bummi,
deine Funktion ist gekauft, auch wenn ich wie auch Luckie schon angemerkt hat auf ein neues Fenster zurückreife was die Funktion für den Anwender einfacher macht (Über eine Art Taskdialog). Das ganze kam ursprünglich noch aus Doszeiten und da war eben so eine Eingabe 1,2,3 drin. Jetzt bleibt nur noch das Problem mit dem neuen Verhalte der Inpuboxfunktion unter XE2, dafür mache ich aber lieber einen separaten Thread |
AW: Inputbox mit autmatischer Längenanpassung wie Messagebox
Zitat:
|
AW: Inputbox mit autmatischer Längenanpassung wie Messagebox
Zitat:
|
AW: Inputbox mit autmatischer Längenanpassung wie Messagebox
Oder eine ComboBox, die braucht ggf. weniger Platz.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:52 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz