TFileOpen

tobo
Beiträge: 13
Registriert: Di 6. Mär 2007, 21:46
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Stralsund

TFileOpen

Beitrag von tobo »

Weiß jemand, was man machen muss, damit der TFileOpen-Dialog auf dem Pocket PC funktioniert ?
Wenn ich OpenDialog1.Execute aufrufe passiert nichts.

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Joa, es im Widgetset implementieren.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

ich finde deine Antworten immer richtig lustig Christian....
MFG
Michael Springwald

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Ich deine auch pluto.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

tobo
Beiträge: 13
Registriert: Di 6. Mär 2007, 21:46
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Stralsund

Beitrag von tobo »

Christian hat geschrieben:Joa, es im Widgetset implementieren.
pluto konnte mit der Antwort wohl nicht recht was anfangen, ich auch nicht.
Das ist das Problem mit Foren, meistens stellen Anfänger Fragen, weil wenn man Profi ist, nimmt die Anzahl der Fragen rapide ab...

monta
Lazarusforum e. V.
Beiträge: 2809
Registriert: Sa 9. Sep 2006, 18:05
OS, Lazarus, FPC: Linux (L trunk FPC trunk)
CPU-Target: 64Bit
Wohnort: Dresden
Kontaktdaten:

Beitrag von monta »

In der unter Lazarus unterstützten Grafikschnittstelle des Pocket PC ist momentan noch keine Entsprechung für den OpenDialog vorhanden.
Folglich müsstest du selbst einen Einbauen, um ihn benutzen zu können.
Zuletzt geändert von monta am Mi 11. Apr 2007, 19:19, insgesamt 1-mal geändert.

Benutzeravatar
theo
Beiträge: 10871
Registriert: Mo 11. Sep 2006, 19:01

Beitrag von theo »

Wow Monta!
Das ist ja eine richtig korrekte Erklärung in fast richtigem Deutsch.
Musste eben zweimal kucken, ob ich noch im Dt. Lazarus Forum bin ;-)

monta
Lazarusforum e. V.
Beiträge: 2809
Registriert: Sa 9. Sep 2006, 18:05
OS, Lazarus, FPC: Linux (L trunk FPC trunk)
CPU-Target: 64Bit
Wohnort: Dresden
Kontaktdaten:

Beitrag von monta »

:lol:
Bist du, war nur zur Abwechslung ;)

tobo
Beiträge: 13
Registriert: Di 6. Mär 2007, 21:46
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Stralsund

Beitrag von tobo »

monta hat geschrieben:In der unter Lazarus unterstützten Grafikschnittstelle des Pocket PC ist momentan noch keine Entsprechung für den OpenDialog vorhanden.
Folglich müsstest du selbst einen Einbauen, um ihn benutzen zu können.
So kann man das kapieren..aber das ist wohl ne Nummer zu gross für mich.
Da ich nur eine einfache Dateiauswahl in einem Ordner brauche, ist es wohl das Einfachste eine FindFirst/FindNext-Funktion zu machen und die Dateien in eine StringListe zu tun zwecks Auswahl.

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

du kannst auch noch folgendes machen:
bei meiner Oberfläche für 7za habe ich das auch so gelöst:
eine ListBox dort werden Dateien und Verzeichnisse per FindFirst und so angezeigt.

Ich klicke jetzt auf ein Verzeichnis (Verzeichnise werden mit [] um schlossen)
geht es ein Verzeichnis höher wenn ein [..] kommt ein tiefer.
ich poste mal meinen code hier, denn müsstes du nur etwas anpassen. ich nehme eine TListView
weil ich noch etwas mehr wollte *G*
achja die ComboBox ist dein Verzeichnis
du musst einmal irgendwo LoadDir auf rufen dann nur noch bei Doppelklick z.b. ChangeDir

Code: Alles auswählen

procedure LoadDir(dirName:String;ListView:TListView);
var
  sr:TSearchRec;
  str:String;
  dir:TDir;
begin
  writeln(dirname);
  if FindFirst(dirName + '*' ,faAnyFile and faDirectory,sr) = 0 then begin
    ListView.Items.Clear;
    repeat
      if sr.Name <> '.' then begin
        with ListView.Items.add do begin
         dir:=TDir.Create;
         dir.TempName:='';
          if (sr.Attr and faDirectory) = faDirectory then begin
            Caption:='[' + sr.Name + ']';
            dir.dir:=dirName+sr.name + '/';
 
          end
          else begin
            Caption:=sr.Name;
            dir.dir:=dirName+sr.name;
          end;
 
          Data:=dir;
        end;
      end;
    until FindNext(sr) <> 0
  end;
end;
 
procedure TForm1.ChangeDir(ListView:TListView; comboBox:TComboBox);
var
  str,d:String;
begin
  if (ListView.Selected <> NIl) and (listview.Selected.Data <> NIL) then begin
    str:=TDir(listview.items[listview.Selected.Index].Data).dir;
    if ExtractFileName(str) <> '' then d:=TempDir + ExtractFileName(str) + '/';
    // Wenn es schon ein Verzeichnis mit dem Namen gibt
    // verwende es.
    if DirectoryExists(d) = True then TDir(listview.Selected.Data).TempName:=d;
    // Wenn im Dateinamen .. vorkommt ein Verzeichnisebe Tifer gehen
    if pos('..',str) > 0 then begin
      comboBox.Text:=GetPrvDir1(comboBox.text);
      // Neues Verzeichnis Auslesen und in die angeben ListView laden
      LoadDir(ComboBox.Text,ListView);
    end
    else begin
      // Wenn es kein Verzeichnis ist:
      if listview.Selected.caption[1] <> '[' then begin
        FileName:='"'+str+'"';
        dirlevel:=1;
        if (TDir(listview.items[listview.Selected.Index].Data).TempName ='') and (ListView2.Tag <> -2) then begin
          Load7za(ListView2,'"'+str +'"');
          listview.Tag:=-1;
          Listview2.Tag:=0;
        end
        else begin
          // nur laden wenn es kein Datei ist
          Listview2.Tag:=-2;
          comboBox2.text:=TDir(listview.items[listview.Selected.Index].Data).TempName;
          LoadDir(comboBox2.text,ListView2)
        end;
      end
      else begin
        // Wenn es ein verzeichnis ist, dann wechsel ist
        comboBox.Text:=str;
        LoadDir(ComboBox.Text,ListView);
      end;
    end
  end; // if Data <> NIL and Sele <> NIL then
end;
MFG
Michael Springwald

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Och pluto, das du immer deinen senf dazugeben musst ohne jemals das auszuprobiern ... ListBox ist ebensowenig implementiert für WinCE z.Z. (brauch man dort ja auch selten)
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Euklid
Lazarusforum e. V.
Beiträge: 2808
Registriert: Fr 22. Sep 2006, 10:38
OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
Wohnort: Hessen
Kontaktdaten:

Beitrag von Euklid »

Naja, die Oberflächen befinden sich ja in rapider Entwicklung. Möglicherweise ist mindestens die Listbox in einer der nächsten Lazarus-Versionen für die WinCE-Schnittstelle implementiert.

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

glaub ich weniger die brauch man ja recht selten auf wince da werden warscheinlich vorher die dialoge gemacht.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

tobo
Beiträge: 13
Registriert: Di 6. Mär 2007, 21:46
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Stralsund

Beitrag von tobo »

Christian hat geschrieben:Och pluto, das du immer deinen senf dazugeben musst ohne jemals das auszuprobiern ... ListBox ist ebensowenig implementiert für WinCE z.Z. (brauch man dort ja auch selten)
Nett, gerade die bräuchte ich auch für mein Programm. Also ersatzweise TListView, wenigstens geht das bessere.
Zuletzt geändert von tobo am Do 12. Apr 2007, 11:15, insgesamt 2-mal geändert.

tobo
Beiträge: 13
Registriert: Di 6. Mär 2007, 21:46
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Stralsund

Beitrag von tobo »

pluto hat geschrieben:du kannst auch noch folgendes machen:
bei meiner Oberfläche für 7za habe ich das auch so gelöst:
eine ListBox dort werden Dateien und Verzeichnisse per FindFirst und so angezeigt.
Danke für den Code, so oder ähnlich hatte ich mir das gedacht.
TListView geht also, weil TListBox ja wohl auch nicht implementiert ist.

Antworten